OpenC6 BIOS — это проект с открытым исходным кодом от Rompass, который предлагает иной подход к разработке микроконтроллеров. Он добавляет BIOS-подобную систему в ESP32-C6, благодаря чему системная часть и код приложения могут выполняться раздельно, а не объединяться в единый образ прошивки.
При традиционной разработке настройка оборудования, сетевое взаимодействие и код приложения объединяются в единый образ прошивки. Но OpenC6 BIOS работает иначе: он выполняется как базовая система на ESP32-C6 и обрабатывает инициализацию оборудования и системные функции. Вместо прошивки полного приложения каждый раз, он может загружать небольшие программы-нагрузки отдельно. Эти программы могут выполняться из RAM или flash (XIP) и использовать системные функции через простой интерфейс двоичного кода приложения (ABI), без необходимости в полной прошивке. В некотором смысле он работает как AkiraOS , но с BIOS-подобным интерфейсом.
Ключевые особенности архитектуры OpenC6 BIOS:
- Динамическое масштабирование тактовой частоты ЦП – регулирует частоту ЦП в зависимости от нагрузки, используя время простоя FreeRTOS (80, 120 и 160 МГц)
- Модульная архитектура прошивки – настройка оборудования обрабатывается BIOS, а приложения компилируются как небольшие независимые программы-нагрузки (2–10 КБ)
- Интерфейс системных вызовов (ABI) – программы-нагрузки могут получать доступ к Wi-Fi, математическим и криптографическим функциям, предоставляемым BIOS, без привязки к полному ESP-IDF
- Движок управления LP-Core – использует маломощное ядро RISC-V ESP32-C6 для мониторинга состояния системы, сторожевых таймеров и событий питания независимо от основного приложения
- Сетевая загрузка (подобно PXE) – программы-нагрузки могут быть загружены через Wi-Fi и выполнены без прошивки через USB
- A/B OTA-обновления – обновления прошивки включают поддержку отката для предотвращения выхода устройства из строя
- Веб-интерфейс настройки – локальная точка доступа Wi-Fi (BIOS_SETUP_C6) размещает страницу конфигурации на основе браузера (192.168.4.1), похожую на утилиту настройки BIOS ПК с синим экраном 1280×1024
- Aura Sync RGB – поддерживает Aura Sync RGB Flow и диагностические коды POST
- Разное
- Кнопка питания – GPIO 4 (короткое нажатие: загрузка; удержание 3 с: настройка; удержание 5 с: жесткая перезагрузка)
- Кнопка BOOT – GPIO 9 (стандартный вывод BOOT. Удерживайте во время запуска для меню загрузки)
- POST LED – GPIO 8 (адресуемый RGB для диагностики и Aura Sync)
- Clear CMOS – GPIO 2 (короткое замыкание при загрузке для сброса NVRAM к заводским настройкам)
- Payload RX / TX – GPIO 18 / GPIO 19 (выделенный UART для последовательного загрузчика)

BIOS запускается первым после загрузки и выполняет инициализацию оборудования. Затем он предоставляет услуги через определенный ABI, так что скомпилированные программы-нагрузки могут быть загружены в последовательный загрузчик UART, загружены по сети через HTTP-сервер или выполнены непосредственно из flash (XIP) без использования полного ESP-IDF.
Это похоже на старый BIOS ПК, который предоставлял базовые функции перед запуском ОС, но здесь он используется для запуска небольших встраиваемых программ вместо полноценной операционной системы.
Проект разработан для стандартных плат ESP32-C6 с объемом Flash не менее 8 МБ. Плата ESP32-C6 Zero использовалась для разработки и тестирования, но проект OpenC6 BIOS также должен работать с такими платами, как Olimex ESP32-C6-DevKit-Lipo , WeAct ESP32-C6 (8 МБ), Arduino Nesso N1 и другими. Для каждой платы могут потребоваться модификации, поскольку прошивка назначает выводы GPIO для управления питанием и сбросом, RGB-светодиод для индикации состояния, UART для загрузки программ-нагрузок и конфигурационные выводы, аналогичные выводам сброса CMOS.
Для начала вам нужно установить ESP-IDF (версию для разработки) и собрать прошивку BIOS. Программы-нагрузки компилируются отдельно с помощью предоставленных инструментов, доступных в каталоге tools. Сетевая загрузка поддерживается путем запуска простого локального HTTP-сервера и указания устройству URL-адреса программы-нагрузки через веб-интерфейс настройки.
OpenC6 BIOS имеет открытый исходный код под лицензией MIT. Код, документация и инструкции по сборке программ-нагрузок доступны на GitHub . Разработчик также ищет участников для работы над пользовательским zRAM и легковесной файловой системой для RISC-V.
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.


