
9-24
Debug Interface
Copyright 2000-2001 by LSI Logic Corporation. All rights reserved.
signal is ORed with the internally generated Breakpoint signal before
being applied to the ARM9E-S core control logic. The timing of the input
makes it unlikely that data-dependent external breakpoints can occur.
A breakpointed instruction can enter the execute stage of the pipeline,
but state changes that normally occur from executing the instruction are
inhibited. All writes from previous instructions complete as usual.
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.
9.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. It is
ignored, because if there is a Prefetch Abort, the instruction data might
be invalid and the breakpoint could be data-dependent. Since the data
could be incorrect, the breakpoint might have triggered incorrectly.
SWI and undefined instructions are treated the same as any other
instruction that might incur a breakpoint. 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. After the interrupt is serviced, the execution flow
is returned to the original program. The previously breakpointed
instruction is fetched again. If the breakpoint is still set, the processor
enters the debug state when it reaches the pipeline execute stage.
After the processor enters the halt mode debug state, it is important that
additional interrupts not affect the instructions executed. For this reason,
interrupts are disabled as soon as the processor enters the halt mode
debug state. However, the state of the I and F bits in the Program Status
Register (PSR) are not affected.
9.5.3 Watchpoints
Entry into the debug state following a watchpointed memory access is
imprecise, because of the nature of the pipeline.