From 7908ba526b99078efe44b1f3ccfb38aa049c7ea2 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Fri, 30 Mar 2018 21:37:25 +0200 Subject: [PATCH 1/2] stm32_mem: Guard dfu.dfu_device with try/except. --- scripts/stm32_mem.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/stm32_mem.py b/scripts/stm32_mem.py index d30a8555..732685c3 100755 --- a/scripts/stm32_mem.py +++ b/scripts/stm32_mem.py @@ -89,7 +89,10 @@ def stm32_scan(args, test): exit(-1) for dev in devs: - dfudev = dfu.dfu_device(*dev) + try: + dfudev = dfu.dfu_device(*dev) + except: + return 0 man = dfudev.handle.getString(dfudev.dev.iManufacturer, 30) if man == "Black Sphere Technologies": bmp = bmp + 1 if bmp == 0 : From 139707c5c032a4eab9815b7878c98aad6b29431f Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Wed, 18 Jul 2018 23:20:26 +0200 Subject: [PATCH 2/2] cortexm/detach: Add a dummy transaction after cleaning DHCSR. This replaces the seemingly superflous swdptap_seq_out() at the end of adiv5_swdp_low_access() needed to continue after detach. --- src/target/cortexm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/target/cortexm.c b/src/target/cortexm.c index 86e46fd1..cbd769be 100644 --- a/src/target/cortexm.c +++ b/src/target/cortexm.c @@ -413,6 +413,8 @@ void cortexm_detach(target *t) /* Disable debug */ target_mem_write32(t, CORTEXM_DHCSR, CORTEXM_DHCSR_DBGKEY); + /* Add some clock cycles to get the CPU running again.*/ + target_mem_read32(t, 0); } enum { DB_DHCSR, DB_DCRSR, DB_DCRDR, DB_DEMCR };