12个版本
0.5.1 | 2023年12月3日 |
---|---|
0.5.0 | 2023年12月3日 |
0.4.4 | 2022年9月18日 |
0.4.2 | 2021年1月10日 |
0.1.1 | 2018年1月21日 |
#86 在 嵌入式开发
213 每月下载量
用于 2 crates
120KB
2.5K SLoC
欢迎使用rpi_ws281x的Rust绑定
安全提示 - 高级抽象
如果您在查看此crate并想“ boy, 我想要添加 {insert higher abstraction}”,那么您可能对以下项目感兴趣。此项目旨在严格遵循驱动器的功能集(甚至可能是该子集)。
请记住审核您的依赖项,我们不对上述提及的crate使用导致的任何安全漏洞承担责任
如果您有一个基于此的crate并希望它在此处展示,请随时提交PR。
使用警告
此项目仍在进行中,API可能会发生变化。大多数主要功能都由相当典型的Rust实现。然而,我们总是努力覆盖更多内容,达到 @Meh 一段时间前为此库编写的手动绑定。
贡献
代码根据MIT许可证授权,因此只要您同意这一点,请随时提交问题,讨论提议的更改,然后提交PR!我非常需要帮助之手,只是要确保事情不会变得太混乱。
Raspbian上的编译
- 从 https://rustup.rs/ 安装Rust
- 运行
rustup target add arm-unknown-linux-gnueabihf
- 安装
sudo apt install libclang-dev
在Ubuntu/Debian上的交叉编译
- 从 https://rustup.rs/ 安装Rust
- 运行
rustup target add arm-unknown-linux-gnueabihf
- 运行
sudo apt install libclang-dev gcc-arm-linux-gnueabihf
AArch64构建
- 运行
rustup target add aarch64-unknown-linux-gnu
- 安装交叉编译工具链:
sudo apt install libclang-dev gcc-aarch64-linux-gnu
- 使用以下命令编译:
cargo build --target=aarch64-unknown-linux-gnu [YOUR OPTIONS]
Windows上的交叉编译
- 确保已安装Git。这用于克隆最新的rpi-ws2811库。
- 从LLVM下载并安装libclang; 32位Windows版
- 下载并安装GCC用于树莓派。
- 使用rustup安装32位GCC Rust工具链并将其设置为默认
rustupdefault stable-i686-pc-windows-gnu
- 将树莓派架构目标添加到GCC工具链
- 针对所有树莓派版本
rustuptarget add arm-unknown-linux-gnueabihf
- 针对优化的树莓派3目标(ARMv7架构)
rustuptarget add armv7-unknown-linux-gnueabihf
- 在Rust项目的根目录下创建一个新的目录,并命名为
.cargo
。在该目录内创建一个文件并粘贴以下内容-
[build] target = "arm-unknown-linux-gnueabihf" [target.arm-unknown-linux-gnueabihf] linker = "C:/SysGCC/raspberry/bin/arm-linux-gnueabihf-gcc.exe"
- 这会告知Rust/Cargo始终使用arm-unknown-linux-gnueabihf目标(因此不需要总是传递--target到cargo),并使用给定架构的GCC链接器。
- 如果您在另一个目录中安装了GCC ARM工具集或正在使用ARMv7目标,请务必更改链接器路径或目标架构。
-
- 建议创建一个构建脚本,以便设置必要的环境变量。该库需要知道GCC工具集的位置,以便交叉编译用于树莓派的rpi-ws2811 C库。
一个示例构建脚本可能如下所示(使用Git for Windows Bash)
#!/usr/bin/env bash
# inform rpi-ws2811-rust where the GCC sysroot is
export RPI_WS281X_SYSROOT=C:/SysGCC/raspberry/arm-linux-gnueabihf/sysroot
# point to the GCC ARM compiler/linker.
export CC_arm_unknown_linux_gnueabihf=C:/SysGCC/raspberry/bin/arm-linux-gnueabihf-gcc.exe
# point to the GCC ARM archiver
export AR_arm_unknown_linux_gnueabihf=C:/SysGCC/raspberry/bin/arm-linux-gnueabihf-ar.exe
# run the build command
cargo build $@
依赖关系
~0.4–3MB
~61K SLoC