1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年8月25日 |
---|
#122 在 #board
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_DIR
为target/[board_name]
(待办事项:这会导致编译的共享crate重复) -
将
LD_FLASH_SIZE
和LD_RAM_SIZE
作为环境变量暴露给cargo,以便在构建脚本中使用
(待办事项:使其通用而不是硬编码的属性?) -
暴露
BOARD_FEATURES
,这样我们就可以暴露以下功能
(使用rustc暴露,因此仅在代码中可用,不在cargo-configuration中)- 的
soc_[soc_name]
功能,您可以使用#[cfg(feature="soc_[soc_name]")]
- 的
依赖关系
~0.5–1MB
~25K SLoC