8.3.1. Entering debug state on breakpoint

After an instruction has been breakpointed, the core does not enter debug state immediately. Instructions are marked as being breakpointed as they enter ARM7DMT's instruction pipeline. Thus ARM7DMT only enters debug state when (and if) the instruction reaches the pipeline’s execute stage.

There are two reasons why a breakpointed instruction may not cause ARM7DMT to enter debug state:

When a breakpointed conditional instruction reaches the execute stage of the pipeline, the breakpoint is always taken and ARM7DMT enters debug state, regardless of whether the condition was met.

Breakpointed instructions are not executed. Instead, ARM7DMT enters debug state. Thus, when the internal state is examined, the state before the breakpointed instruction is seen. Once examination is complete, the breakpoint should be removed and program execution restarted from the previously breakpointed instruction.

Copyright © 1997, 1998 ARM Limited. All rights reserved.DDI 0087E
Non-Confidential