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。
如果您发现这种方法有任何问题,或有更好的建议,请告诉我们!