14.1.1.3.5.2. OpenMV AE3: dfu-util¶
OpenMV AE3 folosește bootloader-ul openmv_dfu (aplicație VID:PID 37C5:16E3, DFU VID:PID 37C5:96E3), dar este un dispozitiv dual-core: un Alif Ensemble cu un nucleu Cortex-M55 de înaltă performanță (HP) și unul de înaltă eficiență (HE). Pentru a intra în bootloader, doar conectați camera: ascultă pentru scurt timp la pornire, iar -w face ca dfu-util să aștepte apariția acesteia. Fiecare nucleu rulează propria imagine de firmware și are propriul ROMFS doar-citire, deci o programare completă înseamnă patru imagini:
Nucleu |
Comandă firmware |
Comandă ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
O programare completă scrie cele patru imagini, cu --reset doar la transferul final:
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
Pentru a înlocui firmware-ul unui singur nucleu, programați doar alt-ul acelui nucleu (-a 1 pentru HP, -a 2 pentru HE); pentru a înlocui ROMFS-ul unui nucleu, programați alt-ul ROMFS al acelui nucleu (-a 6 pentru HP / romfs0, -a 3 pentru HE / romfs1).
14.1.1.3.5.2.1. Inițializarea memoriei Everspin MRAM¶
Compilările speciale ale OpenMV AE3 înlocuiesc memoria flash externă standard – care conține sistemul de fișiere FAT intern și ROMFS-ul nucleului HP – cu un cip Everspin MRAM. Această secțiune se aplică doar acelor compilări. O componentă Everspin care nu a fost niciodată inițializată sau ale cărei registre de configurare au fost corupte nu răspunde la scrieri, deci transferurile DFU către acele alt-uri eșuează până când cipul este reinițializat.
Bootloader-ul expune aceasta ca un alt DFU suplimentar: descărcarea unui fișier-cheie către -a 7 declanșează secvența de inițializare (o resetare JESD, inițializarea registrelor de configurare, eliminarea blocării și două treceri complete de ștergere a cipului). Descărcarea în sine nu stochează nimic – partiția verifică dacă fișierul începe cu cheia de 16 octeți așteptată și rulează secvența, cel mult o dată per sesiune de bootloader.
Generați fișierul-cheie cu tools/flash_recovery_key.py din depozitul de firmware (scrie un key.bin de 4 KB), apoi descărcați-l:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
Cipul este gol după aceea: reprogramați ROMFS-ul nucleului HP (-a 6 -D romfs0.img), iar sistemul de fișiere FAT intern se reformatează singur la următoarea pornire.
Vezi și
Pentru a șterge sistemul de fișiere FAT intern al camerei – soluția când un main.py defect sau un sistem de fișiere corupt împiedică camera să pornească – consultați Ștergerea sistemului de fișiere intern.
Pentru a restaura bootloader-ul în sine al camerei, consultați Restaurarea bootloader-ului.