#hal #risc-v #bl702

no-std bl702-hal

适用于 Bouffalo Lab BL702 微控制器系列的 HAL

3 个版本

0.0.3 2022 年 10 月 8 日
0.0.2 2022 年 10 月 8 日
0.0.1 2022 年 9 月 19 日

#1803嵌入式开发

MIT OR MulanPSL-2.0

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