14.1.1.3.5.2. OpenMV AE3: dfu-util¶
La OpenMV AE3 usa el bootloader openmv_dfu (VID:PID de aplicación 37C5:16E3, VID:PID DFU 37C5:96E3), pero es un dispositivo de doble núcleo: un Alif Ensemble con un núcleo Cortex-M55 de alto rendimiento (HP) y otro de alta eficiencia (HE). Para entrar en el bootloader, basta con conectar la cámara: escucha brevemente al encenderse, y -w hace que dfu-util espere a que aparezca. Cada núcleo ejecuta su propia imagen de firmware y tiene su propio ROMFS de solo lectura, así que una grabación completa son cuatro imágenes:
Núcleo |
Comando de firmware |
Comando de ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Una grabación completa escribe las cuatro imágenes, con --reset solo en la transferencia 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
Para reemplazar el firmware de un solo núcleo, graba únicamente el alt de ese núcleo (-a 1 para HP, -a 2 para HE); para reemplazar el ROMFS de un núcleo, graba el alt de ROMFS de ese núcleo (-a 6 para HP / romfs0, -a 3 para HE / romfs1).
14.1.1.3.5.2.1. Inicialización de la MRAM Everspin¶
Compilaciones especiales de la OpenMV AE3 reemplazan la memoria flash externa estándar – que contiene el sistema de archivos FAT interno y el ROMFS del núcleo HP – por un chip MRAM Everspin. Esta sección solo aplica a esas compilaciones. Una pieza Everspin que nunca se ha inicializado, o cuyos registros de configuración se han corrompido, no responde a las escrituras, por lo que las transferencias DFU a esos alts fallan hasta que el chip se reinicializa.
El bootloader expone esto como un alt DFU adicional: descargar un archivo de clave a -a 7 activa la secuencia de inicialización (un reinicio JESD, la inicialización de los registros de configuración, la eliminación del bloqueo y dos pasadas completas de borrado del chip). La descarga en sí no almacena nada: la partición comprueba que el archivo empieza con la clave esperada de 16 bytes y ejecuta la secuencia, como máximo una vez por sesión del bootloader.
Genera el archivo de clave con tools/flash_recovery_key.py del repositorio de firmware (escribe un key.bin de 4 KB) y luego descárgalo:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
El chip queda en blanco después: regraba el ROMFS del núcleo HP (-a 6 -D romfs0.img) y el sistema de archivos FAT interno se reformatea solo en el siguiente arranque.
Ver también
Para borrar el sistema de archivos FAT interno de la cámara – la solución cuando un main.py defectuoso o un sistema de archivos corrupto impide que la cámara arranque – consulta Borrado del sistema de archivos interno.
Para restaurar el bootloader de la cámara en sí, consulta Restaurar el bootloader.