Debug

Software access to the DCC

Software running on the processor that sends data to the debugger through the target-to-host channel can use the sequence of instructions that Example 11-2shows.

 

 

Example 11-2 Target to host data transfer (target end)

 

 

 

; r0 -> word to send to the debugger

WriteDCC

MRC

p14, 0, PC, c0, c1, 0

 

BEQ

WriteDCC

 

MCR

p14, 0, Rd, c0, c5, 0

 

BX

lr

Example 11-3shows the sequence of instructions for sending data to the debugger through the host-to-target channel.

 

 

Example 11-3 Host to target data transfer (target end)

 

 

 

; r0 -> word sent by the debugger

ReadDCC

MRC

p14, 0, PC, c0, c1, 0

 

BCC

ReadDCC

 

MRC

p14, 0, Rd, c0, c5, 0

 

BX

lr

 

 

 

Debugger access to the DCC

When not in debug state, a debugger can access the DCC through the external interface. The following examples show the pseudo-code operations for these accesses.

Example 11-4shows the code for target-to-host data transfer.

Example 11-4 Target to host data transfer (host end)

uint32

ReadDCC()

{

 

//Step 1. Poll DSCR until DTRTXfull is set to 1. repeat

{

dscr := ReadDebugRegister(34);

}

until (dscr & (1<<29));

//Step 2. Read the value from DTRTX.

dtr_val := ReadDebugRegister(35);

return dtr_val;

}

Example 11-5shows the code for host-to-target data transfer.

Example 11-5 Host to target data transfer (host end)

WriteDCC(uint32 dtr_val)

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

11-56

ID013010

Non-Confidential, Unrestricted Access

 

Page 325
Image 325
ARM R4 Software access to the DCC, Debugger access to the DCC, Example 11-5shows the code for host-to-target data transfer