RTOS環境中的中斷程式應該注意的問題

2021-08-26 02:41:52 字數 445 閱讀 2981

1.  中斷程式決不能獲取訊號量,讀取可能會空的佇列或者信箱,等待事件等,如果某個中斷程式呼叫了rtos函式,並被阻塞,那麼除了該中斷程式之外,被中斷的任務也會被阻塞。即使該任務有最高的優先順序也是如此。

2.中斷程式不能對有任務等待的佇列或者信箱執行寫操作,不能設定事件,釋放訊號量等,如果某個中斷程式破壞了這個規則。作業系統會把控制從該中斷程式切換掉,而去執行另外乙個任務,這樣這個中斷程式就會長時間得不到完成,從而阻塞了所有的低先級甚至是全部的中斷。

3 如果你的系統允許中斷巢狀,以及更高優先順序的中斷可以中斷較低優先順序的中斷,那麼就要另外考慮。如果更高優先順序的中斷程式呼叫了任何的rtos函式,那麼低優先順序的中斷程式,必須讓作業系統知道該低優先順序的中斷程式是何時發生的?否則最高優先順序的中斷程式結束以後,作業系統排程程式可能會去執行其他任務,而不是讓低優先順序的中斷程式繼續完成,很顯然,在所有的中斷程式完成之前,不應該讓作業系統排程程式執行。

UCOS環境下的中斷程式

bsp intvectset bsp int id usart1,rfid rxtxisrhandler 設定中斷號 與中斷函式 名稱相匹配。bsp inten bsp int id usart1 使能 中斷號的中斷 rfid rxinten 開啟接收中斷 以下 先說說,幾個關鍵函式 bsp int...

2中斷的硬體環境

講到中斷的硬體環境,我們先從著名的irq訊號談起。每個能夠發出中斷請求的硬體裝置控制器都有一條名為irq的輸出線。所有現有的irq線都與乙個名為可程式設計中斷控制器 pic 的硬體電路的輸入引腳相連,可程式設計中斷控制器執行下列動作 1 監視irq線,檢查產生的訊號。如果有條或兩條以上的irq線上產...

python可變元素list在程式中的注意事項

在python程式中,列表list的存貯方式與int的存貯方式是不同的,換句話說,python中可變型別的儲存方式與不可變型別的儲存方式是不同的。例如,對於單一的元素,有如下操作時 a 1b a b 5 print a,b print id a id b 列印兩個變數的位址輸出 1 5 140731...