2016-11-19 36 views
1

我聽說過FreeRTOS中的延遲中斷,但根據我的理解,ISR爲了完成必要工作而切換的任務在任務/進程上下文中運行。是否有類似於tasklets或softirq的方案,其中延遲工作在Interrupt上下文中運行而不是在進程上下文中運行?FreeFTOS上的底部減半?

+0

聞起來像[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你想要達到什麼目的? – LPs

+0

@LPs正在閱讀不同的操作系統如何處理中斷。在FreeRTOS和Linux中發現延遲中斷體系結構的差異,如果有任何特殊原因,我們很好奇 – RohitMat

+0

注意:在像ARM COrtex-M3-7這樣的大型MCU上,處理優先級通常會更好。延遲中斷處理程序爲中斷函數本身增加了大量開銷,但是對系統的其他部分更重要。 – Olaf

回答

0

ISR例程和延期中斷Handler任務在Free RTOS中的工作方式類似於Linux中的上半部分和下半部分(Tasklets)。 當ISR需要執行冗長的操作時,它們通常用於處理頻繁的中斷請求。 在freeRTOS中,要將函數的處理推遲到RTOS守護進程任務,請使用vPendableFunction或xTimerPendFunctionCallFromISR()。這與在linux中實現下半部分(Tasklets)類似。欲瞭解更多信息請點擊here