I encountered an issue with FreeRTOS version 10.0.1. We have totally 9 tasks including the timer task and idle task. Idle task set at priority 0, timer task and 5 other tasks are at 1, the other 2 tasks at level 2. The 7 tasks are mainly timer driven, e.g. every 100ms or 200ms, etc. using the software timer.
The issue is that sometimes when the Q of the timer task is full, all other tasks are blocked (as the Q is full), and the timer task and idle task are on the ready list, so they are ready, but the timer task looks like does not get a chance to run and keep stalling there.
We tried to set the timer task priority to 2 and the issue disappeared, but I do not understand why setting timer task priority 1 will stall all tasks including timer task. Logically when all other tasks are stalled, timer task should get a chance to run. Does anyone knows the cause behind that?