Modify shutdown seqeunce. Now a F107 in sleep mode reacts on the reset pin after...
[fw/stlink] / src / stlink-common.c
index c614677d15bd3cb0749faf25e624e0953c0cb098..74c5bcc7c4fa65e5e403b25f03f338321d7164d6 100644 (file)
@@ -359,6 +359,7 @@ void stlink_close(stlink_t *sl) {
 
 void stlink_exit_debug_mode(stlink_t *sl) {
     DLOG("*** stlink_exit_debug_mode ***\n");
+    stlink_write_debug32(sl, DHCSR, DBGKEY);
     sl->backend->exit_debug_mode(sl);
 }
 
@@ -529,6 +530,17 @@ void stlink_version(stlink_t *sl) {
     }
 }
 
+uint32_t stlink_read_debug32(stlink_t *sl, uint32_t addr) {
+    uint32_t data = sl->backend->read_debug32(sl, addr);
+    DLOG("*** stlink_read_debug32 %x is %#x\n", data, addr);
+    return data;
+}
+
+void stlink_write_debug32(stlink_t *sl, uint32_t addr, uint32_t data) {
+    DLOG("*** stlink_write_debug32 %x to %#x\n", data, addr);
+    sl->backend->write_debug32(sl, addr, data);
+}
+
 void stlink_write_mem32(stlink_t *sl, uint32_t addr, uint16_t len) {
     DLOG("*** stlink_write_mem32 %u bytes to %#x\n", len, addr);
     if (len % 4 != 0) {