CONFIG_ZERO_LATENCY_IRQS and kernel services

Hello !

I can use ZERO latency IRQ with both methods of define interrupts :

IRQ_DIRECT_CONNECT(TIMER2_IRQn, CONFIG_TIMER_IRQ_PRIORITY,
timer2_isr_wrapper,
IS_ENABLED(CONFIG_ZERO_LATENCY_IRQS) ?
IRQ_ZERO_LATENCY : 0);
 
or 
IRQ_CONNECT(TIMER2_IRQn, CONFIG_TIMER_IRQ_PRIORITY, TIMER2_IRQHandler, NULL,
IS_ENABLED(CONFIG_ZERO_LATENCY_IRQS) ? IRQ_ZERO_LATENCY : 0);
And it is mentioned that not all services can be used in ISR :
"
Since Zero-latency ISRs will run in the same priority or possibly at higher priority than the rest of the kernel they cannot use any kernel functionality.
"

What services they talking about ?

Can I use k_sem_give() for example ?

I can see all ZERO latency interrupts have priority 0.

I have try to define CONFIG_ZERO_LATENCY_LEVELS=2 or 3 but there some compilation errors.


Regards,
Eugene



Related