Debug
ARM DDI 0363G
Copyright © 2006-2011 ARM Limited. All rights reserved.
12-58
ID073015
Non-Confidential
12.11.1 Debug communications channel
There are two ways that an external debugger can send data to or receive data from the
processor:
•
The debug communications channel, when the processor is not in debug state. It is defined
as the set of resources used for communicating between the external debugger and
software running on the processor.
•
The mechanism for forcing the processor to execute ARM instructions, when the
processor is in debug state. For more information, see
Executing instructions in debug
Rules for accessing the DCC
At the processor side, the debug communications channel resources are:
•
CP14 Debug Register c5 (DTR)
•
CP14 Debug Register c1 (DBGDSCR).
The ARMv7 debug architecture is implemented on the processor so that:
•
If a read of the CP14 DBGDSCR returns 1 for the DTRTXfull flag:
—
a following read of the CP14 DTR returns valid data and DTRTXfull is cleared. No
prefetch flush is required between these two CP14 instructions.
—
a following write to the CP14 DTR is Unpredictable.
•
If a read of the CP14 DBGDSCR returns 0 for the DTRTXfull flag:
—
a following read of the CP14 DTR returns an Unpredictable value.
—
a following write to the CP14 DTR writes the intended 32-bit word, and sets
DTRRXfull to 1. No prefetch flush is required between these two CP14
instructions.
When Nonblocking mode is selected for DTR accesses, the following conditions are true for
memory-mapped DBGDSCR, memory-mapped DBGDTRRX, and DBGDTRTX registers:
•
If a read of the memory-mapped DBGDSCR returns 0 for the DTRTXfull flag:
—
a following read of the memory-mapped DBGDTRTX is ignored. For example, the
content of DTRRXfull is unchanged and the read returns an Unpredictable value.
—
a following write of the memory-mapped DBGDTRRX passes valid data to the
processor and sets DTRTXfull to 1.
•
If a read of the memory-mapped DBGDSCR returns 1 for the DTRTXfull flag:
—
a following read of the memory-mapped DBGDTRTX returns valid data and clears
DTRRXfull.
—
a following write of the memory-mapped DBGDTRRX is ignored, that is, both
DTRTXfull and DBGDTRRX contents are unchanged.
The ARMv7 debug architecture does not support other uses of the DCC resources. In particular,
the processor does not support the following:
•
CP14 DBGDSCR[30:29] flags to access the memory-mapped DBGDTRRX and
DBGDTRTX registers
•
polling memory-mapped DBGDSCR[30:29] flags to access CP14 DTR.