14.1.1.3. Firmware flashen

Sobald Sie aus Die Firmware bauen eine firmware.bin (und das zugehörige romfs<n>.img) haben, programmieren Sie diese auf die Kamera. OpenMV IDE ist die empfohlene Methode; das Vorgehen über die Kommandozeile unterscheidet sich je nach Kamerafamilie und ist pro Familie auf den unten verlinkten Seiten dokumentiert. Der Bootloader selbst wird separat wiederhergestellt – siehe Wiederherstellen des Bootloaders.

14.1.1.3.2. Windows: USB-Treiber installieren

Windows hat keinen integrierten Treiber für die USB-DFU-, SDP- und ISP-Schnittstellen der Kamera, sodass die Kommandozeilen-Tools (dfu-util, die NXP-SPSDK-Tools, die Alif-SE-Tools) das Gerät erst erkennen, wenn ein WinUSB-Treiber daran gebunden ist. Der Windows-Installer von OpenMV IDE installiert all diese Treiber, daher ist der einfachste Ansatz, OpenMV IDE einmal zu installieren – danach funktionieren sowohl die IDE als auch die Kommandozeilen-Tools. Deshalb gelingt das GUI-Flashen auf einem frischen Windows-Rechner, während ein eigenständiges dfu-util scheitert.

Falls die Installation der IDE keine Option ist, führen Sie den passenden Treiber-Installer aus dem Verzeichnis share/qtcreator/drivers/ von OpenMV IDE als Administrator aus:

Treiber-Installer

USB-Geräte, die er bindet

openmv\openmv.cmd

OpenMV-DFU-Geräte sowie die RT1062-SPSDK-Schnittstellen (0x1FC9:0x0135 SDP-ROM und 0x15A2:0x0073 Flashloader)

arduino\arduino.cmd

Arduino-DFU-Geräte (2341:03xx)

ftdi\ftdi.cmd

Der FTDI-Adapter 0403:6015, der für die AE3-Bootloader-Wiederherstellung verwendet wird

DFU_Driver\STM32Bootloader.bat

Das ST-System-DFU-Gerät 0483:df11, das für die STM32-Bootloader-Wiederherstellung verwendet wird

Alternativ binden Sie WinUSB mit Zadig oder pnputil an die konkrete VID:PID. Ohne dies funktioniert kein Kommandozeilen-Flashen unter Windows. Linux und macOS benötigen keine Treiberinstallation (Linux benötigt lediglich die udev-Regeln).

14.1.1.3.3. Flashen über SWD (make deploy)

Wenn bereits eine Debug-Probe mit der Kamera verbunden ist – wie es zum Debuggen der Fall ist – umgeht der schnellste Edit-Build-Flash-Zyklus USB-DFU und programmiert den Chip direkt über SWD. Auf den STM32-Kameras:

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

Dies flasht die frisch gebaute Firmware über STM32_Programmer_CLI (aus dem SDK) über die verbundene Probe. Es gibt keinen Bootloader-Eintritt, keine erneute USB-Anmeldung und keinen Kabelwechsel: bauen, deploy ausführen, und die Kamera startet mit dem neuen Code neu. Dies ist der empfohlene Arbeitsablauf während der aktiven Firmware-Entwicklung. Verwenden Sie DFU oder OpenMV IDE, wenn Sie ohne Probe flashen oder Firmware an andere weitergeben.

14.1.1.3.4. Wechsel in den Bootloader-/DFU-Modus

Zum Flashen muss sich die Kamera in ihrem Bootloader-/DFU-Modus befinden. Es gibt drei Wege hinein:

  • Beim Einstecken (jede Kamera). Jede Kamera führt beim Einschalten für ein kurzes Zeitfenster ihren Bootloader aus, bevor die Firmware startet – stecken Sie die Kamera per USB ein, und der Bootloader lauscht kurz.

  • Aus der IDE (jede Kamera). Bei eingesteckter Kamera startet Tools -> Force enter OpenMV Cam bootloader sie in den Bootloader-Modus neu.

  • Arduino-Reset-Taste. Auf Arduino-Boards doppelklicken Sie die Reset-Taste, um in den Bootloader-Modus zu gelangen.

14.1.1.3.5. Kommandozeilen-Flashen nach Kamerafamilie

Die folgenden Seiten zeigen, was OpenMV IDE für jede Kamerafamilie unter der Haube tut, für den Fall, dass Sie das Flashen selbst ausführen möchten – in Skripten, in CI oder an einer Produktionslinie. Für das alltägliche Flashen empfehlen wir OpenMV IDE.