14.1.1.3.5.4. Arduino 板子¶
基于 STM32 的 Arduino 板子(Portenta H7、Giga、Nicla Vision)通过 Arduino DFU 引导加载程序,使用 dfu-util 配合 绝对闪存地址 进行烧录。两款 Nano 板子使用它们各自的工具。
14.1.1.3.5.4.1. STM32 Arduino 板子:dfu-util¶
要进入引导加载程序,请双击复位按钮(或以 1200 波特率打开板子的串口 —— 即 Arduino 的 "touch" 复位)。
板子 |
DFU VID:PID |
固件命令 |
ROMFS 命令 |
|---|---|---|---|
Arduino Portenta H7 |
|
|
|
Arduino Giga |
|
|
|
Arduino Nicla Vision |
|
|
|
烧录应用程序(以 Nicla Vision 为例)::
dfu-util -w -d ,2341:035f -a 0 -s 0x08040000 -D firmware.bin
Wi-Fi 和蓝牙需要两个随 OpenMV IDE 一同提供、位于 share/qtcreator/firmware/CYW4343/ 中的额外二进制块:
组件 |
闪存地址 |
文件 |
|---|---|---|
Wi-Fi 固件 |
|
|
蓝牙固件 |
|
|
将两者都烧录到外部闪存的 alt 上,并在最后一次传输时加上 :leave(以 Nicla Vision 为例)::
dfu-util -w -d ,2341:035f -a 1 -s 0x90F00000 -D cyw4343_7_45_98_102.bin
dfu-util -w -d ,2341:035f -a 1 -s 0x90FC0000:leave -D cyw4343_btfw.bin
14.1.1.3.5.4.2. Arduino Nano 33 BLE Sense:bossac¶
Nano 33 BLE Sense(nRF52840)不使用 dfu-util。要进入引导加载程序,请双击 RESET 按钮;板子会枚举为 nRF52840 DFU 设备(2341:805a)。用 bossac 烧录它,将应用程序写入闪存偏移 0x16000 —— 即工厂 SoftDevice 和引导加载程序之上,二者永不被写入::
bossac -e -w -v -R --offset=0x16000 firmware.bin
14.1.1.3.5.4.3. Arduino Nano RP2040 Connect:picotool¶
要进入引导加载程序,请在连接 USB 的同时按住 BOOTSEL 按钮;板子会挂载一个名为 RPI-RP2 的 USB 大容量存储驱动器。烧录它的方式有两种:将一个 .uf2 文件复制到该驱动器上,或使用 picotool::
picotool load -x firmware.uf2
警告
Arduino 板子的引导加载程序是工厂锁定的,用户 无法 恢复 —— 只有应用程序区域才会被写入。损坏的 Arduino 引导加载程序必须用 Arduino 自己的工具来恢复。恢复引导加载程序 中的引导加载程序恢复流程仅适用于 OpenMV 品牌的摄像头。
参见
要擦除摄像头的内部 FAT 文件系统 —— 当一个有问题的 main.py 或损坏的文件系统导致摄像头无法启动时的修复方法 —— 请参见 擦除内部文件系统。