AM64x MCU+ SDK  09.02.01
FreeRTOS Interrupt Profiling Example

Introduction

This example demonstrates profiling of interrupts. Two tasks are created, three interrupts of different priority levels are configured. The interrupts are triggered to cause nesting & the behaviour of interrupts is verified against a reference. If the behaviour of interrupts is as expected, the total ISR load and CPU load is displayed and the example is marked as passed.

Note
Make sure "#define INTR_PROF" is present in "/source/drivers/hw_include/am64x_am243x/soc_config.h", to enable capturing of interrupt trace. Else the displayed LOAD values will be 0.

Supported Combinations

Parameter Value
CPU + OS r5fss0-0 freertos
Toolchain ti-arm-clang
Board am64x-evm, am64x-sk
Example folder examples/kernel/freertos/interrupt_profiling

Steps to Run the Example

  • When the INTR_PROF macro is modified, the library needs to be re-built. This can be done only using makefiles. (see Using SDK with Makefiles).
  • When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
  • When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)
  • Launch a CCS debug session and run the executable, see CCS Launch, Load and Run

See Also

FreeRTOS

Sample Output

Shown below is a sample output when the application is run,

[FreeRTOS] profiling ... start !!!
[FreeRTOS] profiling ... done !!!
[FreeRTOS] profiling ... completed !!!
LOAD: ISR = 0. 0 %
LOAD: CPU = 0.60 %
LOAD: ping = 0.27 %
LOAD: pong = 0.10 %
All tests have passed!!