
Debug Interface and EmbeddedICE-RT
7-10
Copyright 2000 ARM Limited. All rights reserved.
ARM DDI 0165B
A breakpointed instruction is allowed to enter the Execute stage of the pipeline, but any
state change as a result of the instruction is prevented. All instructions prior to the
breakpointed instruction complete as normal.
Note
If a breakpointed instruction does not reach the Execute stage, for instance, if an earlier
instruction is a branch, then both the breakpointed instruction and breakpoint status are
discarded and the ARM does not enter debug state.
The Decode cycle of the debug entry sequence occurs during the execute cycle of the
breakpointed instruction. The latched Breakpoint signal forces the processor to start
the debug sequence.
initiated when instruction B enters the Execute stage. The ARM completes the debug
entry sequence and asserts DBGACK two cycles later.
7.5.2
Breakpoints and exceptions
A breakpointed instruction can have a Prefetch Abort associated with it. If so, the
Prefetch Abort takes priority and the breakpoint is ignored. (If there is a Prefetch Abort,
instruction data might be invalid, the breakpoint might have been data-dependent, and
as the data might be incorrect, the breakpoint might have been triggered incorrectly.)
SWI
and undefined instructions are treated in the same way as any other instruction that
can have a breakpoint set on it. Therefore, the breakpoint takes priority over the SWI or
undefined instruction.
On an instruction boundary, if there is a breakpointed instruction and an interrupt
(nIRQ or nFIQ), the interrupt is taken and the breakpointed instruction is discarded.
When the interrupt has been serviced, the execution flow is returned to the original
program. This means that the instruction which was previously breakpointed is fetched
again, and if the breakpoint is still set, the processor enters debug state when it reaches
the execute stage of the pipeline.
When the processor has entered debug state, it is important that further interrupts do not
affect the instructions executed. For this reason, as soon as the processor enters debug
state, interrupts are disabled, although the state of the I and F bits in the Program Status
Register (PSR) are not affected.