ITM Graphing

ITM Graphing

QTrace Analyser provides a quick and very easy way to visualise application data. ITM user data embedded in the trace stream is graphed in real-time with minimal impact on application timing.


  • Displays ITM data points extracted from the trace stream
  • Very low overhead for the target processor
  • Up to 8 graphs and numeric displays are available
  • Requires only 1 line of C code per graph
  • Data points can be ordinal or time + value pairs
  • Supports 32-bit signed, unsigned or floating point data

  • Circular buffers can hold up to 100,000 points per graph
  • Supports up to 10k samples/second per graph
  • Custom scaling can be applied to time and sample values
  • Graph layout is customisable
  • Waveform data can be exported for further analysis
  • Eliminates the need for a custom GUI and comms protocol

Graphing Setup

Each graph and ITM port can be configured via a settings dialog.
ITM graphing setup dialog

Customisable items

Instrumentation Trace Module (ITM) Overview

The graphing facility utilises the ITM ports provided by the Cortex-M architecture. These ports allow application specified data to be transferred at high speed with minimal overhead to the debugger or, in this case, QTrace Analyser. The 32 ports (also referred to as stimulus registers) are written to via reserved memory locations in the range 0xE0000000 – 0xE0000007F. Port 0 is accessed at 0xE0000000, port 1 at 0xE0000004 and so on.

Port 0 and 31 are reserved for the ITM printf-style console and RTOS viewer respectively, leaving ports 1-30 available for user data. The user is free to assign a port to any data source and the ports can be written to with 8, 16, or 32 bit data. Note that QTrace Analyser supports 32-bit user port data only but it can be interpreted as signed, unsigned or floating point.

Data written to ITM ports is forwarded to the processors’ Trace Port Interface Unit (TPIU) for embedding into the trace stream. QTrace Analyser separates this ITM data from the received trace data and displays it graphically. For further details of the ITM internals, refer to the ARM Cortex-M3/M4/M7/M33 Technical Reference manuals.

Refer to section 7 of the QTrace Analyser user manual for further details on ITM graphing