ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
3 мая
1406544 Топик полностью
Adept (22.02.2024 19:51, просмотров: 163) ответил RxTx на Что-то я не понимаю, наверное туповат еще в деле планировшиков/RTOS. Но дело в том что у процессора сколько времени есть, столько есть. Больше не станет. Какая разница, нарезаешь ты слайсы времени (типа прерывания) аппаратно по 1ms или по 10ms или ты нарезаешь софтварно. Ничего не изменится. Развет что если 1ms таймер и 10ms чуть "расстроены" по микро-нансоекундам друг от друга и поэтому они могут вытеснять друг друга. Но если в реальности 10ms дубасит строго синхронно с
дело в том, что в хэндлере 1mS таймера я не могу делать практически ничего, кроме выставления семафоров, управления набором софтовых таймеров (которые совершенно не обязаны отрабатывать синхронно, с минимальным джиттером, и даже могут и не отработать в цикле системного клока 1mS, а пропустить его), и выполнения нескольких очень компактных реалтайм драйверов ядра. На 10mS же таймер навешана всякая дрянь вроде драйверов клавиатуры, индикации, системных часиков, ах да, 

ещё диспетчер очередей, и интерпретатор командного потока. В общем то, что не требует жёсткого реалтайма, но и не может быть отложено надолго.

Потому, вызов условно, из майн-цикла, по семафорам, когда можно нечаянно "зависнуть" в какой-то процедуре надолго - не годится, нужна привязка к аппаратным прерываниям. Тут и годится как раз 10mS таймер. В Больших системах это привязывается к короткому системному тику (доли микросекунд, запросто) и костыль в виде отдельного медленного таймера, как бы и не зачем, но в моём случае, т.к. это работает на "детских" камушках вроде всяких "тань с мегами", приходится искать разумные компромиссы и жертвовать для этого одним таймером (точнее у меня это висит на переполнении, а 1mS на том же таймере, но на канале сравнения). Всё равно таймер заюзан под системный клок, чего уж ему пропадать, пусть аппаратно молотят "оба".

Ну как-то так, в общем.

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)