#imxrt1062 #svd2rust #arm #cortex-m

no-std imxrt1062-pac

针对iMXRT1062系列处理器的外围访问Crate(PAC)。此Crate不再维护。请考虑使用由imxrt-rs项目提供的寄存器访问层。曾是teensy4-rs项目的一部分。

2个不稳定版本

0.2.1 2020年3月22日
0.1.0 2019年12月31日

#63 in #imxrt1062


用于 imxrt1062-hal

MIT/Apache

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 抱怨缺少 testbench crate。

如果您发现这种方法有任何问题,或有更好的建议,请告诉我们!

依赖项