14.1.1.3. Wgrywanie oprogramowania układowego

Gdy masz już plik firmware.bin (oraz odpowiadający mu romfs<n>.img) z Budowanie oprogramowania układowego, zaprogramuj go w kamerze. OpenMV IDE jest zalecaną metodą; procedura z wiersza poleceń różni się w zależności od rodziny kamer i jest opisana dla każdej rodziny na stronach podlinkowanych na dole. Sam bootloader jest przywracany osobno – zobacz Przywracanie bootloadera.

14.1.1.3.2. Windows: instalacja sterowników USB

System Windows nie ma wbudowanego sterownika dla interfejsów USB DFU, SDP i ISP kamery, więc narzędzia z wiersza poleceń (dfu-util, narzędzia NXP SPSDK, Alif SE Tools) nie mogą wykryć urządzenia, dopóki nie zostanie z nim powiązany sterownik WinUSB. Instalator OpenMV IDE dla systemu Windows instaluje wszystkie te sterowniki, więc najprostszym podejściem jest jednorazowa instalacja OpenMV IDE – po której zarówno IDE, jak i narzędzia z wiersza poleceń działają. Dlatego właśnie wgrywanie przez GUI udaje się na świeżej maszynie z systemem Windows, podczas gdy samodzielny dfu-util nie.

Jeśli instalacja IDE nie wchodzi w grę, uruchom odpowiedni instalator sterownika z katalogu share/qtcreator/drivers/ w OpenMV IDE jako administrator:

Instalator sterownika

Wiązane urządzenia USB

openmv\openmv.cmd

Urządzenia OpenMV DFU oraz interfejsy RT1062 SPSDK (0x1FC9:0x0135 SDP ROM i 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Urządzenia Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

Adapter FTDI 0403:6015 używany do odzyskiwania bootloadera AE3

DFU_Driver\STM32Bootloader.bat

Urządzenie ST system DFU 0483:df11 używane do odzyskiwania bootloadera STM32

Alternatywnie powiąż WinUSB z konkretnym VID:PID za pomocą Zadig lub pnputil. Bez tego żadne wgrywanie z wiersza poleceń w systemie Windows nie działa. Linux i macOS nie wymagają instalacji sterowników (Linux wymaga jedynie reguł udev).

14.1.1.3.3. Wgrywanie przez SWD (make deploy)

Jeśli sonda debugująca jest już podłączona do kamery – tak jak ma to miejsce podczas debugowania – najszybszy cykl edycja-kompilacja-wgrywanie omija USB DFU i programuje układ bezpośrednio przez SWD. Na kamerach STM32:

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

To wgrywa świeżo skompilowane oprogramowanie układowe za pomocą STM32_Programmer_CLI (z SDK) przez podłączoną sondę. Nie ma wejścia do bootloadera, ponownego wyliczenia USB ani przekładania kabli: kompilujesz, uruchamiasz deploy, a kamera restartuje się z nowym kodem. To zalecany przepływ pracy podczas aktywnego rozwoju oprogramowania układowego. Użyj DFU lub OpenMV IDE przy wgrywaniu bez sondy lub przy dystrybucji oprogramowania układowego dla innych.

14.1.1.3.4. Wejście do trybu bootloadera / DFU

Wgrywanie wymaga, aby kamera była w trybie bootloadera / DFU. Są trzy sposoby, aby się tam dostać:

  • Przy podłączeniu (dowolna kamera). Każda kamera uruchamia swój bootloader przez krótki czas przy włączeniu zasilania, zanim wystartuje oprogramowanie układowe – podłącz kamerę do USB, a bootloader przez chwilę nasłuchuje.

  • Z poziomu IDE (dowolna kamera). Przy podłączonej kamerze Tools -> Force enter OpenMV Cam bootloader uruchamia ją ponownie w trybie bootloadera.

  • Przycisk reset Arduino. Na płytkach Arduino kliknij dwukrotnie przycisk reset, aby wejść w tryb bootloadera.

14.1.1.3.5. Wgrywanie z wiersza poleceń według rodziny kamer

Poniższe strony pokazują, co OpenMV IDE robi pod maską dla każdej rodziny kamer, na wypadek gdybyś chciał samodzielnie przeprowadzić wgrywanie – w skryptach, w CI lub na linii produkcyjnej. Do codziennego wgrywania zalecamy OpenMV IDE.