Task Priorities Limitations


I remember a year ago when I developed for a Renesas RA-series MCU, I read about a limitation with task priorities and the MCU ISR Priorities.
I read this limitation on the forums/docs

It was causing interrupts not to jump.
Sadly, I cannot find the exact limitation and its documentation.

It was something along the lines of Peripheral-ISR(UART, SPI, TIMER, ETC…) priorities must be lower priority than something in FreeRTOS’s priorities? cant remember exactly.

If someone can direct me to this limitation I will be very grateful.
Thank you!

Don’t mix up (logical) FreeRTOS task priorities and HW specific interrupt priorities. These are different and independent things.
However, when using FreeRTOS calls in ISRs (the API tagged with FromISR) some constraints come into play due to so called critical sections in the FreeRTOS code and also in application code.
Critical sections are implemented in FreeRTOS by disabling interrupts.
For CPUs like Cortex-M3/4 etc. supporting interrupt priorities only the relevant part of the interrupt priorities are disabled allowing to use interrupts/ISRs at higher priority but without any FreeRTOS API call. These interrupts are never disabled and the corresponding ISRs would provide even harder real-time behavior. In other words there is no jitter invoking the ISR on interrupt caused by (very short) critical sections. Except there are some more of those interrupts with even higher interrupt priority, of course.
Hope it helps a bit :slight_smile:

Since Renesas RA family also have a Cortex-M CPU see this related documentation:

and this very good forum posts:

1 Like