• 正文
    • MCUboot
    • OpenBLT
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

幾款適用單片機(jī)的Bootloader

03/10 09:40
1211
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

微信公眾號 | strongerHuang

隨著物聯(lián)網(wǎng)的發(fā)展,加上MCU外設(shè)/功能越來越豐富、存儲資源也越來越多,在線更新MCU固件成了很多嵌入式產(chǎn)品的重要功能。

今天分享幾款適用于MCU的Bootloader,看看你們用過哪些?

MCUboot

MCUboot顧名思義,針對MCU的boot,它是一款適用于 32 位微控制器的安全引導(dǎo)加載程序(軟件框架)。而且,這款MCUboot開源、并遵循Apache License 2.0開源協(xié)議。

開源地址:https://github.com/mcu-tools/mcuboot


MCUBoot是一個開源的、跨平臺的Bootloader,支持多種ARM Cortex-M系列單片機(jī)。MCUboot?提供了安全的固件更新機(jī)制,支持加密和簽名驗證,適用于物聯(lián)網(wǎng)設(shè)備。它不依賴于任何特定的操作系統(tǒng)和硬件,主要跟芯片的Flash結(jié)構(gòu)密切相關(guān)。

MCUboot主要特點:完全開源多種升級模式對固件安全校驗可異常恢復(fù)

官方網(wǎng)站:http://www.trustedfirmware.org/

官方提供了許多文檔資料,我之前也給大家分享了MCUboot的幾種模式,感興趣的同學(xué)可以點擊進(jìn)去看下。

OpenBLT

OpenBLT 是是一款適用于常見 8 位、16 位、32 位等眾多單片機(jī)的Bootloaderr。

默認(rèn)情況下,它支持RS232、CAN、USB、TCP/IP、Modbus RTU等單片機(jī)常見通信協(xié)議。并附帶易于使用的 MicroBoot PC 工具,用于啟動和監(jiān)控固件更新。同時,還支持直接從 SD 卡執(zhí)行固件更新。

開源地址:https://github.com/feaser/openblt

或https://sourceforge.net/projects/openblt/

OpenBLT特點:

開源免費,提供完整源代碼

包括用戶友好的 PC 下載實用程序

易于移植到不同的微控制器

ROM 占用空間小

高度可配置

有序且文檔齊全的代碼

支持從本地連接的存儲(如 SD 卡)進(jìn)行軟件更新

可擴(kuò)展以支持額外的存儲器,例如串行 EEPROM 或外部Flash

支持常見的通信接口,如 RS232、CAN、TCP/IP、USB 和 Modbus RTU

可與 STM32、XMC4、XCM1、Tricore、HCS12 和其他基于 ARM Cortex 的微控制器配合使用

OpenBLT 遵循?GNU GPL V3 開源協(xié)議。

官方給了一個OpenBLT的介紹視頻,大家可以觀看下:

?Tiny BootloaderTiny Bootloader顧名思義,它是一款微小(輕量級)的Bootloader,適合于8位(AVR)、32位單片機(jī)等資源有限的單片機(jī),只需要2KB ROM即可。

開源地址:https://github.com/jaz303/tiny_bootloader

Tiny Bootloader支持UART、SPI、I2C等常見的通信。源碼其實挺簡單,定義了一些常見的讀寫、頁大小等。

Tiny Bootloader軟件框架如下:

// MACRO DEFINITIONS HERE
char?bootloader_requested()?{??// check if bootloader has been requested (e.g. button press, GPIO low, etc)??return?0;}
void?bootloader_init()?{??// get ready to enter bootloader; enable comms channel etc.}
#include?"tiny_bootloader.h"#define?TINY_BOOTLOADER_IMPL#include?"tiny_bootloader.h"
int?main()?{??if?(bootloader_requested()) {? ??bootloader_init();? ??bootloader_run();?// defined in tiny_bootloader.h? }?else?{? ??asm("JMP 0");?// jump to main program? }??while?(1);}

wolfBootwolfBoot 是一款開源的、輕量級的安全Bootloader,它是完全獨立的應(yīng)用程序,適用于32位MCU操作系統(tǒng)或裸機(jī)項目。

開源地址:https://github.com/wolfSSL/wolfBoot

該bootloader由以下組件組成:

wolfCrypt,用于驗證鏡像的簽名

一個極簡的硬件抽象層,為支持的目標(biāo)提供了實現(xiàn),該目標(biāo)負(fù)責(zé)特定 MCU 上的 IAP 閃存訪問和時鐘設(shè)置

核心引導(dǎo)加載程序

應(yīng)用程序用于與引導(dǎo)加載程序 src/libwolfboot.c 交互的小型應(yīng)用程序庫

這款程序也是號稱安全的Bootloader,沒有動態(tài)內(nèi)存分配機(jī)制,也沒有鏈接到除 wolfCrypt 之外的任何標(biāo)準(zhǔn) C 庫。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級嵌入式軟件工程師,業(yè)余維護(hù)公眾號『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。