2个不稳定版本
0.2.1 | 2020年3月22日 |
---|---|
0.1.0 | 2019年12月31日 |
#63 in #imxrt1062
31MB
895K SLoC
iMXRT1062 外围访问Crate
最高级的外围访问Crate(PAC),imxrt1062-pac
,导出所有处理器外围Crate。这些Crate中的代码使用svd2rust
自动生成,然后通过一些半自动化的工具(可在顶级tools
目录中找到)迁移到这个文件结构。
如果您想为iMXRT106x构建自己的硬件抽象层,请考虑将imxrt1062-pac
作为依赖项。如果您想创建一个非常专业的HAL,请考虑选择感兴趣的外设作为依赖项。
与该目录中的大多数Crate不同,imxrt1062-core
Crate不表示外围设备。相反,它定义了中断表、中断名称和中断号。如果您正在构建自己的HAL,您可能希望此Crate自动配置中断表。
README的其余部分描述了如何将新的iMXRT1062外围设备添加到PAC中。本指南的受众是希望修补现有PAC Crate的SVD文件中更改的嵌入式Rust开发者。
需求
请参阅仓库svd
目录中的README.md
以生成默认的iMXRT1062 PAC。
添加外围Crate
为了简化示例,让我们将ADC外围设备(在svd2rust
输出中指定为adc1
)添加到我们的PAC中。假设我们位于此仓库的根目录,请使用位于tools/main.rs
的可用二进制文件将外围模块复制到其自己的Crate中。
$ cd tools
$ cargo run --target x86_64-apple-darwin -- ../svd/imxrt1062 adc1
在上面的示例代码片段中,请确保为主机系统设置了 --target
标志。指定 --target
可能是必要的,因为代码仓库工作区已配置为 thumbv7em-none-eabihf
。考虑在 tools/.cargo/config
中添加一个 Cargo 配置文件以省略此目标指定符。第一个参数,../svd/imxrt1062
,是来自 svd2rust
的有效输出。第二个参数,adc1
,是我们感兴趣要导入的模块。该工具接受多个模块,这可能对于批量添加外设库很有用。
运行成功后,应生成一个名为 imxrt1062-pac/imxrt1062-adc1
的新 crate,所有源代码都位于 src
中。在 Cargo.toml
中应有所有必需的依赖项。
[dependencies]
vcell = "0.1.2"
[lib]
bench = false
test = false
该工具还可能指定 crate 中没有测试和基准测试。这是为了防止 RLS 抱怨缺少 test
或 bench
crate。
如果您发现这种方法有任何问题,或有更好的建议,请告诉我们!