5个版本 (3个重大更新)
0.3.0 | 2024年8月5日 |
---|---|
0.2.0 | 2024年1月11日 |
0.1.1 | 2022年11月25日 |
0.1.0 | 2022年2月11日 |
0.0.0 | 2022年2月9日 |
#1495 in 嵌入式开发
每月678次下载
用于 3 crate
345KB
7.5K SLoC
embassy-boot
一个 Embassy 项目。
一种轻量级的引导加载程序,支持以电力故障安全的方式更新固件,具有试验引导和回滚功能。
引导加载程序可以作为库使用,也可以通过从链接脚本派生的默认配置直接烧录。
按照设计,引导加载程序不提供任何网络功能。可以通过用户应用程序提供获取新固件的网络功能,使用引导加载程序作为库更新固件,或者作为库使用并添加此功能。
概述
引导加载程序将存储空间划分为4个主要分区,这些分区在创建引导加载程序实例时或在链接脚本中可配置
- BOOTLOADER - 引导加载程序放置的位置。引导加载程序本身大约消耗8KB的闪存,但如果您需要调试它并且有空间,增加到24KB将允许您使用probe-rs运行引导加载程序。
- ACTIVE - 主应用程序放置的位置。引导加载程序将尝试在此分区的开始处加载应用程序。此分区所需的最小大小是您的应用程序大小。
- DFU - 要交换的应用程序放置的位置。此分区由应用程序写入。此分区必须比ACTIVE分区至少大1页。
- BOOTLOADER STATE - 引导加载程序存储当前状态的位置,描述是否需要交换活动和DFU分区。
对于任何分区,以下条件是必需的
- 分区必须对齐到页大小。
- 分区必须是页大小的倍数。
应用程序和引导加载程序的链接脚本看起来很相似,但引导加载程序的FLASH区域必须指向引导加载程序分区,应用程序的ACTIVE分区。
有关引导加载程序的更多详细信息,请参阅文档。
硬件支持
引导加载程序支持在不同crate中的不同硬件
embassy-boot-nrf
- 用于nRF微控制器。embassy-boot-rp
- 用于RP2040微控制器。embassy-boot-stm32
- 用于STM32微控制器。
依赖项
~1.5–2.8MB
~56K SLoC