#bootloader #cortex-m

nightly drogue-boot

Cortex-M引导加载程序工具包

3个版本

0.1.2 2020年6月26日
0.1.1 2020年6月25日
0.1.0 2020年6月25日

916 in 嵌入式开发

Apache-2.0

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