Percepio enables trace observability for all C/C++ systems

2 mins read

Percepio, a provider of edge observability solutions for system developers within critical Operational Technology (OT) applications, is making available the Tracealyzer SDK, a software development kit enabling platform developers to create custom observability solutions with the Percepio Tracealyzer.

The Tracealyzer provides trace observability for system-level debugging, verification, and profiling for embedded, edge, and IoT systems. Its advanced visualisation and analysis features enables product developers to speed up development time thanks to 10x faster debugging. Tracealyzer also helps developers verify their software to ensure reliable operation and optimise their software to improve product performance.

Tracealyzer is available for several real-time operating systems (RTOS), including FreeRTOS, Zephyr, and Azure RTOS ThreadX, for which Percepio supplies and supports the integration code. The new Tracealyzer SDK provides a broader solution for any C/C++ software enabling more developers to take full advantage of the powerful capabilities of Percepio Tracealyzer, including RTOS awareness, no matter what RTOS is used.

“Tracealyzer SDK represents the second step in our strive to enable more developers to benefit from trace observability,” said Dr. Johan Kraft, CTO and founder of Percepio. “The first step was the RTOS-independent bare metal support added in Tracealyzer v4.7 that enabled application-level tracing for any C/C++ application. Now Tracealyzer SDK enables developers to create custom extensions for full observability, including RTOS awareness and API tracing for deep insight into the runtime world. This is a great way for processor vendors and software platform providers to offer market-leading observability to their customers without having to reinvent the wheel.”

The Tracealyzer SDK is suitable both for application developers and for platform developers. For silicon vendors, the Tracealyzer SDK can enable detailed observability not only on RTOS and application level, but also for board support packages (BSPs), peripheral drivers and hardware abstraction layers, improving productivity for both customers and field application engineers.

The Tracealyzer SDK provides documentation and code examples making it possible to create custom integrations of the Percepio TraceRecorder, Percepio’s open-source event tracing library provided in C source code.

Only a handful of TraceRecorder function calls are needed to enable profiling and optimisation of CPU load, software timing and dynamic memory allocation, including support for identifying memory leaks.

Additional instrumentation can be added in any C/C++ API of importance for verification and debugging, such as communication stacks, drivers and hardware abstraction layers. The Tracealyzer SDK also facilitates integration in AUTOSAR-based automotive software and support for AUTOSAR “Runnables” is already included.

The TraceRecorder library is not only intended for development use but can remain active in production software to analyse anomalies in deployed operation. This use-case is supported by DevAlert, Percepio’s cloud-connected solution for remote edge observability.

DevAlert provides alerts from devices to developers on system anomalies, with detailed diagnostic information including Tracealyzer traces, core dumps and other types of data. With the Tracealyzer SDK, DevAlert users can extend the tracing and get more detailed information on issues and anomalies during customer operation, for example errors and failures due to elusive bugs, or cybersecurity warnings.

The TraceRecorder has been highly optimised since it was originally designed for use in resource-constrained devices such as microcontrollers. Even in such devices, tracing an event is around 1000x faster than “printf” logging to a typical 115200 baud UART interface. Consequently, the performance impact from the TraceRecorder library is typically not noticeable and often more than compensated for by the possibilities for software optimisation.

The TraceRecorder library is available on GitHub under the Apache 2.0 license.

Percepio also offers commercial technical support to customers and partners who need assistance with developing Tracealyzer SDK extensions, and also to platform developers who wish to distribute Tracealyzer SDK extensions to customers with technical support from Percepio.

Open-source projects may be supported free of charge on a case-by-case basis.