ICEBreaker Module
ARM7TDMI Data Sheet
ARM DDI 0029E
9-14
O
9.11 Debug Communications Channel
ARM7TDMI’s ICEbreaker contains a communication channel for passing information
between the target and the host debugger. This is implemented as coprocessor 14.
The communications channel consists of a 32-bit wide Comms Data Read register, a
32-bit wide Comms Data Write Register and a 6-bit wide Comms Control Register for
synchronised handshaking between the processor and the asynchronous debugger.
These registers live in fixed locations in ICEbreaker’s memory map (as shown in
·
Table 9-1: Function and mapping of ICEBreaker registers
on page 9-3) and are
accessed from the processor via MCR and MRC instructions to coprocessor 14.
9.11.1 Debug comms channel registers
The Debug Comms Control register is read only and allows synchronised hanshaking
between the processor and the debugger.
Figure 9-7: Debug comms control register
The function of each register bit is described below:
Bits 31:28
contain a fixed pattern which denote the ICEbreaker version number,
in this case 0001.
Bit 1
denotes whether the Comms Data Write register (from the
processor’s point of view) is free. From the processor’s point of view,
if the Comms Data Write register is free (W=0) then new data may be
written. If it is not free (W=1), then the processor must poll until W=0.
From the debugger’s point of view, if W=1 then some new data has
been written which may then be scanned out.
Bit 0
denotes whether there is some new data in the Comms Data Read
register. From the processor’s point of view, if R=1, then there is some
new data which may be read via an MRC instruction. From the
debugger’s point of view, if R=0 then the Comms Data Read register
is free and new data may be placed there through the scan chain. If
R=1, then 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.
31
0
30
0
29
0
28
1
0
R
1
W
...
...