Profiling and Coverage Tool
One of the most effective debugging techniques in embedded development and testing is tracing. Tracing means recording microcontroller activity, such as Program or Data flow.
Trace and Analyze Program Flow
Program flow records a stream of instructions executed by the application during runtime. Analyzing the program flow provides an insight into the full dynamic behavior of your application. It allows faster bug detection and ensures that the software runs as expected.
Measure and Analyze Code Coverage
Create code coverage reports to demonstrate safety standards compliance.
Code coverage is a measurement used in software testing as an indirect quantitative measure of test quality. It helps to find areas of a program not executed by a set of test cases, indicating some code could still contain critical errors. It also removes overhead when assigning memory resources by finding dead code. Dead code is code that is never executed and is a potential hazard since it was not tested.
Measure Timing and Analyze the Timing Behavior of your application
Timing is one of the most important requirements in the development of safety critical applications.
Reach your safety goals by measuring the execution time of tasks, Interrupt Service Routines (ISRs), Runnables, functions, and other objects. Ensure compliance with the project and relevant standard requirements by calculating advanced metrics like response time, activate-to-active time, and slack time.
Analyze CPU core load
A CPU’s busy time provides an insight into the real-time behavior of an embedded application.
Prove compliance with the customer and industry-standard requirements by measuring the CPU load of different cores. Analyze overall CPU utilization over time via a sliding window or PC polling approach.
Validate Event Chains and Execution Order Constraints
Event Chains specify a relationship between Events in an AUTOSAR based application.
Validate the correctness of your AUTOSAR Event Chains and verify the Execution Order of functions and Runnables with winIDEA Inspectors.
Visualize and Inspect AUTOSAR OS / RTOS tasks and Profile RTE
Understand your Operating System‘s behavior by recording OS objects such as Tasks and ISRs and visualizing their timings. Get an in-depth understanding of the Run-Time Environment (RTE) by recording Runnables, RTE communication and other parts of the basic software.
Perform Data trace and Analyze Data consistency
Performing Data trace means recording read and write access to variables and their data values. Adding timing information to the Data trace enables RTOS profiling. Visualize the state of variables over time to reach data consistency for your project.
Sample Data and Program Counter
Sample the value of variables and of the program counter to get deeper insights into the behavior of your application even without full trace. You can see the changes of variables over time, analyze which OS tasks and ISRs are executed, and you can also analyze the load caused by different functions.