This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL2-RM57L: FreeRTOS Port optimized scheduler

Part Number: LAUNCHXL2-RM57L
Other Parts Discussed in Thread: HALCOGEN

Trying to use FreeRTOS on Launchpad RM57.

Configured for 5 priorities.  Using event groups in tasks with events set from ISR and calling port yield from ISR to trigger the tasks to run.

A priority 0 task or priority 4 task will run if it is triggered, but not a priority 3 task.

It looks like TI attempted to optimize the FreeRTOS scheduler in the port.  Instead of a while loop that searches by priority for any task that is ready to run, it does a bit mask and counts the leading zeroes to find the highest priority task to run.  This code does not seem to work correctly.  If I have a priority 3 task that is ready to run, it does not find it if the priority 4 task is not ready to run or even if there is no priority 4 task.  I use portYield from ISR to try to trigger the task to run, and even that does not work.  It just never runs the priority 3 task if that is the highest ready to run.

It keeps looping call idle task, checking for tasks to delete and checking for tasks to run, but this counting leading zeros code never finds the priority 3 task to run.