Продолжаю бороться с RTOS
Очередная задача - реализация часов/календаря. Разработчик uCOS в своей книге "Building System Blocks" предлагает 2 подхода:
1. Задержка процесса на 1 с - плохо в нагруженной системе
2. Внедрение счетчика+семафора в прерывание системного таймера.
Мне не хочется модифицировать ядро системы, как того требует 2-й вариант. Поэтому возникли еще две идеи:
3. Использование программного таймера + семафор в callback функции.
4. Использование отдельного аппаратного таймера и прерывания от него.
Насколько я понимаю, вариант 3 практически не отличается от варианта 2, ведь программные таймеры тоже обрабатываются
в системном прерывании. Но тогда непонятно, почему этот вариант не представлен автором. Может я чего-то упускаю?
А вообще, хотелось бы разработать универсальный модуль, способный работать как без оси, так и с оной (наподобие того, как это сделано в стеке lwIP).