3 threads: A @ priority 3, B @2, C @1, one interrupt D, system tick is 1ms
All threads takes only a small fraction of time to run most time.
A ran for a fraction of ms and wait for the semaphore to be given by D, so the next thread will run
B ran for a fraction of ms and use vTaskDelay(1) to allow the next thread to run
C ran for a fraction of ms and called vTaskDelay(1)
At this point, 1ms hasn’t passed yet, so will the system enter some idle state until the next tick? If so, is there a way to wake up a specific thread? For example, wake up B and it runs until the next tick, which will be A’s turn again.
(Still no system tick) If D gives the semaphore, will A resume immediately? If so, when the next system tick occurs, I assume A continue since it has the highest priority
Thanks for your time!