Debug
ARM DDI 0301H Copyright © 2004-2009 ARM Limited. All rights reserved. 13-33
ID012310 Non-Confidential, Unrestricted Access
fault occurs, an external Trace analyzer can collect trace information around this trigger event
at the same time that the processor is stopped to examine its state. See the Chapter 15 Trace
Interface Port for more details. A DBGTAP debugger can also drive this signal.
13.8.3 Halt DBGTAP instruction
The Halt mechanism is used by the Debug Test Access Port to force the core into Debug state.
When this happens, the DSCR[5:2] method of entry bits are set to b0000.
13.8.4 Behavior of the processor on debug events
This section describes how the processor behaves on debug events while not in Debug state. See
Debug state on page 13-37 for information on how the processor behaves while in Debug state.
When a software debug event occurs and Monitor debug-mode is selected and enabled and the
core is in a state that permits debug then a Debug exception is taken. However, Prefetch Abort
and Data Abort Vector catch debug events are ignored.
This is to avoid the processor ending in an unrecoverable state on certain combinations of
exceptions and vector catches. Unlinked context ID and all address mismatch breakpoint debug
events are also ignored if the processor is running in a privileged mode and Monitor debug-mode
is selected and enabled.
When the external debug request signal is activated, or the DBGTAP instruction is issued and
debug is enabled by DBGEN and the core is in a state that permits debug, the processor enters
Debug state regardless of any debug-mode selected by DSCR[15:14].
When a debug event occurs and Halting debug-mode is selected and enabled and the core is in
a state that debug is permitted, then the processor enters Debug state.
All software debug events other than the BKPT instruction, that is register breakpoints,
watchpoints, and vector catches, when no debug mode is selected and enabled or the core is in
a state that does not permit debug, are ignored.
When neither Halting nor Monitor debug-mode is selected and enabled or the core is in a state
that does not permit debug, the BKPT instruction generates a Prefetch Abort exception.
Table 13-22 lists the behavior of the processor in debug events.
Table 13-22 Behavior of the processor on debug events
DBGEN DSCR[15:14]
Mode
selected,
enabled and
permitted
Action on software
debug event
Action on external
debug request
signal activation
Action on Halt
DBGTAP
0bxx
-
a
Ignore/Prefetch Abort
b
Ignore Ignore
1 b00 None
Ignore/Prefetch Abort
a
Debug state entry Debug state entry
1 b01 Halting Debug state entry Debug state entry Debug state entry
1 b10 Monitor Debug
exception/Ignore
c
Debug state entry Debug state entry
1 b11 Halting Debug state entry Debug state entry Debug state entry
a. Entry to Debug state is disabled.
b. When no debug mode is selected and enabled or the core is in a state that does not permit debug, a BKPT instruction generates
a Prefetch Abort exception instead of being ignored.
c. Prefetch Abort and Data Abort vector catch debug events are ignored in Monitor debug-mode. Unlinked context ID and
address mismatch breakpoint debug events are also ignored if the processor is running in a privileged mode and Monitor
debug-mode is selected and enabled.