The SigRok project produces open source software for interfacing various types of measurement devices such as logic analyzers, oscilloscopes and more. The target is to provide cross platform software that words on Linux, OS X Windows, Android and more for measuring, visualizing and analyzing.
The latest version of libsigrokdecode supports protocol decoders for ARM (tpio, itm and etmv3).
Here’s a quick overview of the protocols that are decoded:
- The TPIU (Trace Port Interface Unit) is a stream formatter and multiplexer that combines data from several sources into one stream. It is used inside an ARM-based microcontroller or SoC to combine ITM and ETM trace output into a single port.
- ARM ITM (Instrumentation Trace Macroblock) allows tracing of software events, and also with the help of DWT (Debug, Watchpoint and Trace) the tracing of exceptions and data watchpoints. It also supports periodic sampling of PC values.
- ARM ETM (Embedded Trace Macroblock) allows tracing of every instruction executed on the CPU. Currently only ETM version 3 (the newest version, present in Cortex-M3 and other ARMv7-m) is supported.
The end result is that you can run traces and use sigrok to perform low level debugging. Awesome!