14.1.1.3.5.5. Стирание внутренней файловой системы

Каждая камера имеет небольшую перезаписываемую файловую систему FAT (где живут main.py и пользовательские файлы, отдельно от любой SD-карты). Её стирание – это решение, когда плохой main.py или повреждённая файловая система не дают камере загрузиться. В OpenMV IDE это флажок Erase internal file system в Load Custom Firmware; эквивалент для командной строки различается в зависимости от семейства камер.

14.1.1.3.5.5.1. Камеры OpenMV с загрузчиком openmv_dfu

Загрузчик предоставляет выделенный erase DFU alt. Запишите в него небольшой файл, заполненный нулями (блока в 4 КБ нулей достаточно – он очищает заголовок файловой системы, чтобы камера переформатировала её при следующей загрузке) с --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

Камера (TARGET)

DFU VID:PID

Erase alt

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

OpenMV AE3 имеет единую перезаписываемую файловую систему FAT, разделяемую обоими ядрами Cortex-M55, стираемую один раз через -a 5. Отдельного стирания файловой системы для каждого ядра нет.

14.1.1.3.5.5.2. OpenMV Cam RT1062

У RT1062 нет DFU-загрузчика; сотрите главную загрузочную запись его FAT-диска (по адресу 0x60400000) с помощью флешлоадера SPSDK, что принудительно вызывает переформатирование при следующей загрузке:

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

14.1.1.3.5.5.3. Платы Arduino на STM32

Portenta H7, Giga и Nicla Vision стираются по абсолютному адресу, а не по 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