O uso do Bootloader no microcontrolador depende dos requisitos de design do produto. Se o produto precisar ser atualizado online ou tiver considerações de inicialização de segurança, o uso de alguns Bootloaders de código aberto pode atender melhor às necessidades. Vamos apresentar alguns pequenos Bootloaders adequados para sistemas de microcomputadores de chip único.
WolfBoot
O WolfBoot é um pequeno bootloader de código aberto e fácil de portar, que suporta inicialização segura e fornece um mecanismo seguro de atualização de firmware. Após receber e instalar a atualização verificada, o wolfBoot fará backup da cópia da imagem do firmware antigo que funciona normalmente. Se a imagem recém-instalada não iniciar por vários motivos, o wolfBoot carregará o firmware antigo armazenado em backup que funciona normalmente para garantir que o sistema não trave.
Atualmente, o wolfBoot já foi transplantado para mais de uma dúzia de plataformas de microcomputadores de chip único, como o microcomputador de chip único da série cortex M da stm32.
OpenBLT
O OpenBLT também é um bootloader de código aberto que afirma funcionar em qualquer microcontrolador e usar qualquer tipo de interface de comunicação para realizar atualizações de software.

Seu código é dividido principalmente em três partes:
- Função Bootloader personalizável. O código nesta seção é usado para personalizar o Bootloader de acordo com as necessidades específicas do projeto. Tais como função principal, arquivo de configuração e função hook.
- Função de atualização de carregamento independente. Esta parte é o núcleo do Bootloader. Durante a atualização do software, ela lida com a transferência de dados do arquivo de firmware para a memória. A comunicação entre o host e o Bootloader segue o protocolo XCP 1.0, que é um protocolo geral de medição e calibração. Para obter detalhes, consulte o manual relevante.
- Recursos específicos da plataforma. Esta parte precisa ser modificada ao portar o Bootloader para um novo controlador de plataforma. Ela contém drivers para acessar comunicações, temporizadores e dispositivos de armazenamento.
RT-FOTA
RT-OTA é uma estrutura de bootloader de código aberto baseada em STM32. RT-OTA é um bootloader de uso geral para microcontroladores da série STM32 lançado oficialmente pela RT-Thread (de natureza comercial, o código-fonte não é divulgado), e RT-FOTA pode ser entendido como a versão popular de código aberto do projeto RT-OTA.

Principais funções do RT-FOTA:
- Suporte ao software oficial de empacotamento RBL da RTT e uso da mesma forma. Atualmente suporta funções incluindo CRC32, AES256, quicklz e fastlz;
- Suporte ao modo de linha de comando (componente FINSH) e recuperação do firmware de fábrica;
- Suporte à partição FLASH (componente FAL);
- Suporta extensão de função (componente RTT);
Bootloader da MCU
O MCUboot é um projeto Bootloader de código aberto mantido pela organização JuulLabs-OSS, que afirma permitir a fácil implementação de atualizações de segurança de aplicativos MCU (aqueles que já o utilizaram, riem sem dizer uma palavra).

O mcuboot é adequado para MCU de 32 bits, o que não tem nada a ver com a plataforma de hardware específica do MCU. Atualmente, este projeto está relativamente ativo e ainda está sendo desenvolvido e atualizado. Ele foi adaptado para os seguintes sistemas operacionais:
- Zephyr
- Apache Mynewt
- Apache NuttX
- RIOT
- Mbed OS




