ARM R4F Computer Hardware User Manual


 
Debug
ARM DDI 0363E Copyright © 2009 ARM Limited. All rights reserved. 11-39
ID013010 Non-Confidential, Unrestricted Access
11.6 Debug events
A processor responds to a debug event in one of the following ways:
ignores the debug event
takes a debug exception
enters debug state.
This section describes:
Software debug event
Halting debug event on page 11-40.
Behavior of the processor on debug events on page 11-40
Debug event priority on page 11-40
Watchpoint debug events on page 11-40.
11.6.1 Software debug event
A software debug event is any of the following:
A watchpoint debug event. This occurs when:
The data address for a load or store matches the watchpoint value.
All the conditions of the WCR match.
The watchpoint is enabled.
The linked context ID-holding BRP, if any, is enabled and its value matches the
context ID in CP15 c13. See Chapter 4 System Control Coprocessor.
The instruction that initiated the memory access is committed for execution.
Watchpoint debug events are only generated if the instruction passes its condition code.
A breakpoint debug event. This occurs when:
An instruction was fetched and the instruction address or the CP15 Context ID
register c13 matched the breakpoint value.
At the same time the instruction was fetched, all the conditions of the BCR for
unlinked context ID breakpoint generation matched the I-side control signals.
The breakpoint is enabled.
The instruction is committed for execution. These debug events are generated
whether the instruction passes or fails its condition code.
A BKPT debug event. This occurs when a
BKPT
instruction is committed for execution.
BKPT
is an unconditional instruction.
A vector catch debug event. This occurs when:
An instruction was prefetched and the address matched a vector location address.
This includes any kind of prefetch, not only the ones because of exception entry.
At the same time the instruction was fetched, the corresponding bit of the VCR was
set, that is, the vector catch is enabled.
The instruction is committed for execution. These debug events are generated
whether the instruction passes or fails its condition code.