diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index fba832c78..ce3ab09c0 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -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; } diff --git a/src/target/cortex_m.h b/src/target/cortex_m.h index c33486273..2f29903c8 100644 --- a/src/target/cortex_m.h +++ b/src/target/cortex_m.h @@ -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