14.1.1.3. Прошивка firmware

После того как вы получили firmware.bin (и соответствующий romfs<n>.img) из Сборка прошивки, запишите её на камеру. OpenMV IDE – рекомендуемый способ; процедура для командной строки различается в зависимости от семейства камер и описана для каждого семейства на страницах, ссылки на которые приведены внизу. Сам загрузчик восстанавливается отдельно – см. Восстановление загрузчика.

14.1.1.3.2. Windows: установка драйверов USB

В Windows нет встроенного драйвера для интерфейсов USB DFU, SDP и ISP камеры, поэтому инструменты командной строки (dfu-util, инструменты NXP SPSDK, инструменты Alif SE Tools) не могут обнаружить устройство, пока к нему не привязан драйвер WinUSB. Установщик OpenMV IDE для Windows устанавливает все эти драйверы, поэтому проще всего один раз установить OpenMV IDE – после чего работают и IDE, и инструменты командной строки. Именно поэтому прошивка через графический интерфейс успешна на свежей машине с Windows, а отдельный dfu-util – нет.

Если установка IDE невозможна, запустите соответствующий установщик драйвера из каталога share/qtcreator/drivers/ OpenMV IDE от имени администратора:

Установщик драйвера

Устройства USB, к которым он привязывается

openmv\openmv.cmd

Устройства OpenMV DFU и интерфейсы RT1062 SPSDK (0x1FC9:0x0135 SDP ROM и 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Устройства Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

Адаптер FTDI 0403:6015, используемый для восстановления загрузчика AE3

DFU_Driver\STM32Bootloader.bat

Системное устройство ST 0483:df11 DFU, используемое для восстановления загрузчика STM32

В качестве альтернативы привяжите WinUSB к конкретному VID:PID с помощью Zadig или pnputil. Без этого прошивка из командной строки в Windows не работает. Linux и macOS не требуют установки драйверов (для Linux нужны только правила udev).

14.1.1.3.3. Прошивка через SWD (make deploy)

Если отладочный пробник уже подключён к камере – как при отладке – то самый быстрый цикл правка-сборка-прошивка минует USB DFU и программирует чип напрямую через SWD. На камерах STM32:

make -j$(nproc) TARGET=<TARGET> deploy

При этом только что собранная прошивка записывается через STM32_Programmer_CLI (из SDK) посредством подключённого пробника. Нет входа в загрузчик, нет повторного перечисления USB и нет перестановки кабелей: соберите, выполните deploy, и камера перезапустится с новым кодом. Это рекомендуемый рабочий процесс при активной разработке прошивки. Используйте DFU или OpenMV IDE, когда прошиваете без пробника или распространяете прошивку другим.

14.1.1.3.4. Вход в режим загрузчика / DFU

Для прошивки камера должна находиться в режиме загрузчика / DFU. Есть три способа войти в него:

  • При подключении (любая камера). Каждая камера на короткое время запускает свой загрузчик при включении, до старта прошивки – подключите камеру к USB, и загрузчик некоторое время прослушивает.

  • Из IDE (любая камера). Когда камера подключена, Tools -> Force enter OpenMV Cam bootloader перезагружает её в режим загрузчика.

  • Кнопка сброса Arduino. На платах Arduino дважды нажмите кнопку сброса, чтобы войти в режим загрузчика.

14.1.1.3.5. Прошивка из командной строки по семействам камер

Страницы ниже показывают, что OpenMV IDE делает «под капотом» для каждого семейства камер – на случай, если вы хотите выполнить прошивку самостоятельно: в скриптах, в CI или на производственной линии. Для повседневной прошивки мы рекомендуем OpenMV IDE.