14.1.1.3.5.5. Cancellazione del filesystem interno

Ogni camera ha un piccolo filesystem FAT scrivibile (dove risiedono main.py e i file utente, separato da qualsiasi scheda SD). Cancellarlo è la soluzione quando un main.py difettoso o un filesystem corrotto impedisce l’avvio della camera. In OpenMV IDE questo è la casella di spunta Erase internal file system in Load Custom Firmware; l’equivalente da riga di comando differisce a seconda della famiglia di camera.

14.1.1.3.5.5.1. Camere OpenMV con il bootloader openmv_dfu

Il bootloader espone un alt DFU di cancellazione dedicato. Scrivici un piccolo file riempito di zeri (un blocco di 4 KB di zeri è più che sufficiente – cancella l’intestazione del filesystem in modo che la camera si riformatti al boot successivo) 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

Camera (TARGET)

DFU VID:PID

Alt di cancellazione

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 ha un unico filesystem FAT scrivibile condiviso da entrambi i core Cortex-M55, cancellato una sola volta tramite -a 5. Non esiste una cancellazione separata del filesystem per ciascun core.

14.1.1.3.5.5.2. OpenMV Cam RT1062

La RT1062 non ha un bootloader DFU; cancella il master boot record del suo disco FAT (a 0x60400000) con il flashloader SPSDK, che forza una riformattazione al boot successivo:

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

14.1.1.3.5.5.3. Schede Arduino STM32

La Portenta H7, la Giga e la Nicla Vision si cancellano per indirizzo assoluto anziché tramite 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