Keil Logo

Technical Support

On-Line Manuals

µVision User's Guide

About µVision User Interface Creating Applications Debugging Using the Debugger Simulation Start Debugging Application Program Execution Debug Windows and Dialogs Breakpoints Window Call Stack and Locals Window Code Coverage Command Window Component Viewer Disassembly Window Event Recorder Filter Component Levels Setup Event Recorder Event Viewer Execution Profiler Instruction Trace Window Logic Analyzer Setup Setup in Detail Restrictions Cortex-M Trace Configuration Memory Map Memory Window Performance Analyzer Registers Window Serial Window Symbols Window System Viewer Adding System Viewer Windows System and Thread Viewer Thread States Toolbox Trace Data Window Trace Navigation Watch Window Core Peripherals Cortex-M0 and Cortex-M0+ Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports (Cortex-M0+ only) Cortex-M3, Cortex-M4, and Cortex-M7 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Cortex-M23 and Cortex-M33 Nested Vector Interrupt Controller System Control and Configuration System Tick Timer Fault Reports Memory Protection Unit Security Attribution Unit Expressions Constants System Variables Peripheral Variables I/O Ports Serial Ports Program Variables (Symbols) Fully Qualified Symbols Non-Qualified Symbols Literal Symbols Using Symbols Line Numbers Bit Addresses Type Specifications Operators Differences between µVision and C Expression Examples Code and Data Trace (Cortex-M) Trace Features Tracepoint Expressions Tracepoint Intrinsics Tracepoint Limitations Configuring the Trace Hardware Tracepoint Marks Tips and Tricks Review Peripherals and CPU Configuration Simulate I/O Ports Simulate Interrupts and Clock Inputs Simulate external I/O Devices Assign Serial I/O to a PC COM Port Check Illegal Memory Access Command Input from File Preset I/O Ports or Memory Contents Write Debug Output to a File Keyboard Shortcuts TPIU Initialization after RESET (Cortex-M) Prevent Opening Files Show Japanese Messages Code Coverage Export MTB Trace Import for Code Coverage Debug Commands Debug Functions Simulation Flash Programming Dialogs Utilities Command Line Example Programs Appendix

Event Recorder

The Event Recorder shows execution status and event information, and helps to analyze the operation of software components. The required infrastructure is already implemented in the MDK middleware and the CMSIS-RTOS2 RTX.

The Event Recorder:

  • Increases the visibility to the dynamic execution of application program.
  • Provides filter capabilities for event types (Errors, API Calls, Operation, Details).
  • Allows unrestricted calls to Event Recorder functions from Threads, RTOS kernel, and ISRs.
  • Implements recording functions that do not disable ISR on ARMv7M (Cortex-M3, Cortex-M4, Cortex-M7).
  • Supplies fast time-deterministic execution of Event Recorder functions with minimal code and timing overhead. Thus, event annotations can remain in production code without the need to create a debug or release build.

Analysis Window Button Open the Event Recorder from View – Analysis Windows - Event Recorder.

Event Recorder Window

Where

Event Record number that starts counting from 0 whenever the Event Recorder buffer is reset.
Time(sec) Is the timestamp of the event and depends on the Time Stamp Source selected in the file EventRecorderConf.h.
Component Identifies the software component that triggered the event. Hover the mouse over the field for details.
Event Property Shows the event function. Click on the link to jump to the documentation. Hover the mouse over the field for details.
Value Shows the event function parameters. Hover the mouse over the field for details.
messages Messages inform about the status of the Event Recorder:
  • Recording - Events get collected. Operating normal.
  • Stopped - Debugging session halted, or Enable Recorder is unchecked. Operating normal.
  • Not Initialized ! - Initialize the Event Recorder in the application code. Refer to Setup Event Recorder.
  • Recorder Buffer Overflow - Target side overflow. Event records are written too fast to the buffer. Increase Event Recorder buffer size, defined with EVENT_RECORD_COUNT in file EventRecordConf.h. Refer to Setup Event Recorder. You could also try to add a wait statement after each Event Recorder function in your code.
  • Event Buffer Overflow - Host PC side overflow. Event records are written too fast to the buffer. Increase Event Recorder buffer size, defined with EVENT_RECORD_COUNT in file EventRecordConf.h. Refer to Setup Event Recorder. You could also try to add a wait statement after each Event Recorder function in your code.
  • Stopped with errors ! - Data might be missing in the view because of overflows. Solve according to the corresponding Overflow message.
  • Configuration error ! - Adjust your settings in the file EventRecordConf.h. Try to reduce the Event Eecorder buffer size, defined with EVENT_RECORD_COUNT. Refer to Setup Event Recorder.
  • Unsupported Protocol ! - The Event Recorder version is not supported by your installation. Update or upgrade your MDK version.

Toolbar

Event Recorder Toolbar

Where

Enable Recorder You can enable or disable the recorder while debugging.
  • when unchecked - Disable refreshing the window. You can analyze the set of data while the debugger is running. The Event Recorder further collects the data in the background.
  • when checked - Refreshes the window and shows the collected data.
Clear
Filter Event Records Button
Clear the Event Recorder window and buffer. Event record numbers are reset to 0. Halt debugging to enable the button.
Save
Filter Event Records Button
Save the Event Recorder buffer to a comma-separated (*.csv) file. You can analyze the data later. Halt debugging to enable the button.
Configure Recording
Filter Event Records Button
Configure the level of recording. Opens a dialog to enable the events that should be recorded. These settings are stored in the target. Refer to Filter Component Levels for details. Halt debugging to enable the button.
Mark Enter a search criteria to highlight (yellow background) the records that match the string. You can use the *-wildcard as a placeholder. Halt debugging to enable the button.
Select Level Select the level of details and highlight (yellow background) matching records. Halt debugging to enable the button.
  • All Operations - no record is highlighted (default).
  • API Calls - highlight all records that get triggered by the API interface.
  • Erros - highlight all records that get triggered by an error.
  • Details - highlight all records that include detailed information.

Record Coloring

Background colors mark the following events (multiple meanings are possible):

  • Red - Overflow. Highlights the first record after overflow.
  • Red - Calculation Error. Highlights the first record after an calculation error in the event description.
  • Orange - Initialization event.
  • Orange - Delayed event.
  • Green - First event after Enable Recorder checkbox enabled.
  • Green - Timestamp reference point. Right click the mouse on a record to set or clear a time reference point. Hover the mouse over another time field to get time deltas regarding to the time reference point.
  • Blue - Incomplete event.
  • Blue - Currently selected record.
  • Yellow - Records that match a search criteria.

Character colors emphasize the following:

  • Red - Error thrown by event functions.
  • Blue - Event triggered by API calls.
  • Black - Event triggered by Operation calls.
  • Dark Gray - Event triggered by details.
  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.