Tracealyzer adds bare metal option, boosts ARM-R support

Tracealyzer adds bare metal option, boosts ARM-R support

New Products |
By Nick Flaherty

Percepio in Sweden has updated its Tracealyzer development tool with several major improvements including a bare metal option, automotive ECU profiling and enhanced support for the ARM Cortex-R family of real time microcontroller cores.

Version 4.7 now includes observability for any C/C++ software as the TraceRecorder library can now be used with any C/C++ software without requiring that a supported RTOS is used. This way, more firmware developers can benefit from the powerful observability of Percepio Tracealyzer to improve their software verification, profiling and debugging processes.

This is made possible by the bare metal option that enables application-level trace without the need for RTOS kernel instrumentation. RTOS kernel trace is not provided by default, but users can log and visualize any event or data in their application, such as function calls, values of variables and registers, state machines as well as various types of software timing.

The TraceRecorder library has been extended with a new hardware port for ARM Cortex-R and -A devices using the Armv8 architecture in 32-bit mode. This allows for using Tracealyzer on popular cores such as the Cortex-R52.

Support for tracing of “runnables” makes Tracealyzer v4.7 suitable for automotive ECU profiling and debugging. A runnable is an automotive term for a software component in the runtime system; however, runnable tracing is not only for automotive systems but allows detailed profiling of any C/C++ code where timing and performance are important. This lets developers trace and visualize any code section in the Tracealyzer timeline views and get detailed profiling information including execution time statistics and plots.

V4.7 also allows developers to set up explicit tracing of state machines and custom intervals directly in the TraceRecorder API, on the target side. This makes such tracing more efficient and easier to use, since no additional setup is needed in the Tracealyzer application. Views like state graphs and interval plots are available directly when such traces are loaded in Tracealyzer.

Logging is more efficient as string literals like names and format strings don’t need to be logged in full. Instead, only their memory addresses are logged, and these are resolved automatically by Tracealyzer by using the ELF file from the build process. This means fewer bytes per log message, faster logging calls, and thereby higher throughput in the logging.

Tracealyzer previously allowed for network-based streaming using TCP, but now support for UDP streaming provides significantly faster operation with higher throughput, less memory usage and lower processor loads.

The integration for SafeRTOS (the functional safety version of FreeRTOS maintained by Wittenstein High Integrity Systems in the UK) has been upgraded to the new generation TraceRecorder (introduced in v4.6) and now benefits from all the added Tracealyzer features.

“We are thrilled about launching all these major enhancements, and especially the improved application tracing that no longer requires RTOS kernel integration. That has always been a bottleneck limiting what customers we could support out-of-the-box. Now we can offer a major part of the Tracealyzer capabilities to any C/C++ device software developer, regardless of what operating system they use, if any. Moreover, this “bare metal” integration option provides the foundation for our upcoming Tracealyzer SDK that will enable customers and partners to make custom integrations for any RTOS kernel,” said Johan Kraft, CTO at Percepio.

Tracealyzer v4.7 is available for evaluation and download immediately.


Linked Articles