У меня есть задача, которая в основном ТАЙМЕР;поэтому он засыпает и должен периодически просыпаться .. Так что задание таймера спит, скажем, 10 мс.Но что происходит, так это то, что он непоследователен при пробуждении, и на него нельзя полагаться, чтобы он проснулся вовремя правильно.
На самом деле, в моих пробежках есть большая разница во времени сна.Иногда оно может изменяться на 1-2 мс при пробуждении и совсем не возвращаться вообще.Это связано с тем, что планировщик ядра помещает все спящие и ожидающие задачи в очередь, а затем, когда он опрашивает, чтобы узнать, кого нужно разбудить, я думаю, что это циклический перебор.Поэтому иногда задание истекает к тому времени, когда планировщик снова опрашивает.Иногда, когда есть прерывания, ISR получает контроль и задерживает таймер от пробуждения.
Как лучше всего решить эту проблему?
(Дополнительные сведения: Задача - это таймер MAC для беспроводной сети; RTOS - это микроядро u-velOSity)