X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstlink-common.c;h=74c5bcc7c4fa65e5e403b25f03f338321d7164d6;hb=9ef6d28cb5751c0cf589136181569f585059a8bc;hp=c614677d15bd3cb0749faf25e624e0953c0cb098;hpb=28956cf2c9f52b13245d0b6a9529f7f06c972aff;p=fw%2Fstlink diff --git a/src/stlink-common.c b/src/stlink-common.c index c614677..74c5bcc 100644 --- a/src/stlink-common.c +++ b/src/stlink-common.c @@ -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) {