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.1. OpenMV IDE: Eigene Firmware laden (empfohlen)¶
OpenMV IDE bündelt jedes Flash-Werkzeug (dfu-util, die NXP-SPSDK-Tools, die Alif-SE-Tools, die STM32-Tools), installiert die erforderlichen USB-Treiber unter Windows, kümmert sich um den Wechsel in den Bootloader und wählt den passenden Befehl für die angeschlossene Kamera. Es ist der empfohlene Weg, um einen eigenen Build zu flashen.
Schließen Sie die Kamera per USB an (Sie müssen nicht auf Connect klicken).
Tools -> Load Custom Firmware.
Setzen Sie im Dialog Firmware Path auf die
build/<TARGET>/bin/firmware.binIhres Builds.Aktivieren Sie optional Erase internal file system, um das interne FAT-Dateisystem der Kamera zu löschen (siehe Das interne Dateisystem löschen dazu, wann und warum).
Aktivieren Sie optional Reset ROMFS file system, um das Standard-ROMFS erneut zu flashen (deaktiviert, wenn Sie direkt eine
.imgausgewählt haben).Klicken Sie auf Run. Die IDE setzt die Kamera in ihren Bootloader zurück, zeigt den genauen Flash-Befehl und einen Fortschrittsbalken an und startet die Kamera mit der neuen Firmware neu. Warten Sie auf die blaue Selbsttest-LED; die Kamera meldet sich danach normal neu an.
Es gibt außerdem Tools -> Force enter OpenMV Cam bootloader, um die Kamera vor dem Flashen manuell in den DFU-Modus zu versetzen.
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-DFU-Geräte sowie die RT1062-SPSDK-Schnittstellen ( |
|
Arduino-DFU-Geräte ( |
|
Der FTDI-Adapter |
|
Das ST-System-DFU-Gerät |
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.