Hi Community
We implemented a system monitor task in our SysBios 6 system. This task monitors and prints the load and stack usage level of all registered task. All our SysBios tasks are created dynamically and register them-self at the system monitor. The system monitor task runs every X seconds through the list of registered tasks and determines the task load and stack usage level of every task by calling Load_getTaskLoad and Task_stat.
The system monitor task is a SysBios task running with the lowest priority of all our tasks, except the idle task, which means prio 1. The number of tasks that are be monitored is about 30. Some days after the implementation we realized, that there are audio gaps in the audio output of our system. By the using the execution graph function of the TI system analyzer we narrowed down the problem to our system monitor task. What we can see, is that it seems our system monitor task is blocking all other high prio tasks as long as it isn't finished. Furthermore it looks like that even HWI ISRs aren't running, although there must be HWIs. At this point we stuck. Therefore we scan through the SysBios 6 CDOC of our SysBios 6.32.05.54.
In the CDOC we found the following hint for Task_stat:
"Task_stat has a non-deterministic execution time. As such, it is not recommended to call this API from Swis or Hwis." What does the term "non-deterministic execution time" mean in this context. What is determining the execution time for a Task_stat?
Is there anything to be aware of, when calling Load_getTaskLoad and Task_stat that often in a row? Will these calls disable HWI, SWI or task scheduling?
Cheers
Jo + Colleagues