Hardware: TI tiva-c TM4C123GXL LaunchPad (MCU: tm4c123gh6pm)
FreeRTOS Version: 10.2.0
IDE: keil mdk 5.26.2
I have totally 6 tasks:
task1: blinky LED and fetch the state of task2 using eTaskGetState function
task2: wait for a Semaphore/Notify (with Highest priority)
task3-6: only do vTaskDelay and nothing else
In the interrupt handler function of URAT, a Semaphore/Notify is given.
When running this project, at first, everything is OK. After a while, the state of task2 is turned into eReady, and is keeping on this state.
At the same time:
- All the other tasks are running correctly.
- No overflow happens on taks2’s stack.
- The UART interrupt handler function correctly gives out Sema/Notify.
Why the task with the highest priority keeps in eReady state while all the other tasks are scheduling normally?