Keil Logo

Technical Support

On-Line Manuals

µVision User's Guide

About µVision User Interface Creating Applications Debugging Start Debugging Start Energy Measurement without Debug Application Program Execution Debug Windows and Dialogs Breakpoints Window Call Stack and Locals Window Code Coverage Command Window Component Viewer Disassembly Window Event Recorder Setup Event Recorder Event Recorder Window Events Filtering Event Statistics Window Event Viewer Execution Profiler Instruction Trace Window System Analyzer Usage tips Restrictions Logic Analyzer Setup Setup in Detail Restrictions Cortex-M Trace Configuration Memory Map Memory Window Performance Analyzer Registers Window Serial Window Debug (printf) Viewer Symbols Window System Viewer Adding System Viewer Windows System and Thread Viewer Thread States Toolbox Trace Data Window Trace Navigation Trace Exceptions Event Counters ULINKplus Window 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 Debug Scripting 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 Configuring Trace Tracepoint Expressions Tracepoint Intrinsics Tracepoint Limitations 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 Debug Commands Debug Functions Simulation Flash Programming Dialogs Utilities Command Line Example Programs Appendix

Setup Event Recorder

The Software Packs for MDK Middleware and CMSIS already contain the *.SCVD files and the related event annotations in the C source code and provide project examples ready to run.

Refer to the Using Event Recorder for detailed information on how to add event annotations to user code.

To use the Event Recorder in an application:

  1. Select Compiler:Event Recorder using the dialog Manage Run-Time Environment. Click on the documentation link in the dialog for more details.

    RTE: add Event Recorder

    This adds the component class Compiler with the Event Recorder to the application and Project window.

    Component Class Compiler with Event Recorder

  2. Configure the Event Recorder using the file EventRecorderConf.h.

    EventRecorderConf.h in Configuration Wizard

    You can set the following configurations:
    Option #define Description
    Number of Records EVENT_RECORD_COUNT Specify the number or records stored in the Event Record buffer. Each record is 16 bytes.
    Time Stamp Source EVENT_TIMESTAMP_SOURCE Specify the timer used as time base. Default is the DWT Cycle Counter that is part of the CoreSight debug interface. This counter is not available in Cortex-M0 and Cortex-M0+.
    SysTick Configuration   If the SysTick timer is used as timestamp source, then the following settings are relevant.
    SysTick Input Clock Frequency [Hz] SYSTICK_CLOCK Define the SysTick input clock that is typically identical with the processor clock.
    SysTick Interrupt Frequency [us] SYSTICK_PERIOD_US Define the time period of the SysTick timer interrupt.
  3. Initialize the Event Recorder in the application code.
      :
    #include "EventRecorder.h"                       // Keil::ARM_Compiler
      :
    int main (void)  {
      :
      // system configurations
      :
      EventRecorderInitialize (EventRecordAll, 1);  // initialize and start Event Recorder
      :
      // other application code
    }
    

    Refer to the Event Recorder documentation for details about adding event annotations to your code.

  4. Add or verify that a Component Viewer Description File is attached to the project.
  5. To preserve the configured Filter Component Levels, place the Event Recorder into a non-initalized memory area. In Options for Target - Target, create a Read/Write Memory area and set the NoInit flag.

    Options for Target - Memory

    Right-click the class Compiler in the Project window and open Options for Component Class 'Compiler', select Event Recorder, and Memory. Assign the defined memory area to Zero Initialized Data.

    Options for Component - Memory

  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.