我有一個任務,基本上是一個定時器;所以它進入睡眠狀態,應該週期性地喚醒。所以計時器任務睡了10毫秒。但是現在發生的情況是,它在醒來時不一致,不能依靠正確地喚醒。Linux RTOS睡眠() - 喚醒()定時任務
事實上,在我的跑步中,睡眠時間有很大差異。有時覺醒時可能會有1-2毫秒的變化,並且很少有時間不會再回來。這是因爲內核調度程序將所有睡眠和等待任務放入一個隊列中,然後在輪詢查看誰將被喚醒時,我認爲這是循環法。所以有時候任務會在調度器再次輪詢時失效。有時,當有中斷時,ISR獲得控制權並延遲計時器醒來。
處理這類問題的最佳解決方案是什麼?
(附加細節:任務是用於無線網絡的MAC定時器; RTOS是U velOSity微內核)
RTOS在哪裏出現這個問題?你在最後提到了u-velosity,但它似乎完全不相關的問題在哪裏沒有提及。 – Clifford