[2017-09-20 08:48:37] m-s писал(а): Это не OC в обычном понимании, скорее hal и планировщик.
Я знаком с ней Это вроде неплохой HAL и не очень хороший планировщик. Однако: во-первых, ОЧЕНЬ много системных вызовов делается с запрещенными прерываниями - я же запрещаю прерывания не дольше чем на пару команд. Во-вторых, нет POSIX-совместимости а работа с ФС делается через ту же самую FatFS от ChaN. И в третих, простая вытесняющая многозадачность без приоритетов по round-robin, что никак не годится в данном случае. Конечно, я последний раз ее юзал в 13 году и многое могло поменяться, но впечатление убогости осталось.
Для полетного контроллера, где все выделение памяти делается при инициализации (не нужен сложный распределитель памяти), устройства раз и навсегда закреплены за драйверами (не нужны сложные механизмы синхронизации) и сливают данные в общий "котел" AHRS (не нужны сложные мутексы и прочее), лучше вообще обойтись без ненужных сущностей в виде ОС, шелла и прочего, и сохранить возможность понимать что, как и когда происходит.
Именно поэтому я и считаю что 3 слоя оптимальны - прерывания для получения данных, основной цикл для их обработки и все остальное, работающее когда другим нечего делать. Все что требуется - это не ожидать ничего в прерывании, что сейчас и удалось добиться.
UPD. Глянул я в тот порт... лучше промолчу.