14.1.1.3.5.2. OpenMV AE3: dfu-util¶
De OpenMV AE3 gebruikt de openmv_dfu-bootloader (applicatie-VID:PID 37C5:16E3, DFU-VID:PID 37C5:96E3), maar het is een dual-core-apparaat: een Alif Ensemble met een high-performance (HP)- en een high-efficiency (HE)-Cortex-M55-core. Om de bootloader binnen te gaan, sluit je de camera gewoon aan: hij luistert kort mee bij het opstarten, en -w laat dfu-util wachten tot hij verschijnt. Elke core draait zijn eigen firmware-image en heeft zijn eigen alleen-lezen ROMFS, dus een volledige flash bestaat uit vier images:
Core |
Firmware-opdracht |
ROMFS-opdracht |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Een volledige flash schrijft de vier images, met --reset alleen bij de laatste overdracht:
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
Om alleen de firmware van een enkele core te vervangen, flash je alleen de alt van die core (-a 1 voor HP, -a 2 voor HE); om de ROMFS van een core te vervangen, flash je de ROMFS-alt van die core (-a 6 voor HP / romfs0, -a 3 voor HE / romfs1).
14.1.1.3.5.2.1. De Everspin-MRAM initialiseren¶
Speciale builds van de OpenMV AE3 vervangen het standaard externe flashgeheugen – dat het interne FAT-bestandssysteem en de ROMFS van de HP-core bevat – door een Everspin-MRAM-chip. Deze sectie is alleen van toepassing op die builds. Een Everspin-onderdeel dat nooit is geinitialiseerd, of waarvan de configuratieregisters zijn beschadigd, reageert niet op schrijfacties, dus DFU-overdrachten naar die alts mislukken totdat de chip opnieuw is geinitialiseerd.
De bootloader stelt dit beschikbaar als nog een DFU-alt: het downloaden van een sleutelbestand naar -a 7 activeert de initialisatiesequentie (een JESD-reset, initialisatie van configuratieregisters, het verwijderen van de vergrendeling en twee volledige chip-erase-passages). De download zelf slaat niets op – de partitie controleert of het bestand begint met de verwachte 16-byte-sleutel en voert de sequentie uit, maximaal een keer per bootloadersessie.
Genereer het sleutelbestand met tools/flash_recovery_key.py uit de firmware-repository (het schrijft een 4 KB-key.bin) en download het vervolgens:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
De chip is daarna leeg: flash de ROMFS van de HP-core opnieuw (-a 6 -D romfs0.img), en het interne FAT-bestandssysteem herformatteert zichzelf bij de volgende boot.
Zie ook
Om het interne FAT-bestandssysteem van de camera te wissen – de oplossing wanneer een slechte main.py of een beschadigd bestandssysteem voorkomt dat de camera opstart – zie Het interne bestandssysteem wissen.
Om de bootloader van de camera zelf te herstellen, zie De bootloader herstellen.