14.1.1.3.5.1. Камеры OpenMV STM32: dfu-util

Для прошивки в скриптах или CI одноядерных камер OpenMV на STM32 (M4, M7, H7, H7 Plus, Pure Thermal, N6) используйте dfu-util напрямую. Он входит в состав OpenMV SDK и в каталог инструментов OpenMV IDE. В Linux для доступа к устройству DFU без прав root требуются правила udev: установите OpenMV IDE (которая их устанавливает) или скопируйте её файлы 99-openmv*.rules из share/qtcreator/pydfu/ в /etc/udev/rules.d/ и выполните sudo udevadm control --reload-rules && sudo udevadm trigger. Иначе запускайте dfu-util с sudo.

Эти камеры используют загрузчик openmv_dfu и прошиваются по номеру alt DFU (-a N), а не по абсолютному адресу – загрузчик сопоставляет каждый alt с правильным регионом флеш-памяти. Чтобы войти в загрузчик, просто подключите камеру: она кратко прослушивает при включении, а флаг -w заставляет dfu-util дождаться её появления. --reset при последней передаче перезагружает камеру в новую прошивку.

Камера (TARGET)

VID:PID приложения

VID:PID DFU

Команда прошивки

Команда ROMFS

OpenMV Cam M4 (OPENMV2)

37C5:1202

37C5:9202

-a 2 -D firmware.bin

-a 3 -D romfs0.img

OpenMV Cam M7 (OPENMV3)

37C5:1203

37C5:9203

-a 2 -D firmware.bin

-a 3 -D romfs0.img

OpenMV Cam H7 (OPENMV4)

37C5:1204

37C5:9204

-a 2 -D firmware.bin

-a 3 -D romfs0.img

OpenMV Cam H7 Plus (OPENMV4P)

37C5:124A

37C5:924A

-a 2 -D firmware.bin

-a 4 -D romfs0.img

OpenMV Pure Thermal (OPENMVPT)

37C5:1205

37C5:9205

-a 2 -D firmware.bin

-a 4 -D romfs0.img

OpenMV Cam N6 (OPENMV_N6)

37C5:1206

37C5:9206

-a 1 -D firmware.bin

-a 3 -D romfs0.img

Прошейте OpenMV Cam H7, сначала прошивку, затем ROMFS:

dfu-util -w -d ,37C5:9204 -a 2 -D build/OPENMV4/bin/firmware.bin
dfu-util -w -d ,37C5:9204 -a 3 --reset -D build/OPENMV4/bin/romfs0.img

См. также

Чтобы стереть внутреннюю файловую систему FAT камеры – решение, когда повреждённый main.py или повреждённая файловая система не дают камере загрузиться – см. Стирание внутренней файловой системы.

Чтобы восстановить сам загрузчик камеры, см. Восстановление загрузчика.