Проект OpenC6 BIOS добавляет ПК-подобную прошивку для микроконтроллера ESP32-C6 с поддержкой сетевой загрузки и OTA-обновлений

OpenC6 BIOS — это проект с открытым исходным кодом от Rompass, который предлагает иной подход к разработке микроконтроллеров. Он добавляет BIOS-подобную систему в ESP32-C6, благодаря чему системная часть и код приложения могут выполняться раздельно, а не объединяться в единый образ прошивки.

При традиционной разработке настройка оборудования, сетевое взаимодействие и код приложения объединяются в единый образ прошивки. Но OpenC6 BIOS работает иначе: он выполняется как базовая система на ESP32-C6 и обрабатывает инициализацию оборудования и системные функции. Вместо прошивки полного приложения каждый раз, он может загружать небольшие программы-нагрузки отдельно. Эти программы могут выполняться из RAM или flash (XIP) и использовать системные функции через простой интерфейс двоичного кода приложения (ABI), без необходимости в полной прошивке. В некотором смысле он работает как AkiraOS , но с BIOS-подобным интерфейсом.

OpenC6 BIOS for ESP32 C6

Ключевые особенности архитектуры 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 для последовательного загрузчика)
Retro Web Setup Utility (1280x1024 5:4 Native Look)
Ретро-утилита веб-настройки (родной вид 1280×1024 5:4)

BIOS запускается первым после загрузки и выполняет инициализацию оборудования. Затем он предоставляет услуги через определенный ABI, так что скомпилированные программы-нагрузки могут быть загружены в последовательный загрузчик UART, загружены по сети через HTTP-сервер или выполнены непосредственно из flash (XIP) без использования полного ESP-IDF.

Это похоже на старый BIOS ПК, который предоставлял базовые функции перед запуском ОС, но здесь он используется для запуска небольших встраиваемых программ вместо полноценной операционной системы.

ESP32-C6 Zero development board
Плата разработки ESP32-C6 Zero

Проект разработан для стандартных плат 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.

Оригинал статьи вы можете прочитать здесь.

5 2 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments