Component Viewer and Event Recorder
Component Viewer and Event Recorder do not require special debug capabilities of the target hardware. They use memory reads and writes to show information about:
- software components that are provided in static memory variables or structures
- objects that are addressed by an object handle.
- execution status and event information of software components.
The Event Statistics window shows you statistical data about the code execution. Any debug adapter can be used to record execution timing and number of calls for annotated code sections. Energy profiling of annotated code sections is possible using ULINKplus. Benefits include:
- Collect statistical data about the code execution (time and energy).
- Log files enable comparisons between different build runs in continuous integration (CI) environments.
- Improve overall code quality and energy profile (especially relevant for battery driven applications).
Data and Event Trace
All Cortex-M3/M4/M7/M23/M33 based devices provide Data and Event Trace. MDK provides a number of ways to analyze this information while your system is running:
Many Cortex-M3/M4/M7/M33 devices incorporate an Embedded Trace Macrocell (ETM) which provides instruction trace. The Keil ULINKpro streams instruction trace directly to your PC, enabling debugging of historical sequences, execution profiling, performance optimization, and code coverage analysis.
The virtually unlimited stream of trace information enables MDK to provide complete Code Coverage of your program. Code coverage identifies every instruction that has been executed, ensuring thorough testing of your application. This is an essential requirement for complete software verification and certification.
ULINKpro allows applications to be run for long periods of time while collecting trace information. This is used by Performance Analyzer to record and display execution times for functions and program blocks. It shows the processor cycle usage and enables you to identify algorithms that require optimization.
Having recorded your application, the Execution Profiler shows timing and execution statistics for the complete program code.
Third party tools
Using the event information coming from the Event Recorder, Percepio's Tracealyzer supports advanced debugging of Keil RTX5 projects.
Mastering RTOS Debugging Techniques
Using an RTOS has almost become a necessity when developing a real-time embedded system. The problem is that many developers are just starting to use an RTOS and are not familiar with the methodologies and techniques necessary to quickly and efficiently debug their RTOS based application code. In this webinar, attendees will become familiar with the latest and greatest techniques and tools necessary to debug their code. Important concepts such as properly sizing thread stacks, using event viewers and discovering issues such as priority inversions, deadlock and thread starvation will be examined. This webinar provides hands-on demonstrations using NXP's K64 Freedom Board with MDK, Keil RTX5 and Percepio's Tracealyzer.
The webinar is presented by Jacob Beningo, an embedded software expert, Percepio, and Arm.