Intel XScale® Core Developer's Manual
Software Debug
9.14.6
Dynamically Loading Instruction Cache After Reset
An debugger can load code into the instruction cache "on the fly" or "dynamically". This occurs
when the debugger downloads code while the core is not held in reset and is useful for expanding
the functionality of the debug handler.
Since the debug handler is limited to 2KB (or 1KB w/ 16KB version of core), all possible debug
handler functionality cannot fit in the mini instruction cache at one time. The debugger can load
key debug handler functionality into the mini instruction cache during reset and download the less
often used routines as they are needed, outside of reset.
Loading code dynamically into the mini instruction cache requires strict synchronization between
the code running on the core and the debugger. The guidelines for downloading code during
program execution must be followed to ensure proper operation of the processor.
To dynamically download code during software debug, there must be a minimal debug handler
stub, responsible for doing the handshaking with the debugger, resident in the mini instruction
cache. This debug handler stub should be downloaded into the mini instruction cache during
processor reset using the method described in
Figure 9-10
dynamic code download and
Section 9.14.6.1, "Dynamic Download Synchronization Code"
the requirements for implementing the handshaking in the debug handler.
Figure 9-10. Downloading Code in IC During Program Execution
Debugger Actions
JTAG IR
Handler begins execution
Debug Handler Actions
160
shows a high level view of the actions taken by the host and debug handler during
Table 9-21
wait for handler to signal
ready to start download
DBGTX
signal host ready
for download
January, 2004
Section
9.14.5.
shows the step-by-step process in more detail.
provides the details and describes
download code
LDIC
wait for host to signal
download complete
signal download
complete to handler
clock
20 TCKs
DBGRX
continue execution.
Developer's Manual
Need help?
Do you have a question about the XScale Core and is the answer not in the manual?