世界杯欧洲区预选赛_世界杯足球几年一次 - chinaacecloud.com



几款适用单片机的Bootloader

关注+星标公众号,不错过精彩内容作者 | strongerHuang

微信公众号 | 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支持UART、SPI、I2C等常见的通信。源码其实挺简单,定义了一些常见的读写、页大小等。Tiny Bootloader软件框架如下:// MACRO DEFINITIONS HEREchar 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 库。------------ END ------------●专栏《嵌入式工具》●专栏《嵌入式开发》●专栏《Keil教程》●嵌入式专栏精选教程关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。点击“阅读原文”查看更多分享。