3 个版本
0.0.3 | 2022 年 10 月 8 日 |
---|---|
0.0.2 | 2022 年 10 月 8 日 |
0.0.1 | 2022 年 9 月 19 日 |
#1803 在 嵌入式开发
110KB
1.5K SLoC
包含 (静态库, 6KB) bin/trap_riscv32if-unknown-none-elf.a, (静态库, 6KB) bin/trap_riscv32i-unknown-none-elf.a
bl702-hal
嵌入式 Rust 中 BL702 RISC-V SoC 的硬件抽象层。
项目状态
进行中
- 基本的 GPIO 工作正常
- 时钟初始化(不可配置)
- UART0(仅 2MBaud)
待办事项
- 其他所有内容
入门指南
安装 cargo + rust + riscv32imac-unknown-none-elf + cargo-binutils + llvm-tools-preview
(搜索说明,待办事项:在此处添加分步指南)
pip install bflb-mcu-tool
cargo objcopy --release --example blinky -- -O binary blinky.bin
bflb-mcu-tool --chipname bl702 --firmware blinky.bin
串行演示
cargo objcopy --release --example serial -- -O binary serial.bin
bflb-mcu-tool --chipname bl702 --firmware serial.bin
picocom --lower-rts --lower-dtr /dev/ttyUSB0 -b 2000000
贡献
我们欢迎社区对该项目的贡献。如果您有任何问题或希望贡献,请创建 GitHub issue 或 pull request。
许可
此项目受 MIT 或 Mulan PSL v2 许可。
lib.rs
:
BL702 微控制器的 HAL
这是一个为 BL702 微控制器实现的 Rust HAL。
它实现了外围设备的 embedded-hal
特性,其中存在此类特性。
使用方法
常用设置
// Get access to the device specific peripherals from the peripheral access crate
let dp = pac::Peripherals::take().unwrap();
let mut parts = dp.GLB.split();
为了避免链接器抱怨缺少符号,请将 hal_defaults.x
添加到 .cargo/config
,如下所示
rustflags = [
"-C", "link-arg=-Tmemory.x",
"-C", "link-arg=-Tlink.x",
"-C", "link-arg=-Thal_defaults.x",
]
依赖项
~6MB
~155K SLoC