PRAY
Axius
Axius-SHIMMER
Embedded-операционка для esp8266 и esp32 с поддержкой дисплея SSD1306
Доступно на GitHub
Описание
Основной функционал
Ядро, ну или же Embedded OS, созданое в результате фрагментации 3 версии Шиммера на 2 части. Изначально не подразумевалось, что оно будет использоваться в других проектах.
В целом оно представляет из себя ультралегкое ядро для микроконтроллеров, ориентированное на управление дисплеями SSD1306 с текстовым интерфейсом и обработку базовой периферии. Ядро берет на себя низкоуровневые операции, предоставляя упрощенный "API".
Главная задача Axius: дать максимальный функционал при наименьшем использовании RAM
Архитектура памяти
Полноценная файловая система еще в разработке. Вместо нее реализована статическая система хранения параметров с жестким выделением памяти на этапе прошивки.
Поддерживаемые типы данных: булевы значения, 8-битные целые числа, числа с плавающей точкой и статические массивы фиксированного размера. Динамическое выделение памяти не предусмотрено — все переменные существуют в рамках заранее определенных структур.
Управление процессами
Ядро исполняет только одно активное приложение в каждый момент времени. Фоновая обработка возможна через привязку к глобальному циклу tick(). Мультизадачность отсутствует принципиально.
Работа с дисплеем
Реализован примитивный текстовый вывод с жесткими ограничениями:
  1. Максимальное количество строк: 7
  2. Отсутствие обработки переполнения текста
  3. Базовый интерфейс строится исключительно на списках (выбор пунктов вложенными меню)
Ну а впринципе то нихуя больше физически вывести на дисплей размером 128x64 не получится.
Управление устройствами ввода
Поддерживается работа с тремя физическими кнопками или одним энкодером. Ядро самостоятельно обрабатывает их состояние, предоставляя упрощенные события (нажатие, поворот).
Обработка периферии
Включена базовая поддержка:
  1. Низкоуровневая обработка WiFi фреймов
  2. Датчиков (гироскоп, термоментр, вольтметр)
  3. Панель задач с динамическими