ucos iii學習之時間管理

2021-08-08 22:15:16 字數 747 閱讀 4454

與時間服務相關的api總結

任務呼叫這個函式後就會被掛起直到期滿。這個函式可以有三種模式:相對延時模式,週期性延時模式,絕對定時模式。

(1)相對延時模式

任務每次執行時都會被延時大約2毫秒。當任務在時基中斷將要到來時被掛起,那麼實際的延時時基會少乙個時基。

(2)週期性延時

任務設定匹配值決定了任務被喚醒的週期。當匹配值等於ostickctr時,任務被喚醒。

與相對延時一樣,他們都可能丟失乙個時基當有高優先順序任務被執行很長時間時。

(3)絕對定時模式

設定 ostickctr 值為10 乘以時基頻率。

2.ostimedlyhmsm()

這個函式只在相對延時模式下執行。可以設定為小時,分鐘,秒,毫秒。

3.ostimedlyresume()

任務可以呼叫 ostimedlyresume() 恢復其它被 ostimedly() 或ostimedlyhmsm() 延 時 的 任 務 。

4.ostimeget()與ostimeset()

ostimeget()能獲得時基計數值。ostimeset()允許使用者設定時基計數值。

5.ostimetick()

當時基發生中斷時,時基isr必須呼叫這個函式。這個函式更新時基函式值。

驅動學習之時間管理

通常情況下,jiffies在linux系統啟動引導階段初始化為0,當系統完成了對時鐘中斷的初始化之後,在每個時鐘中斷處理例程中,該值都會被 1,因此該值儲存了系統自最近一次啟動以來的時鐘滴答數。除了時鐘中斷程式對該值有修改的權利,其它任何模組都只有讀的權利。這裡再介紹乙個概念hz,該值在核心原始碼根...

UCOSIII 中斷和時間管理

ucosiii支援中斷巢狀,高優先順序中斷可以打斷低優先順序中斷,在ucosiii中使用osintnestingctr來記錄中斷巢狀次數,最大支援250級巢狀,沒進乙個中盾巢狀osintnestingctr就加1,反之則減1 進入中斷函式 osintenter 僅進行osintnestingctr加...

linux驅動之時間管理

系統的時鐘頻率 時鐘頻率詳解和程式設計 一般系統都會有個預設的時鐘頻率hz,其實就是1秒內系統時鐘發生多少次中斷。假如 系統的hz為1000,則表示1秒內系統會產生1000次時鐘中斷 滴答數 系統核心會有個統計時鐘中斷發生的次數的計數器,該計數器從系統啟動引導被初始化為0後,只要發生一次時鐘中斷,該...