15 15. Module: In-Circuit Debugger

When the Program Counter matches certain hardware breakpoint addresses, a halt in debug mode may be missed. Breakpoint addresses subject to being missed are the non-speculative execution addresses associated with a conditional branch, as well as the targets of dynamic program flow change instructions, such as computed branch offsets in C switch statements, function return addresses and function pointer destinations. The breakpoint will be missed if the NVM is busy at the time of the address match, resulting in breakpoints at uncached addresses being susceptible, while the same breakpoint address reached via a looping construct will normally trigger a successful debug halt.
Workaround 1

Enable software breakpoints.

Workaround 2

Add a second hardware breakpoint or relocate program breakpoints suspected of being missed to the next address or line of code.

Affected Silicon Revisions
A0
A1
X
X