3个不稳定版本
0.2.1 | 2023年2月26日 |
---|---|
0.2.0 | 2022年4月8日 |
0.1.0 | 2019年5月26日 |
#350 在 嵌入式开发
210KB
214 行
nucleo-h743zi
为NUCLEO-H743ZI和NUCLEO-H743ZI2板提供的示例程序。
使用stm32h7xx-hal存储库。
欢迎对这个存储库进行合作,也欢迎提交拉取请求!
项目目标:通过Rust简化NUCLEO H743ZI和H743ZI2板的起步步骤
此存储库包含针对NUCLEO H743ZI和NUCLEO H743ZI2板的特定示例和入门材料,应与这些特定板一起“即插即用”,并通过零配置或选项演示这些板上的功能使用。
虽然与stm32h7xx-hal有一些冗余,但这两个项目有不同的目标。在这里,目标是提供一种简单的方法来使用这些板,而不涵盖所有可能的功能或提供通用的帮助库。对于更高级的使用,鼓励您直接使用stm32h7xx-hal存储库。当然,如上所述,我们欢迎符合项目目标的建议改进。
为了方便使用Nucleo-H743ZI和Nucleo-H743ZI2板,此存储库中的代码在默认情况下应能在两个板上使用,无需修改或配置。
此项目支持knurling-rs,这简化了在嵌入式设备上的开发、测试和调试。
NUCLEO H743ZI和H743ZI2板之间的差异
功能 | NUCLEO-H743ZI | NUCLEO-H743ZI2 | 备注 |
---|---|---|---|
STLINK | V2-1,可切割PCB | V3E,PCB上嵌入式 | 见DB3171,Rev 14 |
板参考 | UM1974用户手册STM32 Nucleo-144板(MB1137) | UM2407用户手册STM32H7 Nucleo-144板(MB1364) | |
用户LD2 | 蓝色,连接到PB7 | 黄色,连接到PE1 | |
可用性 | 已淘汰 | 可用 |
此存储库中的代码在两个板上使用时无需修改或配置。
先决条件
在构建项目之前,您需要安装以下组件。
$ rustup target add thumbv7em-none-eabihf
$ rustup component add llvm-tools-preview
$ cargo install cargo-binutils
这将安装一个新的支持Cortex-M7F的Rust编译器目标,并安装一个cargo插件以直接调用binutils
。
为了调试程序,您可以使用probe-rs或适用于您系统的兼容版本gdb
。
构建和运行
构建和运行方法 1:构建.bin
文件
此方法构建一个包含编译固件的.bin
文件。该文件被复制到Nucleo的模拟USB大容量存储设备上,设备会自动重置并启动新固件。
构建方式
cargo build --release --bin blinky
# (Substitute any of the example programs for 'blinky')
转换为.bin文件
cargo objcopy --release --bin blinky -- -O binary target/thumbv7em-none-eabihf/release/blinky.bin
cargo objcopy --release --bin serial -- -O binary target/thumbv7em-none-eabihf/release/serial.bin
闪存设备
cp target/thumbv7em-none-eabihf/release/blinky.bin /path/to/NODE_H743ZI/
cp target/thumbv7em-none-eabihf/release/serial.bin /path/to/NODE_H743ZI/
构建和运行方法 2:使用probe-run
闪存和运行设备
作为上述方法的替代方案,我们使用Knurling项目中的probe-run
来闪存我们的固件并运行它。使用defmt
crate记录和println!
消息将在运行时可见。当输入cargo run
时,此方法会自动选择,因为runner
在.cargo/config
文件中被指定。有关probe-run
硬件选项,请参阅下文。板上集成的STLINKv3硬件最简单,因为它内置在NUCLEO-H743ZI2板上。
要查看defmt
消息的日志,请使用适当的DEFMT_LOG
环境变量进行编译。(默认情况下,defmt
只显示错误级别的消息。)
Powershell(Windows)
$Env:DEFMT_LOG="trace"
Bash(Linux/macOS)
export DEFMT_LOG=trace
probe-run
硬件选项A:板上STLINKv3
这是最简单的方法,只需用USB线连接到您的设备即可。如果probe-run
返回Error: The firmware on the probe is outdated
,您可以使用从st.com下载的文件来更新Nucleo上的STLINKv3固件。
probe-run
硬件选项B:将Raspberry Pi Pico作为CMSIS-DAP探针
可以使用运行DapperMime固件的Raspberry Pi Pico板作为低成本的CMSIS-DAP探针进行调试。在此配置中,Nucleo中内置的STLINKv3硬件将被绕过。
要设置您的Nucleo,请执行以下步骤。
- 将以下引脚连接到Pico,以便将其作为调试器连接到stm32h743芯片的SWD引脚。
信号 | MIPI-10调试连接器(CN5)在NUCLEO-H743ZI2上 | Raspberry Pi Pico |
---|---|---|
SWDIO | 引脚 2 | GP3 |
GND | 引脚 3 | GND |
SWCLK | 引脚 4 | GP2 |
- 通过在JP1上设置跳线来保持STLINKv3处于复位状态。
- 通过将USB充电器连接到STLINK微USB连接器CN1并设置跳线JP2到CHGR位置(从默认的STLINK位置)来为Nucleo板供电。
调试
调试方法 1:使用probe-rs-debug
和Visual Studio Code
此方法推荐使用,因为它不需要安装gdb
或openocd
。请遵循probe-rs
指南。
调试方法 2:使用openocd
和gdb
可以使用openocd
和gdb进行调试。提供了一份示例
openocd
配置文件。
- 根据所使用的操作系统和所需的调试器,在
.cargo/config
文件中取消注释指定的一个runner。 - 在项目根目录下运行
openocd
- 运行
cargo run --bin blinky
或cargo run --bin serial
您还可以使用带有 Cortex-Debug 扩展的 VS Code 来进行带有图形界面的调试。在 .vscode
文件夹中提供了一些配置文件。
许可证
依赖项
~93MB
~2.5M SLoC