2个不稳定版本
0.2.0 | 2022年3月11日 |
---|---|
0.1.0 | 2022年1月20日 |
#52 in #hardware-abstraction-layer
120KB
2.5K SLoC
包含(静态库,1KB)startup-code/libstartup.a
欢迎PR!
lpc546xx-hal
LPC546xx系列的外设抽象层crate。
此crate依赖于lpc546xx-pac crate提供适当的寄存器定义,并实现了一组嵌入式-hal traits。
用法
将lpc546xx-hal
crate添加到Cargo.toml中的依赖项,并确保选择适当的mcu-*
功能以使用您的MCU的完整功能集。
例如,对于配备LPC54608J512ET180的LPCXpresso54608板
lpc546xx-hal = { version = "0.1.0", features = ["mcu-LPC54608J512ET180", "rt"] }
这将根据您的RAM和闪存选择合适的memory.x链接器脚本,从外设访问crate中选择正确的功能集,以及为您的设备选择正确的中断向量。
如果您查看Cargo.toml
文件,您将看到支持的设备。
如果您想运行示例,可以使用以下命令运行
$ cargo run --example gpio --features=mcu-LPC54608J512ET180,rt
此HAL还将包含一个在启动代码中名为__pre_init
的存根,当启用"rt"功能时由cortex-m-rt调用。在这个存根中,所有的RAM都被打开。您可以通过使用disable-linker-script
功能来禁用此功能。但是您应该自己这样做,否则您的程序将无法启动,因为cortex-m-rt
将尝试初始化未启用的内存区域。
工具链设置
为了使用此HAL,您需要以下设置
-
安装Rustup
有关详细信息,请参阅rustup.rs。您也可能能够直接通过您的发行版安装Rustup。
-
安装
arm-none-eabi
编译器工具链https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
如果您无法通过操作系统/发行版直接安装工具链,我们建议将预编译的二进制文件安装到'/usr/local/opt'。将bin文件夹(/bin和/arm-none-eabi/bin)添加到您的环境变量'PATH'中。
-
为Rust安装
thumbv7em-none-eabi/hf
目标只需运行
rustup target add thumbv7em-none-eabi
或rustup target add thumbv7em-none-eabihf
有关如何使用Rust进行ARM/Cortex-M编程的更多说明,请参阅嵌入式Rust书籍。
构建示例
您可以通过Cargo构建示例
$ cargo build --example gpio --features="mcu-LPC54608J512ET180,rt"
请注意,并非所有示例都与所有MCU兼容。您可能需要查看示例源代码。
许可证
0-Clause BSD许可证,有关更多详细信息,请参阅LICENSE-0BSD.txt
依赖关系
~60MB
~1.5M SLoC