• 正文
  • 相关推荐
申请入驻 产业图谱

几款适用单片机的Bootloader

03/10 09:40
6184
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

微信公众号 | strongerHuang

随着物联网的发展,加上MCU外设/功能越来越丰富、存储资源也越来越多,在线更新MCU固件成了很多嵌入式产品的重要功能。

今天分享几款适用于MCU的Bootloader,看看你们用过哪些?

MCUboot

MCUboot顾名思义,针对MCU的boot,它是一款适用于 32 位微控制器的安全引导加载程序(软件框架)。而且,这款MCUboot开源、并遵循Apache License 2.0开源协议。

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


MCUBoot是一个开源的、跨平台的Bootloader,支持多种ARM Cortex-M系列单片机。MCUboot?提供了安全的固件更新机制,支持加密和签名验证,适用于物联网设备。它不依赖于任何特定的操作系统和硬件,主要跟芯片的Flash结构密切相关。

MCUboot主要特点:完全开源多种升级模式对固件安全校验可异常恢复

官方网站:http://www.trustedfirmware.org/

官方提供了许多文档资料,我之前也给大家分享了MCUboot的几种模式,感兴趣的同学可以点击进去看下。

OpenBLT

OpenBLT 是是一款适用于常见 8 位、16 位、32 位等众多单片机的Bootloaderr。

默认情况下,它支持RS232、CAN、USB、TCP/IP、Modbus RTU等单片机常见通信协议。并附带易于使用的 MicroBoot PC 工具,用于启动和监控固件更新。同时,还支持直接从 SD 卡执行固件更新。

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

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

OpenBLT特点:

开源免费,提供完整源代码

包括用户友好的 PC 下载实用程序

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

ROM 占用空间小

高度可配置

有序且文档齐全的代码

支持从本地连接的存储(如 SD 卡)进行软件更新

可扩展以支持额外的存储器,例如串行 EEPROM 或外部Flash

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

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

OpenBLT 遵循?GNU GPL V3 开源协议。

官方给了一个OpenBLT的介绍视频,大家可以观看下:

?Tiny BootloaderTiny Bootloader顾名思义,它是一款微小(轻量级)的Bootloader,适合于8位(AVR)、32位单片机等资源有限的单片机,只需要2KB ROM即可。

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

Tiny Bootloader支持UARTSPII2C等常见的通信。源码其实挺简单,定义了一些常见的读写、页大小等。

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,它是完全独立的应用程序,适用于32位MCU操作系统或裸机项目。

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

该bootloader由以下组件组成:

wolfCrypt,用于验证镜像的签名

一个极简的硬件抽象层,为支持的目标提供了实现,该目标负责特定 MCU 上的 IAP 闪存访问和时钟设置

核心引导加载程序

应用程序用于与引导加载程序 src/libwolfboot.c 交互的小型应用程序库

这款程序也是号称安全的Bootloader,没有动态内存分配机制,也没有链接到除 wolfCrypt 之外的任何标准 C 库。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录

作者黄工,从事嵌入式软件开发工作8年有余,高级嵌入式软件工程师,业余维护公众号『strongerHuang』,分享嵌入式软硬件、单片机、物联网等内容。