Keil Logo

µVision® Debugger

Learning Platform

The µVision debugger provides a single environment in which you may test, verify, and optimize your application code. The debugger includes traditional features like simple and complex breakpoints, watch windows, and execution control and provides full visibility to device peripherals.

Using a ULINK debug adapter to access the Arm CoreSight™ unit in Cortex-M based devices, the µVision debugger provides advanced real-time debug, trace, and analysis capabilities:

uVision Debugger
  • The Event Statistics window displays execution time and current consumption (when using ULINKplus) of the application code.
  • Execution timing is summarized in the Performance Analyzer and available for code statements.
  • The Component Viewer window shows variables and structures of software components.
  • The Event Recorder window lists captured events of software components.

Multi-core debug with CMSIS-DAP and ULINKplus

In this webinar you will learn how to setup µVision for working with multi-core targets, how to use CMSIS-DAP in the debug sessions, and how to use the enhanced features of ULINKplus when debugging multi-core devices.


Using the Event Recorder to identify timing and power consumption bottlenecks

In this webinar, you will learn how to annotate your application code with events that provide detailed statistics about execution timing and energy consumption. This information allows you to optimize algorithms and compare changes, for example in automated build tests.


Advanced Debug and Trace using ULINKpro

The µVision Debugger gives you full access to debug and trace of an Cortex-M based system. Trace enables additional debug views such as Logic Analyzer, Event Viewer, Performance Analyzer, Code Coverage, and Instruction Trace. These debug views show the dynamic behavior of your application and let you optimize algorithms or identify sporadic errors. In this webinar, you will learn how to use ULINKpro for advanced debugging and tracing of embedded applications on an NXP's Kinetis K64 MCU.

Component Viewer and Event Recorder

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.

Event Statistics

Event Statistics

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

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:

Instruction Trace

Instruction Trace

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.

Code Coverage
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.

Performance Analyzer
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.

Execution Profiler
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.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.