I have a question regarding FreeRTOS software timers.
- I know that all software timer callback functions execute in the context of the same RTOS daemon (or ‘timer service’) task.
- I know that this “timer task” has a priority and that it enters the blocked and ready state based on whether it recieved a command in the queue or not.
- I know that the the time at which the software timer being started will expire is calculated from the time the ‘start a timer’ command was sent to the timer command queue—and not from the time the daemon task received the ‘start a timer’ command from the timer command queue.
- HOWEVER when the timer expires, the “timer task” transits to the ready state to run the callback function. What if its in the ready state but higher priority tasks are currently running. Does this mean that the callback function will not execute unless the daemon is in the running state?
If so, then the callback does not necessary run when the timer expires? (because the dameon cannot run). Is this true?