Да, документирование нужно, но оно вечно отстает от основной разработки
Тут у меня есть идея, что для более удобного написание драйверов
нам нужно добавить шедулер с переключением контекста, чтобы каждая задача работала как бесконечный цикл.
Объясняю для чего это нужно:
сейчас главный цикл выполняется один, весь прописан в serialgate.
и только во время вызова того или иного регистра выполняется код драйвера.
Но есть драйверы, которым требуется работать и остальное время.
Например драйверу пушки нужно отслеживать положение затвора, но пушка устройство медленное,
мы не можем на такое время останавливать шину (порядка 20-25 сек.)
Можно было-бы вынести такой код в таймер, но возникает проблема как использовать несколько драйверов
с одним таймером? Кроме того на долго запрещать прерывания тоже не айс.
Разрешать прерывание в прерывании конечно можно, но это оправдано когда программист может просчитать
выполнение кода и для системы. Для нашего случая это очень плохо, ведь мы позиционируем систему для
использования и изменения пользователями, поэтому лучше использовать простое ядро.
Кстати в лего тоже сделаны задачи.
Так что порекомендуйте ядро простой оськи, желательно как можно легче и быстрей.