14.1.1.3.5.2. OpenMV AE3 : dfu-util¶
L’OpenMV AE3 utilise le programme d’amorçage openmv_dfu (VID:PID applicatif 37C5:16E3, VID:PID DFU 37C5:96E3), mais c’est un périphérique bi-cœur : un Alif Ensemble avec un cœur Cortex-M55 haute performance (HP) et un cœur haute efficacité (HE). Pour entrer dans le programme d’amorçage, il suffit de brancher la caméra : elle écoute brièvement à la mise sous tension, et -w fait attendre dfu-util qu’elle apparaisse. Chaque cœur exécute sa propre image de micrologiciel et possède son propre ROMFS en lecture seule, de sorte qu’un flashage complet comporte quatre images :
Cœur |
Commande de micrologiciel |
Commande ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Un flashage complet écrit les quatre images, avec --reset uniquement sur le transfert 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
Pour ne remplacer que le micrologiciel d’un seul cœur, ne flashez que l’alt de ce cœur (-a 1 pour HP, -a 2 pour HE) ; pour remplacer le ROMFS d’un cœur, flashez l’alt ROMFS de ce cœur (-a 6 pour HP / romfs0, -a 3 pour HE / romfs1).
14.1.1.3.5.2.1. Initialiser la MRAM Everspin¶
Des compilations spéciales de l’OpenMV AE3 remplacent la mémoire flash externe standard – qui contient le système de fichiers FAT interne et le ROMFS du cœur HP – par une puce MRAM Everspin. Cette section ne s’applique qu’à ces compilations. Une puce Everspin qui n’a jamais été initialisée, ou dont les registres de configuration ont été corrompus, ne répond pas aux écritures, de sorte que les transferts DFU vers ces alts échouent tant que la puce n’est pas réinitialisée.
Le programme d’amorçage expose cela comme un alt DFU supplémentaire : télécharger un fichier de clé vers -a 7 déclenche la séquence d’initialisation (une réinitialisation JESD, l’initialisation des registres de configuration, la suppression du verrou et deux passes complètes d’effacement de la puce). Le téléchargement lui-même ne stocke rien – la partition vérifie que le fichier commence par la clé de 16 octets attendue et exécute la séquence, au plus une fois par session du programme d’amorçage.
Générez le fichier de clé avec tools/flash_recovery_key.py issu du dépôt du micrologiciel (il écrit un key.bin de 4 Ko), puis téléchargez-le
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
La puce est ensuite vierge : reflashez le ROMFS du cœur HP (-a 6 -D romfs0.img), et le système de fichiers FAT interne se reformate de lui-même au prochain démarrage.
Voir aussi
Pour effacer le système de fichiers FAT interne de la caméra – la solution lorsqu’un mauvais main.py ou un système de fichiers corrompu empêche la caméra de démarrer – voir Effacement du système de fichiers interne.
Pour restaurer le programme d’amorçage de la caméra lui-même, voir Restauration du programme d’amorçage.