14.1.1.3. A firmware felvillantása (flashelése)

Miután elkészült a firmware.bin (és a hozzá tartozó romfs<n>.img) a A firmware felépítése lépés alapján, programozza azt a kamerára. Az OpenMV IDE az ajánlott módszer; a parancssoros eljárás kameracsaládonként eltér, és minden család esetében az oldal alján linkelt oldalakon van dokumentálva. Magát a rendszerbetöltőt külön kell helyreállítani – lásd A rendszerbetöltő helyreállítása.

14.1.1.3.2. Windows: az USB illesztőprogramok telepítése

A Windows nem rendelkezik beépített illesztőprogrammal a kamera USB DFU, SDP és ISP interfészeihez, ezért a parancssoros eszközök (dfu-util, az NXP SPSDK eszközök, az Alif SE Tools) nem tudják érzékelni az eszközt, amíg nincs hozzá kötve egy WinUSB illesztőprogram. Az OpenMV IDE Windows-telepítője ezeket az illesztőprogramokat mind telepíti, így a legegyszerűbb megoldás az OpenMV IDE egyszeri telepítése – ezután mind az IDE, mind a parancssoros eszközök működnek. Ezért sikerül a grafikus felületű flashelés egy friss Windows gépen, miközben egy önálló dfu-util nem.

Ha az IDE telepítése nem lehetséges, futtassa a megfelelő illesztőprogram-telepítőt az OpenMV IDE share/qtcreator/drivers/ könyvtárából rendszergazdaként:

Illesztőprogram-telepítő

Az általa kötött USB eszközök

openmv\openmv.cmd

OpenMV DFU eszközök, valamint az RT1062 SPSDK interfészek (0x1FC9:0x0135 SDP ROM és 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Arduino DFU eszközök (2341:03xx)

ftdi\ftdi.cmd

Az AE3 rendszerbetöltő helyreállításához használt FTDI 0403:6015 adapter

DFU_Driver\STM32Bootloader.bat

Az STM32 rendszerbetöltő helyreállításához használt ST 0483:df11 rendszer-DFU eszköz

Alternatívaként kösse a WinUSB-t a konkrét VID:PID párhoz a Zadig vagy a pnputil eszközzel. Ezek nélkül a parancssoros flashelés Windowson nem működik. A Linux és a macOS nem igényel illesztőprogram-telepítést (a Linux csak az udev szabályokat igényli).

14.1.1.3.3. Flashelés SWD-n keresztül (make deploy)

Ha egy debug szonda már a kamerához van kötve – ahogy a hibakereséshez van –, a leggyorsabb szerkesztés-build-flash ciklus megkerüli az USB DFU-t, és közvetlenül SWD-n keresztül programozza a chipet. Az STM32 kamerákon:

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

Ez a frissen buildelt firmware-t a STM32_Programmer_CLI segítségével (az SDK-ból) flasheli a csatlakoztatott szondán keresztül. Nincs rendszerbetöltőbe való belépés, nincs USB újra-enumerálás, és nincs kábelcsere: buildeljen, futtassa a deploy parancsot, és a kamera az új kóddal indul újra. Ez az ajánlott munkafolyamat az aktív firmware-fejlesztés során. Szonda nélküli flasheléshez, vagy ha másoknak terjeszti a firmware-t, használja a DFU-t vagy az OpenMV IDE-t.

14.1.1.3.4. Belépés a rendszerbetöltő / DFU módba

A flashelés megköveteli, hogy a kamera a rendszerbetöltő / DFU módjában legyen. Három módon lehet belépni:

  • Csatlakoztatáskor (bármely kamera). Minden kamera futtatja a rendszerbetöltőjét egy rövid ideig bekapcsoláskor, mielőtt a firmware elindulna – csatlakoztassa a kamerát USB-hez, és a rendszerbetöltő rövid ideig figyel.

  • Az IDE-ből (bármely kamera). Csatlakoztatott kamerával a Tools -> Force enter OpenMV Cam bootloader menüpont rendszerbetöltő módba indítja újra.

  • Arduino reset gomb. Az Arduino kártyákon kattintson duplán a reset gombra a rendszerbetöltő módba lépéshez.

14.1.1.3.5. Parancssoros flashelés kameracsaládonként

Az alábbi oldalak bemutatják, hogy az OpenMV IDE mit végez a háttérben minden egyes kameracsaládnál, arra az esetre, ha saját maga szeretné futtatni a flashelést – szkriptekben, CI-ben vagy gyártósoron. A mindennapi flasheléshez az OpenMV IDE-t ajánljuk.