1
votes

I have heard about deferred interrupts in FreeRTOS, but as per my understanding, the task to which the ISR switches in order to do the necessary work runs in the task/process context. Is there a scheme similar such as tasklets or softirq where in the deferred work runs in Interrupt context rather than process context ?

1
Smells like XY problem. What are you trying to achive?LPs
@LPs Was reading through how different OS handle Interrupts. Found the difference on deferred interrupt architecture in FreeRTOS as well as Linux, was curious if this had any particular reasonRohitMat
Note: On larget MCUs like ARM COrtex-M3-7, it is often better to work with priorities. deferred interrupt handlers add a significant overhead to the interrupt function itself, but more to the rest of the system.too honest for this site

1 Answers

1
votes

ISR routine and deferred interrupt Handler task in Free RTOS works similar to Top half and Bottom half(Tasklets) in linux. They are often used to process frequent interrupt requests when ISR need to perform lengthy operations. In freeRTOS, to defer the processing of a function to the RTOS daemon task use vPendableFunction or xTimerPendFunctionCallFromISR(). This is similar to implementing bottom half(Tasklets) in linux. For more info click here