Whether the Bootloader is used in the microcontroller depends on the design requirements of the product. If the product needs to be upgraded online or has security boot considerations, then using some open source Bootloaders may be able to better meet the needs. Let us introduce some small Bootloaders suitable for single-chip microcomputer systems.
WolfBoot is an open source, easy-to-port small bootloader, which supports secure boot and provides a secure firmware update mechanism. After receiving and installing the verified update, wolfBoot will back up the image copy of the old firmware that can work normally. If the newly installed image fails to start for various reasons, wolfBoot will load the backed up old firmware that can work normally to ensure that the system Won’t brick.
At present, wolfBoot has transplanted more than a dozen single-chip microcomputer platforms, such as the cortex M series single-chip microcomputer of stm32.
OpenBLT is also an open source bootloader that claims to run on any microcontroller and use any type of communication interface to perform software updates.
Its code is mainly divided into three parts:
- Customizable Bootloader function. The code in this section is used to customize the Bootloader to the specific needs of the project. Such as main function, configuration file and hook function.
- Independent loading update function. This part is the core of the Bootloader. During the update of the software, it handles the data transfer from the firmware file to the memory. The communication between the host and the Bootloader follows the XCP 1.0 protocol, which is a general measurement and calibration protocol. For details, please refer to the relevant manual .
- Platform-specific features. This part needs to be modified when porting the Bootloader to a new platform controller. It contains drivers for accessing communications, timers, and storage devices.
RT-OTA is an open source Bootloader framework based on STM32. RT-OTA is a general-purpose bootloader for STM32 series microcontrollers officially launched by RT-Thread (commercial nature, source code is not disclosed), and RT-FOTA can be understood as the folk open source version of the RT-OTA project.
RT-FOTA main functions:
- Support RTT’s official RBL packaging software, and use it in the same way. Currently supports functions including CRC32, AES256, quicklz and fastlz;
- Support command line mode (FINSH component) and factory firmware recovery;
- Support FLASH partition (FAL component);
- Support function extension (RTT component);
MCUboot is an open source Bootloader project maintained by the JuulLabs-OSS organization, which claims to allow you to easily implement MCU application security upgrades (those who have used it, laugh without saying a word)
mcuboot is suitable for 32-bit MCU, which has nothing to do with the specific MCU hardware platform. At present, this project is relatively active and is still being developed and updated. It has been adapted to the following operating systems:
- Apache Mynewt
- Apache NuttX
- Mbed OS