3个版本
0.1.2 | 2020年6月26日 |
---|---|
0.1.1 | 2020年6月25日 |
0.1.0 | 2020年6月25日 |
916 in 嵌入式开发
6KB
84 行
Drogue Boot
此库提供(目前是一个非常基础的)用于嵌入式ARM Cortex-M系统双阶段启动的机制。
使用您喜欢的任何方法,创建一个要在默认初始启动位置烧录的嵌入式应用程序,并使用Drogue Boot启动位于(链接到)作为引导分区传递的位置的主要应用程序。
例如,使用cortex-m-rt
和基于RTT的日志记录,STM Bluepill的一个简单引导加载程序应用程序可能看起来像
如果依赖项上启用了rtt
功能,则可以使用RTTLogger
。
use drogue_boot::{
Boot,
Logger,
rtt_logger::RTTLogger,
}
#[entry]
fn entry() -> ! {
let logger = RttLogger::new();
let mut boot = Boot::new(0x08008000);
boot.with_logger(&logger);
logger.log_message("Booting MyApp now");
boot.boot();
}
引导加载程序自己的memory.x
将此应用程序放置在0x08000000
处,并从0x08008000
处启动主要应用程序。
目前不支持
基本上是所有东西。向量表尚未调整,中断也没有正确禁用。
未来特性
- 支持从辅助存储(或闪存的其它地方)升级可引导镜像
- 镜像验证(签名哈希等)。
依赖项
~140KB