我有一个任务,基本上是一个定时器;所以它进入睡眠状态,应该周期性地唤醒。所以计时器任务睡了10毫秒。但是现在发生的情况是,它在醒来时不一致,不能依靠正确地唤醒。Linux RTOS睡眠() - 唤醒()定时任务
事实上,在我的跑步中,睡眠时间有很大差异。有时觉醒时可能会有1-2毫秒的变化,并且很少有时间不会再回来。这是因为内核调度程序将所有睡眠和等待任务放入一个队列中,然后在轮询查看谁将被唤醒时,我认为这是循环法。所以有时候任务会在调度器再次轮询时失效。有时,当有中断时,ISR获得控制权并延迟计时器醒来。
处理这类问题的最佳解决方案是什么?
(附加细节:任务是用于无线网络的MAC定时器; RTOS是U velOSity微内核)
RTOS在哪里出现这个问题?你在最后提到了u-velosity,但它似乎完全不相关的问题在哪里没有提及。 – Clifford