Debug Support
8-50
Copyright 1999, 2000 ARM Limited. All rights reserved.
ARM DDI 0144B
8.14.3
Software polling communication
Software polling communication is achieved by the processor sending messages to, and
receiving messages from, the debugger.
Sending a message to the debugger
Before sending a message to the debugger, the processor must first check that the
comms data write register is available by polling the W bit. The checking process is as
follows:
If the W bit is set, previously written data has not been read by the debugger.
The processor must continue to poll the control register until the W bit is clear.
If W bit is clear, the comms data write register is available.
When the W bit is clear, a message is written by a register transfer to coprocessor 14.
Because the data transfer occurs from the processor to the comms data write register,
the W bit is set in the debug comms control register.
The debugger sees a synchronized version of both the R and W bit when it polls the
debug comms control register through the JTAG interface. When the debugger sees that
the W bit is set, it can read the comms data write register, and scan the data out. The
action of reading this data register clears the debug comms control register W bit. At
this point, the communications process can begin again.
Receiving a message from the debugger
Message transfer from the debugger to the processor is similar to sending a message to
the debugger. In this case, the debugger polls the R bit of the debug comms control
register:
if the R bit is LOW, the data read register is free, and data can be placed there for
the processor to read
if the R bit is set, previously deposited data has not yet been collected, so the
debugger must wait.
When the comms data read register is free, data is written there using the JTAG
interface. The action of this write sets the R bit in the debug comms control register.
When the processor polls this register, it sees a
GCLK
synchronized version. If the R
bit is set, there is data waiting to be collected. This data can be read using an
MRC
instruction to coprocessor 14. The action of this load clears the R bit in the debug
comms control register. When the debugger polls this register and sees that the R bit is
clear, the data has been taken, and the process can be repeated.