控制/MCU
如果日常工作中经常使用linux,那么对U-Boot,LILO,GRUB等常用Bootloader一定不陌生。但是这些Bootloader主要用于引导linux启动,不太适合单片机产品。
有读者可能会问,为何单片机中也要Bootloader?其实单片机中并不一定要用bootloader,用不用Bootloader取决于产品的设计需求。如果产品需要在线升级或是有安全启动方面的考虑,那么使用一些开源的Bootloader也许能够更好地满足需求。
下面就让我们来介绍一些适用于单片机系统的小型Bootloader。
wolfBoot
wolfBoot是一款开源的,易移植的小型bootloader,它支持安全启动,提供安全的固件更新机制。收到并安装经过验证的更新后,wolfBoot会备份可以正常工作的老固件的镜像副本,如果新安装的镜像因为种种原因无法启动,wolfBoot会加载所备份的,可以正常工作的老固件,确保系统不会变砖。
目前wolfBoot已经移植了十几款单片机平台,比如stm32的cortex M系列的单片机。
openBLT
OpenBLT也是一种开源Bootloader,声称可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新(^^)。
它的代码主要分为三大部分:
1 可定制的Bootloader功能。这部分中的代码用于根据项目的特定需求定制Bootloader。比如main函数,配置文件和钩子函数。
2 独立加载更新功能。这部分是Bootloader的核心,在更新软件期间,处理固件文件到存储器的数据传输,主机和Bootloader之间的通信遵循XCP 1.0版协议,这是一种通用的测量和校准协议,具体可查阅相关手册。
3 平台相关特性。将Bootloader移植到新的平台控制器时,需要修改这部分内容。它包含访问通信、计时器和存储设备的驱动程序。
RT-FOTA
RT-OTA是基于STM32的开源Bootloader框架。RT-OTA 是 RT-Thread 官方推出的 STM32 系列单片机的通用 bootloader(商用性质,不公开源码),而 RT-FOTA 可以理解为是 RT-OTA 项目的民间开源版。
RT-FOTA 主要的功能:
感兴趣的读者可以访问:https://gitee.com/spunky_973/rt-fota
mcuboot
mcuboot 是由 JuulLabs-OSS 组织维护的开源 Bootloader 项目,它声称可以让你轻松实现 MCU 应用程序安全升级(用过的人,笑而不语^^)
mcuboot 适用于 32-bit MCU,其跟具体 MCU 硬件平台无关,目前这个项目比较活跃,还在不断开发与更新中,已经适配如下操作系统:
全部0条评论
快来发表一下你的评论吧 !