Overview
The software component Event Recorder provides API (function calls) for event annotations in the application code or software component libraries. These API functions record event timing and data information while the program is executing.
The Event Filter which is controlled from the target application or the debugger allows to specify the event ids that are stored in the event buffer that is located in the memory of the target system. This event buffer may be continuously read by the debug unit and displayed in the Event Recorder window of the debugger.
During program execution, the debugger reads the content of the event buffer using a standard debug unit that is connected via JTAG or SWD to the CoreSight Debug Access Port (DAP). The Event Recorder requires no trace hardware and can be therefore used on any Cortex-M processor.

- Theory of operation explains in details how the Event Recorder collects event data, generates time stamps, and transfers this information via a debug unit to a host computer.
- Using Event Recorder provides instructions on how to enable Event Recorder in a project.
Benefits of the Event Recorder:
- Visibility to the dynamic execution of an application at little (memory) cost.
- Adding RTOS awareness to a development tool does not require complex DLL programming.
- For Arm Cortex-M3/M4/M7/M33/M55/M85 processor based devices, Event Recorder functions will not disable interrupts.
- Adding printf re-targeting for devices without ITM, such as Arm Cortex-M0/M0+/M23.
- Fast time-deterministic execution of event recorder functions with minimal code and timing overhead.
- No need for a debug or release build as the event annotations can remain in production code.
- Saving the event data in local memory ensures fast recording.
- Collecting the data from the on-chip memory is done using simple read commands. These commands work on all Cortex-M processor based devices and require only JTAG or SWD connectivity to the debug adapter.
- Using the DWT Cycle Count register for creating time stamps reduces code overhead (available on Arm Cortex-M3/M4/M7/M33/M55/M85).