Company: Percepio AB
Category: Engineering Development/Design Tool of the Year
The pressure is on: organizations need to get to market faster with high quality intelligent products. But the intended and actual behaviour of the software embedded in those products may differ in a myriad of ways. Source code alone does not give the full picture of how today’s multitasking embedded software systems behave during execution. The real-time behaviour depends on many other factors, like the timing of tasks and interrupts, their interactions and inputs. What’s needed is better insight into the dark side of the code.
Tracealyzer enables developers of RTOS- and Linux-based embedded systems to look deep into their code at runtime and provides visual trace diagnostics to help them spot anomalies and see what caused them.
Acting as a virtual surveillance camera for the code during execution, Tracealyzer is a sophisticated visual tracing tool that gives developers a detailed timeline on the runtime system with a large set of visual overviews, metrics and statistics. All in all, Tracealyzer provides more than 30 views of code runtime behaviour, including task scheduling and interrupt handler execution, task timing (execution time and other metrics), task priority, CPU load, memory usage, as well as interactions between tasks and interrupt handlers/ISRs via message queue, semaphore and mutex objects. This depth of information enables developers to accelerate development, debugging and validation.
Tracealyzer can be used together with traditional debuggers. It complements the detailed debugger view with visual insight into real-time and execution timing issues which a classic debugger cannot handle.
By using Tracealyzer, developers can achieve:
- Better software quality – Tracealyzer can be used to solve specific, hard problems as well as potential problems, such as blocking system calls that are close to a timeout. Moreover, Tracealyzer provides a high-level overview of the software architecture, allowing developers to see design flaws before they manifest themselves during execution.
- Better performance – The improved visual insight also allows developers to find new ways to improve software performance. Tracealyzer provides several ways to find hot spots where tasks are delayed by higher prioritized tasks; without the aid of visualization, such optimizations are very hard to find.
- Control system tuning – Plots of application data like sensor inputs and actuator outputs can be correlated with the software timing in order to better understand anomalies in the control system. Moreover, plots of task timing (e.g., periodicity) can be used to study timing variations that affect control performance.
- Faster troubleshooting – Tracealyzer allows for capturing rare, sporadic errors which otherwise can be very hard to reproduce and analyse.
Finally, since Tracealyzer supports Linux as well as many other common real-time operating systems for embedded software, developers can continue using Tracealyzer even when switching to another operating system.
So how much does Tracealyzer speed up an embedded project? The answer depends on many details, but customers tell us that it cuts development time significantly. For example, one industrial equipment manufacturer conducted an internal survey and learned that developers spent about one hour on average to fix a bug with Tracealyzer, compared to 6–7 hours per bug without Tracealyzer. Another customer found optimizations that reduced processor usage by 67 percent, allowing them to use more cost-effective processors and extend the battery life of their devices by lowering the clock frequency.
For more information, see our whitepaper, which we are submitting along with this entry. It explains how Tracealyzer works and provides additional insights on the benefits of using Tracealyzer for embedded systems. We would also like to present a short video (https://www.youtube.com/watch?v=ysiuQUbf7mY) that brings Tracealyzer’s power to the point in less than 2 minutes, as well as a longer and more technical walkthrough (https://www.youtube.com/watch?v=q5w3q9hD4EU).