| |||
| Home > Debug Support > Debug communications channel > Debug comms channel registers | |||
The Debug Comms Control register is read only, and allows synchronized handshaking between the processor and the debugger.
The function of each register bit is described below:
Contain a fixed pattern that denotes the EmbeddedICE hardware version number, in this case 0010.
Unused.
Denotes from the processor’s point of view, whether the Comms Data Write register is free. If, from the processor’s point of view, the Comms Data Write register is free (W=0), new data may be written. If it is not free (W=1), the processor must poll until W=0. If, from the debugger’s point of view, W=1, some new data has been written which may then be scanned out.
Denotes whether there is some new data in the Comms Data Read register. If, from the processor’s point of view, R=1, there is some new data which may be read via an MRC instruction. If, from the debugger’s point of view, R=0, the Comms Data Read register is free and new data may be placed there through the scan chain. If R=1, this denotes that data previously placed there through the scan chain has not been collected by the processor, and so the debugger must wait.
From the debugger’s point of view, the registers are accessed via the scan chain in the usual way. From the processor, these registers are accessed via coprocessor register transfer instructions. The following instructions should be used:
MRC p14, 0, Rd, c0, c0
Returns the Debug Comms Control register into Rd.
MCR p14, 0, Rn, c1, c0
Writes the value in Rn to the Comms Data Write register.
MRC p14, 0, Rd, c1, c0
Returns the Debug Data Read register into Rd.
The Thumb instruction set does not support coprocessor instructions (must be in ARM state).