Real time memory access with ARM Cortex and XDS emulators

From Texas Instruments Wiki
Jump to: navigation, search


If you ever tried to use Real-time monitoring of variables with an ARM Cortex core of a TI device, this page is for you.

Introduction

During the debugging process it is not uncommon to require accessing variables and memory of the system without halting the processor - also called Real-time mode. Several TI DSP families have native support for that feature, which is easily enabled by the XDS-class emulators, but this support is not native for ARM cores.
However, all TI ARM Cortex processors have an internal JTAG structure called Debug Access Port (DAP) that allows accessing memory without CPU interference. Therefore, by correctly connecting to the DAP it is possible to do Real-time mode and inspect variables in memory during the program execution.

Note: specifically for Stellaris devices, this is possible natively by using the ICDI (In-Circuit Debug Interface).


References

The procedure shown below makes use of some of the fundamental concepts and information shown in the following pages:

GSG:Connecting to slave cores in SoC devices v5
Stellaris support in CCS
Stellaris Emulator Compatibility
How to access memory using the DAP:


Procedure

The step-by-step way to connect and enable the Real-time memory access through the DAP is shown in the forum thread below:

http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/p/189774/681339.aspx


Although the procedure above uses a Stellaris device, the same can be done for a Sitara, DaVinci or Hercules device by connecting to the DAP related to the desired core:

  • A8 or A9 cores are typically named CS_DAP_DebugSS or CS_DAP_PC_0
  • M3 Subsystems can be named CS_DAP_M3, CS_DAP_RTOS, CS_DAP_ISS
  • R4 cores are typically named Dap