2个不稳定版本

0.2.0 2022年3月11日
0.1.0 2022年1月20日

#52 in #hardware-abstraction-layer

0BSD许可

120KB
2.5K SLoC

包含(静态库,1KB)startup-code/libstartup.a

欢迎PR!

lpc546xx-hal crates.io Documentation

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,您需要以下设置

  1. 安装Rustup

    有关详细信息,请参阅rustup.rs。您也可能能够直接通过您的发行版安装Rustup。

  2. 安装arm-none-eabi编译器工具链

    https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads

    如果您无法通过操作系统/发行版直接安装工具链,我们建议将预编译的二进制文件安装到'/usr/local/opt'。将bin文件夹(/bin和/arm-none-eabi/bin)添加到您的环境变量'PATH'中。

  3. 为Rust安装thumbv7em-none-eabi/hf目标

    只需运行rustup target add thumbv7em-none-eabirustup 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