Hello,
i’m trying to port FreeRTOS on a new architecture (PPC).
Till now I haven’t had any problem: in general it seems the OS works.
Unfortunately, trying to optimize the port I’ve discovered that probably something goes wrong. Adding ISRs the system crash. Playing with taskYield priority it seems that the system goes better.
My question (dummy of course) is: taking into account that tick irq task (the scheduler) has the lowest priority, what should be the priority assigned to taskYield? Maybe equal to configMAX_SYSCALL_INTERRUPT_PRIORITY?
There are lots of different ways of implementing yields from tasks and yields from interrupts - so without knowing how your port is doing it (or the constraints the hardware places on how you can create a port) I cannot say for sure. As a general rule however the yield will be the lowest priority in the system, not the highest. You only want a yield to occur when nothing else is touching the kernel data structures - so you don’t want it preempting any other kernel code.
Hello,
i’m trying to port FreeRTOS on a new architecture (PPC).
Till now I haven’t had any problem: in general it seems the OS works.
Unfortunately, trying to optimize the port I’ve discovered that probably something goes wrong. Adding ISRs the system crash. Playing with taskYield priority it seems that the system goes better.
My question (dummy of course) is: taking into account that tick irq task (the scheduler) has the lowest priority, what should be the priority assigned to taskYield? Maybe equal to configMAX_SYSCALL_INTERRUPT_PRIORITY?