Tracealyzer is a sophisticated tool for tracing and visualization of RTOS-based systems. Tracealyzer gives an unprecedented insight into the runtime behavior of STM32 firmware, which speeds up debugging, validation and performance optimization. Tracealyzer provides more than 30 graphical views showing different aspects of the real-time software behavior, making it easier to reveal errors and bottlenecks. The views are interconnected in clever ways and very intuitive to use.
For general information about Tracealyzer, check the Getting Started page with video tutorials, articles and examples of how Tracealyzer can be used.
This page explains how to get started with Tracealyzer on STM32 devices, assuming you use an RTOS that works with Percepio’s trace recorder library, such as FreeRTOS, SafeRTOS or Micrium µC/OS-III. Tracealyzer also supports other RTOSes like Keil RTX5, ThreadX, VxWorks, Intervalzero RTX64 and Linux using other trace recording libraries. In those cases, please refer to the User Manual of the respective Tracealyzer version.
Tracealyzer relies on a software library that automatically records events from the RTOS kernel and also allows for logging your own events. No special debug/trace hardware is therefore required. The recorder library is highly optimized and the performance penalty is usually very small, in the range of a few percent.
Let’s take FreeRTOS as an example. To integrate the trace recorder library in your FreeRTOS build, follow this step-by-step guide and select the ARM Cortex-M port. Make sure you have FreeRTOS v7.3 or later. The process is very similar for SafeRTOS or Micrium µC/OS-III, but please refer to the User Manual of the respective Tracealyzer version.
The default mode of the recorder is snapshot tracing, using a RAM buffer to hold the trace, but Tracealyzer also supports continuous trace streaming that allows for very long traces. The streaming can be customized for all sorts of communication interfaces, via the concept of stream ports. The recorder library includes stream port implementations for e.g. ST-Link and USB CDC on STM32 devices.
If you are developing with ST’s STM32CubeIDE, you can download and install our Trace Exporter plugin (see instructions here), which will allow you to use Tracealyzer in snapshot mode from within the IDE, with any debug probe that is supported by STM32CubeIDE.
There is also a general Eclipse plugin that offers similar functionality for other Eclipse-based IDEs.