關於UCOSIII 系統函式和系統排程
阿新 • • 發佈:2019-01-27
對於UCOSIII系統,稍微做一下講解。
中斷管理。 UCOSIII中 ,中斷主要是向CPU 通知一個非同步事件發生了,這是 CPU 就會將當前CPU儲存器值入棧,然後執行中斷服務程式,在CPU執行中斷服務程式 的時候,有可能 觸發優先順序高的任務,這時當推出中斷的時候,就會去執行優先順序高的任務。 中斷巢狀。 UCOSIII中支援中斷巢狀,優先順序高的可以打斷優先順序低的中斷,在UCOSIII中使用OSIntNestingCtr來記錄中斷巢狀次數,進一次,該值加1,退出一次中斷,該值減1。 中斷服務程式的編寫。- XXX中斷源的函式名。
- 首先呼叫OSIntEnter() 函式標記 進入中斷服務,記錄中斷巢狀次數。
- 中間為編寫程式碼
- 退出中斷,OSIntExit()
- 任務 提交服務函式Post,傳送訊號量給其他任務,排程在Post結束時發生。
- 任務呼叫OSTimeDly()或OSTimeDlyHMSM(),如果引數不為0,排程會被放入掛起佇列然後執行。
- 當任務等待時間超時,當Pend() 呼叫的時候,該事件會被移除等待佇列。
- 通過呼叫OSSchedUnlock排程器被解鎖