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>
This commit is contained in:
Tarek BOCHKATI 2019-05-07 17:16:15 +02:00 committed by Tomas Vanek
parent f912649968
commit 5b768b0d39
2 changed files with 4 additions and 1 deletions

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;
}

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