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

-a 1 -D firmware_M55_HP.bin

-a 6 -D romfs0.img

M55-HE

-a 2 -D firmware_M55_HE.bin

-a 3 -D romfs1.img

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.