Browse Source

cortex_m: set the debug reason to DBGRQ when NVIC_DFSR indicates EXTERNAL

By definition the EXTERNAL bit in Debug Fault Status Register indicates
that an external debug request (EDBGRQ) signal was asserted.

Usage example: this could be done by CTI in multicore devices in order to
halt all the cores together.

Change-Id: I7830455ce5da6702b7d08c8fa7bfe80e4d8a5055
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com>
Reviewed-on: http://openocd.zylin.com/5157
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
master
Tarek BOCHKATI 4 years ago
committed by Tomas Vanek
parent
commit
5b768b0d39
2 changed files with 4 additions and 1 deletions
  1. +3
    -1
      src/target/cortex_m.c
  2. +1
    -0
      src/target/cortex_m.h

+ 3
- 1
src/target/cortex_m.c View File

@@ -392,7 +392,9 @@ static int cortex_m_examine_debug_reason(struct target *target)
target->debug_reason = DBG_REASON_WATCHPOINT;
else if (cortex_m->nvic_dfsr & DFSR_VCATCH)
target->debug_reason = DBG_REASON_BREAKPOINT;
else /* EXTERNAL, HALTED */
else if (cortex_m->nvic_dfsr & DFSR_EXTERNAL)
target->debug_reason = DBG_REASON_DBGRQ;
else /* HALTED */
target->debug_reason = DBG_REASON_UNDEFINED;
}



+ 1
- 0
src/target/cortex_m.h View File

@@ -127,6 +127,7 @@
#define DFSR_BKPT 2
#define DFSR_DWTTRAP 4
#define DFSR_VCATCH 8
#define DFSR_EXTERNAL 16

#define FPCR_CODE 0
#define FPCR_LITERAL 1


Loading…
Cancel
Save