This is an automated email from the ASF dual-hosted git repository.

raiden00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c4b30736e arm/debug:fix gdbstub clear fpb & dwt when already use 
jtag/swo bug
6c4b30736e is described below

commit 6c4b30736e6ffc1a4882c88b5349eb51e1083d04
Author: anjiahao <anjia...@xiaomi.com>
AuthorDate: Mon Dec 18 10:51:15 2023 +0800

    arm/debug:fix gdbstub clear fpb & dwt when already use jtag/swo bug
    
    Signed-off-by: anjiahao <anjia...@xiaomi.com>
---
 arch/arm/src/armv7-m/arm_dbgmonitor.c | 7 +++++++
 arch/arm/src/armv8-m/arm_dbgmonitor.c | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/arch/arm/src/armv7-m/arm_dbgmonitor.c 
b/arch/arm/src/armv7-m/arm_dbgmonitor.c
index dad81182db..8eff53a10b 100644
--- a/arch/arm/src/armv7-m/arm_dbgmonitor.c
+++ b/arch/arm/src/armv7-m/arm_dbgmonitor.c
@@ -633,6 +633,13 @@ int up_debugpoint_remove(int type, void *addr, size_t size)
 
 int arm_enable_dbgmonitor(void)
 {
+  if (getreg32(NVIC_DHCSR) & NVIC_DHCSR_C_DEBUGEN)
+    {
+      /* If already on debug mode(jtag/swo), just return */
+
+      return OK;
+    }
+
   arm_fpb_init();
   arm_dwt_init();
   modifyreg32(NVIC_DEMCR, 0, NVIC_DEMCR_MONEN | NVIC_DEMCR_TRCENA);
diff --git a/arch/arm/src/armv8-m/arm_dbgmonitor.c 
b/arch/arm/src/armv8-m/arm_dbgmonitor.c
index c887bd71bd..43be3f7fc8 100644
--- a/arch/arm/src/armv8-m/arm_dbgmonitor.c
+++ b/arch/arm/src/armv8-m/arm_dbgmonitor.c
@@ -659,6 +659,13 @@ int up_debugpoint_remove(int type, void *addr, size_t size)
 
 int arm_enable_dbgmonitor(void)
 {
+  if (getreg32(NVIC_DHCSR) & NVIC_DHCSR_C_DEBUGEN)
+    {
+      /* If already on debug mode(jtag/swo), just return */
+
+      return OK;
+    }
+
   arm_fpb_init();
   arm_dwt_init();
   modifyreg32(NVIC_DEMCR, 0, NVIC_DEMCR_MONEN | NVIC_DEMCR_TRCENA);

Reply via email to