μC/OS-Ⅲ作業系統中斷管理的直接釋出與延遲釋出
阿新 • • 發佈:2018-12-17
直接釋出和延遲釋出也是為了解決臨界區程式碼的問題。所以先行解釋一下臨界區程式碼。 臨界區程式碼是指必須連續執行的一段程式碼,不能被中斷或者任務來打斷。譬如
//臨界區程式碼開始
.......
switch(globalvalue)
case 1://do something
case 2:
case 3:
.......
.......
//臨界區程式碼結束
globalvalue是定義的一個全域性變數,如果打斷了臨界區程式碼,在中斷或者其他任務修改了globalvalue的值,那麼再次回到這個switch判斷時,結果就不正確了。這時就需要對這段程式碼進行保護。
1.如果在中斷或者任務中都有可能訪問臨界區程式碼,則採用關中斷的方式。也即直接釋出