#board #cargo-subcommand #cargo #arm

无std app cargo-board

Cargo子命令,用于管理嵌入式板

1个不稳定版本

使用旧的Rust 2015

0.1.0 2017年8月25日

#122#board

MIT/Apache

6KB
60

cargo-board

Cargo子命令,用于管理嵌入式板

演示

板子的配置在boards.toml中指定,例如

[soc]
STM32F2XXXB = { arch = "thumbv7m-none-eabi", flash = "128K", ram = "64K" }
STM32F2XXXE = { arch = "thumbv7m-none-eabi", flash = "512K", ram = "128K" }

[board]
flexperiment_mini = { soc = "STM32F2XXXB" }
netboard = { soc = "STM32F2XXXE" }

用法

cargoboard[board_name] <CARGO参数>

例如 cargo board netboard build --p blink

它做什么

  • 启用编译crate的board_[board_name]功能(将--feature board_[board_name]传递给cargo)

  • --target [soc.arch]传递给cargo

  • 设置CARGO_TARGET_DIRtarget/[board_name]
    (待办事项:这会导致编译的共享crate重复)

  • LD_FLASH_SIZELD_RAM_SIZE作为环境变量暴露给cargo,以便在构建脚本中使用
    (待办事项:使其通用而不是硬编码的属性?)

  • 暴露BOARD_FEATURES,这样我们就可以暴露以下功能
    (使用rustc暴露,因此仅在代码中可用,不在cargo-configuration中)

    • soc_[soc_name]功能,您可以使用#[cfg(feature="soc_[soc_name]")]

    这需要放在您的build.rs中.

依赖关系

~0.5–1MB
~25K SLoC