ARM R4 Manuale Utente

Pagina di 456
Debug 
ARM DDI 0363E
Copyright © 2009 ARM Limited. All rights reserved.
11-55
ID013010
Non-Confidential, Unrestricted Access
11.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 
state
 on page 11-46
.
Rules for accessing the DCC
At the processor side, the debug communications channel resources are: 
CP14 Debug Register c5 (DTR)
CP14 Debug Register c1 (DSCR).
The ARMv7 debug architecture is implemented on the processor so that:
If a read of the CP14 DSCR 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 DSCR 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 DSCR, memory-mapped DTRRX, and DTRTX registers:
If a read of the memory-mapped DSCR returns 0 for the DTRTXfull flag:
a following read of the memory-mapped DTRTX is ignored. For example, the 
content of DTRRXfull is unchanged and the read returns an Unpredictable value.
a following write of the memory-mapped DTRRX passes valid data to the processor 
and sets DTRTXfull to 1.
If a read of the memory-mapped DSCR returns 1 for the DTRTXfull flag:
a following read of the memory-mapped DTRTX returns valid data and clears 
DTRRXfull.
a following write of the memory-mapped DTRRX is ignored, that is, both 
DTRTXfull and DTRRX 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 DSCR[30:29] flags to access the memory-mapped DTRRX and DTRTX registers
polling memory-mapped DSCR[30:29] flags to access CP14 DTR.