Does Tracealyzer fit into my project?

Nov 16, 2023 |

A Guest Post by Marian A. Wosnitza, Carnica Technology

Every developer wants universally applicable tools for their embedded development. However, hardware (processor type) and software (RTOS) architecture can limit the choice, making it a decision for the second-best rather than the best tool – even if you are in the mainstream.

This is one of the reasons why Software Development Kits (SDKs) are becoming increasingly popular – even more so if they are easy to use and deploy.

The best decision

SDKs allow you to choose the best project tool and make its use possible for your own project.

You already know Tracealyzer from Percepio. It provides trace observability for system-level debugging, verification and profiling of embedded, edge and IoT systems. Its advanced visualization and analysis capabilities enable product developers to debug 10x faster.

Tracealyzer also helps developers verify software to ensure reliable operation, optimize software, and improve product performance. But does Tracealyzer fit into any project environment? With any C/C++ app? Any RTOS? Only if the tool integrates fully into the existing environment can you leverage its full benefits.

Does Tracealyzer fit into my project environment?

Tracealyzer is available “out-of-the-box” for several popular real-time operating systems (RTOSes), including FreeRTOS, ARM Keil RTX5, Linux, Zephyr, and Azure RTOS ThreadX, for which Percepio provides and supports the integration code.

To enable other RTOS users to benefit from trace observability, Percepio’s first step was to provide RTOS-independent bare-metal support in Tracealyzer v4.7, enabling tracing for any C/C++ application.

With the new Percepio Tracealyzer SDK, application and platform developers can now create custom extensions for full trace observability of any C/C++ system.

This broader solution enables more developers to take full advantage of Percepio Tracealyzer’s powerful capabilities no matter what RTOS is used.

Don’t reinvent the wheel

The Tracealyzer SDK allows developers to create their own extensions for full observability, including RTOS awareness and API tracing for deep runtime insight. This is an excellent 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 for both application developers and platform developers, such as silicon vendors, RTOS developers and middleware developers. They can all benefit from the Tracealyzer SDK by achieving more design wins through better tool support.

For silicon vendors, the Tracealyzer SDK enables detailed observation not only at the RTOS and application level, but also for board support packages (BSPs), peripheral drivers, and hardware abstraction layers. This increases productivity for both customers and application engineers, accelerates development, and reduces time to production.

Easy, customer-specific integration
The Tracealyzer SDK provides the necessary documentation and code samples for customers and partners to create custom integrations of TraceRecorder, Percepio’s open-source event tracing library in C source code. Only a handful of TraceRecorder function calls are required to enable profiling and optimization of CPU load, software timing, and dynamic memory allocation, including support for identifying memory leaks.

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

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

Remote Edge Observability with DevAlert

DevAlert alerts developers to system anomalies and provides diagnostic details like Tracealyzer traces, core dumps, and other data types. With the Tracealyzer SDK, DevAlert users can extend tracing to get more detailed data on issues and anomalies in customer operations, such as errors and failures from elusive bugs or cybersecurity alerts.

TraceRecorder has been heavily optimized and is now also suitable for use beyond resource-constrained devices such as microcontrollers. But even in such devices, tracing an event is about 1000x faster than “printf” logging on a typical 115200 baud UART interface.

The performance degradation caused by the TraceRecorder library is minimal and usually outweighed by the software optimization capabilities.

The TraceRecorder library is available on GitHub under the Apache 2.0 license. The Tracealyzer SDK can be used by any Percepio customer with an active Tracealyzer subscription. Percepio provides commercial technical support for customers and partners who need assistance developing Tracealyzer SDK extensions, as well as for platform developers who wish to distribute Tracealyzer SDK extensions to customers with Percepio technical support. Open-source projects can be supported on a case-by-case basis at no cost.

Learn more and access the Tracealyzer SDK at https://percepio.com/tracealyzer-sdk/.