Tracealyzer for Keil RTX5

Tracealyzer gives an unprecedented insight into the run-time world of Keil RTX5 systems. Solve problems in a fraction of the time otherwise needed, develop more robust designs and find new ways to improve your software’s performance.

Visualizing Runtime Behavior with
Tracealyzer for Arm Keil

Tracealyzer for Keil RTX5 visualizes the runtime behavior of embedded software based on Keil RTX5, providing over 25 graphical views that complements the debugger’s detailed, low-level perspective with the big picture. Tracealyzer gives unprecedented insight that speeds up debugging and provide better means for validation and performance optimization. Issues that otherwise may require many hours, days or even weeks to solve, can with Tracealyzer be understood quickly. See what is really going on in your system and avoid many hours of frustrating trial-and-error troubleshooting!

The visualization is based on traces from the lightweight Event Recorder provided by ARM as part of Keil MDK / µVision. It provides continuous streaming of important software events from the RTX5 kernel, from the MDK middleware and from “User Events” that can be added for additional logging in the application code. Event Recorder works with any debug probe supported by Keil MDK / µVision, although for best performance we recommend debug probes with fast memory access, such as Keil ULINKplus or ULINKpro.

All Tracealyzer versions offer an evaluation period with full functionality and also included demo traces, allowing for exploring the features of Tracealyzer without writing a single line of code.

The 25+ views include:

Arm Keil

Trace of Tasks, ISRs, RTOS calls and User Events

The main trace view shows you all recorded events visualized on a vertical time-line, including task execution timing, interrupts, system calls and custom user events. The task and interrupt trace are shown as colored rectangles. Events are shown as floating text labels. Zooming is very easy using a click-and-drag selection, which also works as a measurement tool. Tasks and events can be clicked and highlighted for additional information, including timing and event dependencies. The lower right corner contains a powerful filter, and the Finder dialog provides even more powerful filters. When zooming out, this view naturally transforms into an overview where patterns can be studied.

Arm Keil

CPU Load

This view presents a horizontal time-line showing the total CPU usage, and also CPU usage per task/interrupt. The CPU Load Graph allows for navigating the main trace view, since a double click in the CPU Load Graph focuses the main trace view on the clicked interval. Zooming is allowed in this view as well, independently of other views, and filters are available for focusing on individual tasks or interrupts.

Arm Keil

Task Timing Variations

This is an example of several Actor Instance Graphs, each showing the distributions of a specific timing property for an actor, i.e., a task or interrupt routine. This includes execution time, response time, fragmentation, and several others. Each data point represents one specific execution of a task or interrupt handler. This graph, Response Time, shows the variation in response times for two selected tasks. Tasks instances with high response times may reveal resource conflicts, e.g., where several tasks or interrupts compete for CPU time in a busy interval. This view makes it easier to spot such locations that may indicate problems or possibilities for optimization.

Arm Keil

Multiple Views Synchronized

All views with horizontal orientation can be combined in a single parent window, with synchronized scrolling. This allows for spotting patterns that otherwise would be hard to see using individual views, e.g., how the response time depends on other events, and this also allows for greater customization of the user interface.

Arm Keil

Communication Flow

Many system calls allow for communication or synchronization between tasks. Tracealyzer understand these dependencies and the Communication Flow graph is a summary of all such dependencies found in the trace, in the form of a directed graph. This is a high-level view of the communication dependencies between tasks and interrupts, including the kernel objects used such as semaphores and message queues. Like in all views, double-clicking on a node opens a related view focused on the particular object. Double-clicking on a kernel object (e.g., a semaphore) opens the Object History view (shown below), a list of all events on the specific kernel object. If double-clicking on a task or interrupt, the Actor History view is opened showing all executions of the actor.

Arm Keil

Kernel Object History

This view shows all events on a particular kernel object, such as a message queue, semaphore or mutex. The events are presented as a list, and double-clicking on a list item shows the corresponding system call in the main trace view. For message queues and similar objects with send/receive operations, it is possible to follow a specific message from send to receive, or vice versa, and also to inspect the messages (by sequence number) in the queue at any given time.

Arm Keil

Create your own User Events

User-defined events, or User Events, allows you to log any event or data in your embedded application. This gives the flexibility of classic debug “printf” calls, but are much faster as all string formatting is done offline, in the viewer. Since you get the events on the same time-line as the kernel trace, it is easy to correlate the application event with the other views.

Arm Keil

Visualize data from your code

When logging “User Events”, data arguments can also be included and plotted to visualize the data over time. By clicking on any data point in the plot, the corresponding User Event is highlighted in the main trace view.

The plotting is highly useful for analysis of control algorithms, as it allows you to correlate the plotted data with the other time-line views to find the cause of any anomalies in the plot.

Information on licensing and pricing is found on the Licensing page and local distributors are listed on the Partners page.

In case you have any technical questions, don’t hesitate to contact support@percepio.com.

Arm Keil
“Percepio Tracealyzer enables unparalleled insight into the execution, timing and interactions of the RTX5 real-time operating system, the MDK middleware components and the user application. Percepio is the first ARM partner to utilize our new Event Recorder technology, which provides time deterministic high-speed access to a running target system.“
Reinhard Keil

Director of MCU Tools at ARM

Stay informed.
Sign up for our newsletter.

Our Products

Percepio® is the leading provider of visual trace diagnostics for embedded and IoT software systems in development and in the field.

TRACEALYZER

Percepio® Tracealyzer combines software tracing with powerful visualizations, allowing users to spot and analyze issues in software recordings during development and testing.

Learn more about Tracealyzer

DEVALERT

Percepio® DevAlert is a cloud-connected monitoring framework for OEMs developing RTOS device software, providing instant insight on bugs and anomalies.

Learn more about DevAlert