Live profiling and code coverage

Jon Lawson

SEGGER has made enhancements to its J-Trace PRO and Ozone debugger products. The new functionality incorporated will enable continuous trace, endless streaming and live analysis of application trace data for ARM Cortex-M projects. This updated solution presents engineering professionals with the most effective tool for code coverage and code profiling to be found on the market, as the analysis data is taken from firmware running on the intended target hardware.

Code coverage is a must-have for complex embedded systems using stacks such as Ethernet or USB. The continuous stream of trace data provided by J-Trace PRO permits complete code coverage analysis over unlimited periods of time. This is highly suitable for capturing even the most intermittent application failures, whether they occur within hours or over the span of many days. The live trace is a non-intrusive data collection method that utilises ARM’s Embedded Trace Macrocell (ETM). The inclusion of code instrumentation is not required.

The new real-time trace and analysis capabilities of J-Trace PRO can be easily visualised using Ozone, SEGGER’s intuitive debugger. Execution counters are displayed in line with the code and can be tracked down to the instruction level. The counters are updated live in real-time. Code coverage is also shown within Ozone indicating code sections, that may never execute.

Developers benefit from J-Trace PRO while debugging and verifying multi-tasking code behaviour. The trace can shed light on hidden code issues and inefficiencies to identify parts of the code which may benefit most from performance optimisations.

The entire system is designed for ease of use - just a few clicks and a full visualisation of what the application is doing and where most of the time is spent is rapidly made available. The Ozone debugger can also export gathered trace information, which enables offsite analysis and as evidence with code certification.

J-Trace PRO offers developers a fast and efficient means to identify and resolve real-time system application code defects, ensuring higher productivity and also lowering development risks and costs.