14.1.1.3.5.2. OpenMV AE3: dfu-util¶
Die OpenMV AE3 verwendet den openmv_dfu-Bootloader (Anwendungs-VID:PID 37C5:16E3, DFU-VID:PID 37C5:96E3), ist aber ein Dual-Core-Gerät: ein Alif Ensemble mit einem hochleistungsfähigen (HP) und einem hocheffizienten (HE) Cortex-M55-Kern. Um in den Bootloader zu gelangen, stecken Sie einfach die Kamera ein: Sie lauscht beim Einschalten kurz, und -w lässt dfu-util darauf warten, dass sie erscheint. Jeder Kern führt sein eigenes Firmware-Image aus und hat sein eigenes schreibgeschütztes ROMFS, sodass ein vollständiges Flashen vier Images umfasst:
Kern |
Firmware-Befehl |
ROMFS-Befehl |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Ein vollständiges Flashen schreibt die vier Images, mit --reset nur bei der letzten Übertragung:
dfu-util -w -d ,37C5:96E3 -a 1 -D firmware_M55_HP.bin
dfu-util -w -d ,37C5:96E3 -a 2 -D firmware_M55_HE.bin
dfu-util -w -d ,37C5:96E3 -a 3 -D romfs1.img
dfu-util -w -d ,37C5:96E3 -a 6 --reset -D romfs0.img
Um nur die Firmware eines Kerns zu ersetzen, flashen Sie nur den Alt dieses Kerns (-a 1 für HP, -a 2 für HE); um das ROMFS eines Kerns zu ersetzen, flashen Sie den ROMFS-Alt dieses Kerns (-a 6 für HP / romfs0, -a 3 für HE / romfs1).
14.1.1.3.5.2.1. Initialisieren des Everspin-MRAM¶
Spezielle Builds der OpenMV AE3 ersetzen den Standard-Flash – der das interne FAT-Dateisystem und das ROMFS des HP-Kerns enthält – durch einen Everspin-MRAM-Chip. Dieser Abschnitt gilt nur für diese Builds. Ein Everspin-Baustein, der nie initialisiert wurde oder dessen Konfigurationsregister beschädigt sind, reagiert nicht auf Schreibvorgänge, sodass DFU-Übertragungen zu diesen Alts fehlschlagen, bis der Chip neu initialisiert wird.
Der Bootloader stellt dies als einen weiteren DFU-Alt bereit: Das Herunterladen einer Schlüsseldatei zu -a 7 löst die Initialisierungssequenz aus (ein JESD-Reset, die Initialisierung der Konfigurationsregister, das Entfernen der Sperre und zwei vollständige Chip-Lösch-Durchläufe). Der Download selbst speichert nichts – die Partition prüft, ob die Datei mit dem erwarteten 16-Byte-Schlüssel beginnt, und führt die Sequenz höchstens einmal pro Bootloader-Sitzung aus.
Erzeugen Sie die Schlüsseldatei mit tools/flash_recovery_key.py aus dem Firmware-Repository (es schreibt eine 4 KB große key.bin) und laden Sie sie dann herunter:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
Der Chip ist danach leer: Flashen Sie das ROMFS des HP-Kerns erneut (-a 6 -D romfs0.img), und das interne FAT-Dateisystem formatiert sich beim nächsten Start selbst neu.
Siehe auch
Um das interne FAT-Dateisystem der Kamera zu löschen – die Lösung, wenn eine fehlerhafte main.py oder ein beschädigtes Dateisystem die Kamera am Booten hindert – siehe Das interne Dateisystem löschen.
Um den Bootloader der Kamera selbst wiederherzustellen, siehe Wiederherstellen des Bootloaders.