Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


Percentage use of the CPU

Posted by alainm3 on July 20, 2014

Is there a reference implementation of an indicator of CPU used/free time in % ?

Motivation:I had a test thread without any call to vTaskDelay() by mistake, because of that all lower priority task were never executed. It could prove a valuable debug tool to check is the Idle task is executing as much as is expected.

Alternative: I could maybe set a bit while entering the Idle task and reseting it on exit, how would I do that?

Percentage use of the CPU

Posted by rtel on July 20, 2014

I think there are several things you can do.

1) Add in an idle hook function that keeps a cycle count for how many times the idle task loops around, then have a high priority 'watchdog task' (referred to as a 'check' task in all the official demos) that monitors how the cycle counters of each task to ensure they are cycling as expected.

2) Use the run-time-stats feature, which is generic up to the point of the time source which is necessarily application specific (not just port specific).

3) Use the traceTASKSWITCHEDIN() or traceTASKSWITCHEDOUT trace macros to count how many times the idle task gets switched in/out. You can use xTaskGetIdleTaskHandle() to find the handle of the idle task.

4) Use FreeRTOS+Trace to visualise exactly how your application is running.

Regards, Richard Barry.

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

Version 10.1.0 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner