Несколько загрузчиков с открытым исходным кодом, подходящих для микроконтроллеров

Использование загрузчика в микроконтроллере зависит от требований к конструкции продукта. Если продукт требует онлайн-обновления или имеет требования к безопасности загрузки, то использование некоторых загрузчиков с открытым исходным кодом может лучше удовлетворить эти потребности. Представляем несколько небольших загрузчиков, подходящих для одночиповых микрокомпьютерных систем.

WolfBoot

wolfBoot
wolfBoot (Источник изображения: Github)

WolfBoot — это небольшой загрузчик с открытым исходным кодом, который легко переносить, поддерживает безопасную загрузку и обеспечивает безопасный механизм обновления прошивки. После получения и установки проверенного обновления wolfBoot создает резервную копию образа старой прошивки, которая может работать нормально. Если вновь установленный образ по разным причинам не запускается, wolfBoot загрузит резервную копию старой прошивки, которая может работать нормально, чтобы система не вышла из строя.

В настоящее время wolfBoot перенес более десятка однокристальных микрокомпьютерных платформ, таких как однокристальные микрокомпьютеры серии cortex M от stm32.

OpenBLT

OpenBLT — это также загрузчик с открытым исходным кодом, который, как утверждается, может работать на любом микроконтроллере и использовать любой тип интерфейса связи для выполнения обновлений программного обеспечения.

fetch.php?w=900&tok=b1cce5&media=manual:openblt architecture
Загрузчик OpenBLT (Изображение предоставлено: Feaser)

Его код в основном делится на три части:

  1. Настраиваемая функция Bootloader. Код в этом разделе используется для настройки Bootloader в соответствии с конкретными потребностями проекта. Например, основная функция, файл конфигурации и функция hook.
  2. Функция независимой загрузки обновлений. Эта часть является ядром загрузчика. Во время обновления программного обеспечения она обрабатывает передачу данных из файла прошивки в память. Связь между хостом и загрузчиком осуществляется по протоколу XCP 1.0, который является общим протоколом измерения и калибровки. Подробности см. в соответствующем руководстве.
  3. Особенности платформы. Эта часть должна быть изменена при переносе Bootloader на новый контроллер платформы. Она содержит драйверы для доступа к средствам связи, таймерам и устройствам хранения.

RT-FOTA

RT-OTA — это открытая платформа для загрузчика, основанная на STM32. RT-OTA — это универсальный загрузчик для микроконтроллеров серии STM32, официально выпущенный RT-Thread (коммерческий продукт, исходный код не раскрывается), а RT-FOTA можно рассматривать как народную открытую версию проекта RT-OTA.

poweron
Загрузчик RT-FOTA (Изображение: Github)

Основные функции RT-FOTA:

  • Поддержка официального программного обеспечения RBL от RTT и использование его таким же образом. В настоящее время поддерживаются такие функции, как CRC32, AES256, quicklz и fastlz;
  • Поддержка режима командной строки (компонент FINSH) и восстановления заводской прошивки;
  • Поддержка раздела FLASH (компонент FAL);
  • Поддержка расширения функций (компонент RTT);

Загрузчик микроконтроллера

MCUboot — это проект с открытым исходным кодом по созданию загрузчика, поддерживаемый организацией JuulLabs-OSS, который, как утверждается, позволяет легко реализовывать обновления безопасности приложений MCU (те, кто его использовал, смеются, не говоря ни слова).

MCUboot Bootloader
MCUboot Bootloader

mcuboot подходит для 32-разрядных микроконтроллеров, что не имеет ничего общего с конкретной аппаратной платформой микроконтроллера. В настоящее время этот проект является относительно активным и продолжает развиваться и обновляться. Он был адаптирован для следующих операционных систем:

  • Zephyr
  • Apache Mynewt
  • Apache NuttX
  • RIOT
  • Mbed OS

Поделиться:

Прокрутить вверх

Instant Quote