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 |
Boards | am243x-evm, am243x-lp |
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!!