适合单片机的几款开源Bootloader

控制/MCU

1822人已加入

描述

如果日常工作中经常使用linux,那么对U-Boot,LILO,GRUB等常用Bootloader一定不陌生。但是这些Bootloader主要用于引导linux启动,不太适合单片机产品。

有读者可能会问,为何单片机中也要Bootloader?其实单片机中并不一定要用bootloader,用不用Bootloader取决于产品的设计需求。如果产品需要在线升级或是有安全启动方面的考虑,那么使用一些开源的Bootloader也许能够更好地满足需求。

下面就让我们来介绍一些适用于单片机系统的小型Bootloader。

wolfBoot

wolfBoot是一款开源的,易移植的小型bootloader,它支持安全启动,提供安全的固件更新机制。收到并安装经过验证的更新后,wolfBoot会备份可以正常工作的老固件的镜像副本,如果新安装的镜像因为种种原因无法启动,wolfBoot会加载所备份的,可以正常工作的老固件,确保系统不会变砖。

目前wolfBoot已经移植了十几款单片机平台,比如stm32的cortex M系列的单片机。

openBLT

Linux系统

OpenBLT也是一种开源Bootloader,声称可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新(^^)。

它的代码主要分为三大部分:

1 可定制的Bootloader功能。这部分中的代码用于根据项目的特定需求定制Bootloader。比如main函数,配置文件和钩子函数。

2 独立加载更新功能。这部分是Bootloader的核心,在更新软件期间,处理固件文件到存储器的数据传输,主机和Bootloader之间的通信遵循XCP 1.0版协议,这是一种通用的测量和校准协议,具体可查阅相关手册。

3 平台相关特性。将Bootloader移植到新的平台控制器时,需要修改这部分内容。它包含访问通信、计时器和存储设备的驱动程序。

RT-FOTA

Linux系统

Linux系统

RT-OTA是基于STM32的开源Bootloader框架。RT-OTA 是 RT-Thread 官方推出的 STM32 系列单片机的通用 bootloader(商用性质,不公开源码),而 RT-FOTA 可以理解为是 RT-OTA 项目的民间开源版。

RT-FOTA 主要的功能:

  • 支持RTT官方的RBL打包软件,使用方式也一致。目前支持包括CRC32、AES256、quicklz 和 fastlz 功能;
  • 支持命令行模式(FINSH 组件)和出厂固件恢复;
  • 支持 FLASH 分区(FAL 组件);
  • 支持功能扩展(RTT 组件);

感兴趣的读者可以访问:https://gitee.com/spunky_973/rt-fota

mcuboot

Linux系统

mcuboot 是由 JuulLabs-OSS 组织维护的开源 Bootloader 项目,它声称可以让你轻松实现 MCU 应用程序安全升级(用过的人,笑而不语^^)

mcuboot 适用于 32-bit MCU,其跟具体 MCU 硬件平台无关,目前这个项目比较活跃,还在不断开发与更新中,已经适配如下操作系统:

  • Zephyr
  • Apache Mynewt
  • Apache NuttX
  • RIOT
  • Mbed OS
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分