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 ]    [ Sitemap ]    [ ]

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

Latest News

Meet us at Embedded World. Hall 3A-525.

Hear from Richard Barry at Embedded World. Feb 28, 16:00, Hall 4-428.

Video: Watch James Gosling & Richard Barry at re:Invent, Las Vegas 2017.

FreeRTOS kernel V10.0.1 is available for immediate download. Now MIT licensed.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

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