Se il Bootloader venga utilizzato nel microcontrollore dipende dai requisiti di progettazione del prodotto. Se il prodotto deve essere aggiornato online o ha considerazioni sulla sicurezza dell’avvio, allora l’utilizzo di alcuni Bootloader open source potrebbe soddisfare meglio le esigenze. Presentiamo alcuni piccoli Bootloader adatti ai sistemi microcontrollore a chip singolo.
WolfBoot
WolfBoot è un bootloader piccolo, facile da portare e open source, che supporta l’avvio sicuro e fornisce un meccanismo di aggiornamento del firmware sicuro. Dopo aver ricevuto e installato l’aggiornamento verificato, wolfBoot eseguirà il backup della copia dell’immagine del vecchio firmware che può funzionare normalmente. Se la nuova immagine installata non riesce ad avviarsi per vari motivi, wolfBoot caricherà il vecchio firmware con backup che può funzionare normalmente per garantire che il sistema non si blocchi.
Attualmente, wolfBoot ha eseguito il porting su più di una dozzina di piattaforme di microcontrollori a chip singolo, come il microcontrollore della serie cortex M di stm32.
OpenBLT
OpenBLT è anche un bootloader open source che afferma di funzionare su qualsiasi microcontrollore e utilizzare qualsiasi tipo di interfaccia di comunicazione per eseguire gli aggiornamenti software.

Il suo codice è principalmente diviso in tre parti:
- Funzione Bootloader personalizzabile. Il codice in questa sezione viene utilizzato per personalizzare il Bootloader in base alle esigenze specifiche del progetto. Come funzione principale, file di configurazione e funzione hook.
- Funzione di aggiornamento del caricamento indipendente. Questa parte è il nucleo del Bootloader. Durante l’aggiornamento del software, gestisce il trasferimento dei dati dal file del firmware alla memoria. La comunicazione tra l’host e il Bootloader segue il protocollo XCP 1.0, che è un protocollo di misurazione e calibrazione generale. Per i dettagli, fare riferimento al manuale pertinente.
- Funzionalità specifiche della piattaforma. Questa parte deve essere modificata quando si esegue il porting del Bootloader su un nuovo controller di piattaforma. Contiene driver per l’accesso a comunicazioni, timer e dispositivi di archiviazione.
RT-FOTA
RT-OTA è un framework Bootloader open source basato su STM32. RT-OTA è un bootloader di uso generale per i microcontrollori della serie STM32 lanciato ufficialmente da RT-Thread (natura commerciale, il codice sorgente non è divulgato) e RT-FOTA può essere inteso come la versione open source popolare del progetto RT-OTA.

Funzioni principali di RT-FOTA:
- Supporta il software di confezionamento RBL ufficiale di RTT e lo utilizza nello stesso modo. Attualmente supporta funzioni tra cui CRC32, AES256, quicklz e fastlz;
- Supporta la modalità riga di comando (componente FINSH) e il ripristino del firmware di fabbrica;
- Supporta la partizione FLASH (componente FAL);
- Supporta l’estensione della funzione (componente RTT);
MCUboot
MCUboot è un progetto Bootloader open source mantenuto dall’organizzazione JuulLabs-OSS, che afferma di consentire di implementare facilmente gli aggiornamenti di sicurezza delle applicazioni MCU (chi lo ha usato, ride senza dire una parola)

mcuboot è adatto per MCU a 32 bit, che non ha nulla a che fare con la piattaforma hardware MCU specifica. Attualmente, questo progetto è relativamente attivo ed è ancora in fase di sviluppo e aggiornamento. È stato adattato ai seguenti sistemi operativi:
- Zephyr
- Apache Mynewt
- Apache NuttX
- RIOT
- Mbed OS




