14.1.1.3.5.2. OpenMV AE3: dfu-util

OpenMV AE3 använder startladdaren openmv_dfu (applikationens VID:PID 37C5:16E3, DFU:s VID:PID 37C5:96E3), men det är en tvåkärnig enhet: en Alif Ensemble med en högpresterande (HP) och en högeffektiv (HE) Cortex-M55-kärna. För att gå in i startladdaren ansluter du bara kameran: den lyssnar en kort stund vid påslagning, och -w får dfu-util att vänta på att den ska dyka upp. Varje kärna kör sin egen avbildning av fast programvara och har sin egen skrivskyddade ROMFS, så en fullständig flashning omfattar fyra avbildningar:

Kärna

Firmware-kommando

ROMFS-kommando

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

En fullständig flashning skriver de fyra avbildningarna, med --reset endast på den sista överföringen:

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

För att byta ut bara en kärnas fasta programvara flashar du endast den kärnans alt (-a 1 för HP, -a 2 för HE); för att byta ut en kärnas ROMFS flashar du den kärnans ROMFS-alt (-a 6 för HP / romfs0, -a 3 för HE / romfs1).

14.1.1.3.5.2.1. Initiera Everspin MRAM

Specialbuilds av OpenMV AE3 ersätter standardens externa flashminne – som innehåller det interna FAT-filsystemet och HP-kärnans ROMFS – med ett Everspin MRAM-chip. Detta avsnitt gäller endast dessa builds. En Everspin-komponent som aldrig har initierats, eller vars konfigurationsregister har skadats, svarar inte på skrivningar, så DFU-överföringar till dessa alt misslyckas tills chipet har initierats om.

Startladdaren exponerar detta som ytterligare en DFU-alt: att ladda ner en nyckelfil till -a 7 utlöser initieringssekvensen (en JESD-återställning, initiering av konfigurationsregister, borttagning av lås och två fullständiga chipraderingspass). Själva nedladdningen lagrar ingenting – partitionen kontrollerar att filen börjar med den förväntade 16-byte-nyckeln och kör sekvensen, högst en gång per startladdarsession.

Generera nyckelfilen med tools/flash_recovery_key.py från firmware-repot (det skriver en 4 KB stor key.bin) och ladda sedan ner den:

python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin

Chipet är tomt efteråt: flasha om HP-kärnans ROMFS (-a 6 -D romfs0.img), och det interna FAT-filsystemet formaterar om sig självt vid nästa start.

Se även

För att rensa kamerans interna FAT-filsystem – åtgärden när en felaktig main.py eller ett skadat filsystem hindrar kameran från att starta – se Radera det interna filsystemet.

För att återställa själva kamerans startladdare, se Återställa startladdaren.