14.1.1.3.5.5. Borrado del sistema de archivos interno

Cada cámara tiene un pequeño sistema de archivos FAT escribible (donde residen main.py y los archivos del usuario, independiente de cualquier tarjeta SD). Borrarlo es la solución cuando un main.py defectuoso o un sistema de archivos corrupto impiden que la cámara arranque. En OpenMV IDE esto es la casilla Erase internal file system en Load Custom Firmware; el equivalente en la línea de comandos difiere según la familia de cámara.

14.1.1.3.5.5.1. Cámaras OpenMV con el gestor de arranque openmv_dfu

El gestor de arranque expone un alt de borrado DFU dedicado. Escribe en él un pequeño archivo lleno de ceros (un bloque de 4 KB de ceros es más que suficiente, ya que borra la cabecera del sistema de archivos para que la cámara lo reformatee en el siguiente arranque) con --reset:

dd if=/dev/zero of=erase.bin bs=4096 count=1
dfu-util -w -d ,<DFU VID:PID> -a <erase alt> --reset -D erase.bin

Cámara (TARGET)

VID:PID de DFU

Alt de borrado

OpenMV Cam M4 (OPENMV2)

37C5:9202

-a 1

OpenMV Cam M7 (OPENMV3)

37C5:9203

-a 1

OpenMV Cam H7 (OPENMV4)

37C5:9204

-a 1

OpenMV Cam H7 Plus (OPENMV4P)

37C5:924A

-a 3

OpenMV Pure Thermal (OPENMVPT)

37C5:9205

-a 3

OpenMV Cam N6 (OPENMV_N6)

37C5:9206

-a 2

OpenMV AE3 (OPENMV_AE3)

37C5:96E3

-a 5

La OpenMV AE3 tiene un único sistema de archivos FAT escribible compartido por ambos núcleos Cortex-M55, que se borra de una sola vez mediante -a 5. No hay un borrado de sistema de archivos por núcleo aparte.

14.1.1.3.5.5.2. OpenMV Cam RT1062

La RT1062 no tiene gestor de arranque DFU; borra el registro de arranque maestro de su disco FAT (en 0x60400000) con el flashloader de SPSDK, lo que fuerza un reformateo en el siguiente arranque:

blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60400000 0x1000

14.1.1.3.5.5.3. Placas Arduino STM32

La Portenta H7, la Giga y la Nicla Vision se borran por dirección absoluta en lugar de por un alt:

dd if=/dev/zero of=erase.bin bs=4096 count=1
dfu-util -w -d ,<DFU VID:PID> -a 0 -s 0x08020000 -D erase.bin
dfu-util -w -d ,<DFU VID:PID> -a 1 -s 0x90000000 --reset -D erase.bin