CoreSight is ARM debug suite and provides debug access to Cortex processor itself and the surrounding ARM subsystem. I tend to address some basic questions of CoreSight in this short post. Questions covered are:
- How are CoreSight components used in a typical ARM Cortex processor?
- What is difference between ITM, ETM, HTM, STM?
- How user can access trace information coming out of ITM/ETM/HTM/STM?
- What does TM trace data look like and how to interpret data?
- How does access port (AP) work?
Feel free to leave a question and comment.
Q1: In general, how are CoreSight components used in a typical Cortex processor?
Taking Cortex-M4 as an example, Serial-Wire (SW) or Jtag first accesses SW/JTAG Debug Port (DP). DP then accesses AHB Access Port (AP). AHB AP output port is a typical AHB master port and it talks to a bus matrix, aka AHB interconnect, inside CM4 core. This Bus Matrix has a APB master port and it is used to access various debug modules such as CoreSight ROM table, ETM, ITM, and TPIU through PPB APB bus. Note this PPB APB is just debug control path. Debug data path is those paths between bus matrix and ITM, between CM4 and ETM, between ITM and TPIU, etc.
Use points to gain access. You can either purchase points or contribute content and use contribution points to gain access.