I have a porting of FreeRTOS on Cortex-R52 and I have some doubts about the right priority assigned to the interrupts.
In my applications, typically all the ISR, registered by the peripherals, have a priority greater then the configMAX_API_CALL_INTERRUPT_PRIORITY.
I understand, these ISR never be delayed by anything the kernel is doing, can nest, but cannot use any safe API.
Note that the priority is directly used for programming the GIC registers.
Actually, these ISR (for all my IP) will never call “FromISR” functions in my applications but…
Q1) is there any example of a driver that needs to call safe API inside own ISR?
Q2) For ARM, the higher numeric interrupt priority values indicates the lower logical interrupt priorities. I have not clear if the meaning configMAX_API_CALL_INTERRUPT_PRIORITY remains the same. I mean, this is still the logic:
Q3) the System Timer should have the lowest priority as reported in the port.c. In my FreeRTOS, the configMAX_API_CALL_INTERRUPT_PRIORITY = 8, then peripheral registers the handler with prio > 8, but the FreeRTOS_Tick_Handler has 4. Is it correct?
Many thanks in advance.