標(biāo)題: 有關(guān)uCos-II中關(guān)中斷處理的疑問 [打印本頁]

作者: rmgc606    時間: 2017-11-1 11:28
標(biāo)題: 有關(guān)uCos-II中關(guān)中斷處理的疑問
大家好,新人首貼,歡迎大家批評指正。

最近在拜讀《嵌入式實時操作系統(tǒng)uCOS-II(第二版)》時,3.7節(jié)Idle Task中有如下描述:“空閑任務(wù)執(zhí)行計數(shù)器加1操作,中斷是先關(guān)閉再開啟的!闭f是因為防止加1操作被高優(yōu)先級任務(wù)或中斷服務(wù)程序打斷,我忽然想到:如果中斷被關(guān)閉期間,此時恰好來了一個外部IO中斷請求,這個中斷請求會使得某一個高優(yōu)先級任務(wù)進入就緒態(tài),會不會因為中斷被關(guān)閉而丟失掉這次請求。雖然說先關(guān)閉再開啟中斷這個過程時間比較短,但理論上是不是還是存在這種可能的?如果是,如何有效避免?歡迎大家一起討論

作者: yzwzfyz    時間: 2017-11-2 14:02
中斷源動作后會做一個標(biāo)記,這個標(biāo)記并不因為中斷關(guān)閉而消失。
CPU會不斷地檢查中斷標(biāo)記,如果被關(guān)閉則不響應(yīng)。一旦打開,則按優(yōu)先順序中斷。

所以回答是:
不會丟,再開放后,會中斷。

作者: rmgc606    時間: 2017-11-3 11:43
yzwzfyz 發(fā)表于 2017-11-2 14:02
中斷源動作后會做一個標(biāo)記,這個標(biāo)記并不因為中斷關(guān)閉而消失。
CPU會不斷地檢查中斷標(biāo)記,如果被關(guān)閉則不 ...

如果是這樣,我就明白了,謝謝!
那同理,如果在關(guān)中斷期間,觸發(fā)了多個中斷,實際上也是多個中斷標(biāo)志被置位,只是因為關(guān)中斷的原因,此時不能跳轉(zhuǎn)到中斷處理函數(shù)進行處理,當(dāng)再次開中斷后,會按照中斷優(yōu)先級進行逐一跳轉(zhuǎn)處理,應(yīng)該是這樣吧?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1