14.1.1.3. Прошивка мікропрограми

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

14.1.1.3.2. Windows: встановлення USB-драйверів

У Windows немає вбудованого драйвера для інтерфейсів USB DFU, SDP та ISP камери, тому інструменти командного рядка (dfu-util, NXP SPSDK tools, Alif SE Tools) не можуть виявити пристрій, поки до нього не буде прив’язано WinUSB-драйвер. Інсталятор OpenMV IDE для Windows встановлює всі ці драйвери, тому найпростіше – один раз встановити OpenMV IDE, після чого працюватимуть і IDE, і інструменти командного рядка. Саме тому прошивка через GUI успішно виконується на нових машинах Windows, тоді як окремий dfu-util без цього не працює.

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

Інсталятор драйвера

USB-пристрої, до яких він прив’язується

openmv\openmv.cmd

Пристрої OpenMV DFU та інтерфейси RT1062 SPSDK (SDP ROM 0x1FC9:0x0135 та флеш-завантажувач 0x15A2:0x0073)

arduino\arduino.cmd

Пристрої Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

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

DFU_Driver\STM32Bootloader.bat

Системний DFU-пристрій ST 0483:df11, який використовується для відновлення завантажувача 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.