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?
Real Time Engineers ltd.
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 traceTASK_SWITCHED_IN() or traceTASK_SWITCHED_OUT 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.