The Tracealyzer support for FreeRTOS, SafeRTOS and Micrium relies on Percepio’s own recorder library. This can be used on most processors and contains ports for several common processor families, including:

  • Arm Cortex-M devices, e.g., STM32, NXP LPC series, Renesas Synergy, etc.
  • Arm Cortex-A9 devices, e.g. Xilinx Zynq.
  • Renesas RX600 series
  • Microchip PIC32 series
  • Atmel AVR32
  • And several others

If you are using a different processor that is not yet directly supported, it is easy to port to new hardware platforms. The hardware specifics of the recorder library is mainly found in trcHardwarePort.h and there is also some in trcKernelPort.h (critical sections).

There is only three kinds of hardware dependencies:

  • How to read the current time, for time-stamping of events. This can either be a free running counter or an interrupt timer. In the latter case, this can be the same timer/counter as used for the operating system tick interrupt.
  • How to enable/disable interrupts during critical sections in the recorder.
  • The meaning of interrupt priority levels – is interrupt priority 0 (zero) the most urgent interrupt, or the least urgent interrupt?

Each port is just a few macro definitions, and have proper documentation in the code. If you have questions, feel free to contact