I’m trying to port FreeRTOS to the Cypress PSoC architecture and I’m having some problems with the scheduler.
For now I’ve just tested cooperative scheduling with one task plus the idle task (both have the idle priority.)
When the main task yields using portYield() or vTaskDelay(0), the scheduler alternates between the two tasks correctly. However, when the main task blocks itself using vTaskDelay(x), the scheduler never gives back the processor to the main task.
I checked that the idle task calls portYield() and the tick is incremented by the timer ISR so I don’t understand why the main task is never woken.
Any help is appreciated.