31 августа вышла очередная мажорная версия BuguRTOS 2.0.0.
BuguRTOS — встраиваемая ОСРВ, ориентированная на применение в программах микроконтроллеров, которая может работать в режимах мягкого и жесткого реального времени.
Основные особенности BuguRTOS:
- отказ от управления памятью в ядре;
- пониженные требования к размерам стеков процессов;
- полностью вытесняемое ядро (код ядра выполняется в отдельном потоке и может быть вытеснен обработчиком прерываний практически в любой момент, за исключением небольших участков);
- виртуализация прерываний (виртуальные прерывания в BuguRTOS, - это аналог файберов в Zephyr Project);
- настраиваемый интерфейс системных вызовов (пользователь может легко отключить ненужные системные вызовы, добавить свои или полностью переписать всю таблицу системных вызовов);
- отсутствие в коде ядра привычных примитивов синхронизации типа семафоров и мьютексов, вместо них есть базовый примитив, на основе которого можно реализовать широкий спектр блокирующих примитивов синхронизации.
В новой версии приозошли следующие изменения:
- переработан диспетчер системных вызовов (использован паттерн X-macro);
- переработан API ядра (функции заменены на макросы, для передачи нескольких аргументов теперь используется переменное число параметров, что в сочетании с новым диспетчером системных прерываний позволило добиться гибкости настроек таблицы системных вызовов);
- обновлена библиотека native API и руковоство по началу работы с BuguRTOS;
- благодаря Филиппу Клаусу Краузе (разработчику SDCC) добавлен порт STM8/SDCC, в тестах используется свободная библиотека libstm8;
- код проекта проверен статическим анализатором adlint;
- исправлено две ошибки.
Фактически BuguRTOS 2.0.x представляет собой платформу для прототипирования ОСРВ, которую можно использовать для обучения низкоуровневому системному программированию.
Планируется расширение функциональности BuguRTOS за счет реализации новых библиотек API, а также перенос на новые архитектуры.
>>> Подробности