14.1.1.6. Восстановление загрузчика#
Обычная прошивка прошивки никогда не затрагивает загрузчик, поэтому прерванное обновление прошивки почти всегда поддаётся восстановлению: повторно запустите ту же команду прошивки из Прошивка firmware (dfu-util -w ожидает появления устройства) или снова выполните Load Custom Firmware, пока камера всё ещё находится в загрузчике. На этой странице рассматривается более редкий случай, когда повреждён сам загрузчик и камера больше не определяется как DFU-устройство при сбросе.
Загрузчик располагается в отдельной области флеш-памяти, отдельной от прошивки и файловой системы, и каждая камера под маркой OpenMV имеет аппаратный путь восстановления, поэтому привести камеру в безвозвратно неработоспособное состояние сложно. Платы Arduino – единственное исключение: их загрузчики фиксированы и не подлежат восстановлению пользователем.
OpenMV IDE автоматизирует все эти процедуры восстановления, направляя вас по аппаратным шагам (перемычки, переключатели, кнопки) по ходу дела. В разделах ниже описано, что она делает для каждого семейства камер, на случай, если вы захотите выполнить восстановление самостоятельно.
14.1.1.6.1. Камеры STM32 (перемычка BOOT–RST)#
Для камер OpenMV на STM32 (M4, M7, H7, H7 Plus, Pure Thermal):
Отключите камеру.
Соедините перемычкой выводы BOOT и RST.
Подключите камеру заново. Теперь она определяется как системное DFU-устройство ST (
0483:df11), независимо от повреждённой прошивки.Перепрошейте только загрузчик – через OpenMV IDE Load Custom Firmware с
bootloader.bin, либо:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binСнимите перемычку и подключите камеру заново.
Прошейте прошивку обычным образом (см. Прошивка firmware).
14.1.1.6.2. OpenMV Cam N6 (перемычка BOOT–VCC)#
Отключите камеру.
Соедините перемычкой выводы BOOT и VCC.
Подключите камеру заново. Теперь она определяется как системное DFU-устройство ST (
0483:df11), независимо от повреждённого загрузчика.Перепрошейте с помощью STM32CubeProgrammer (входит в состав OpenMV SDK), используя дескриптор разметки флеш-памяти, поставляемый вместе с
bootloader.bin– он перезаписывает загрузчик первого этапа, загрузчик внешней флеш-памяти и сам загрузчик:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvСнимите перемычку и подключите камеру заново.
Прошейте прошивку обычным образом (см. Прошивка firmware).
14.1.1.6.3. OpenMV Cam RT1062#
Восстановление защищённого загрузчика RT1062 требует перевода чипа в режим последовательной загрузки из ROM (SDP) с помощью перемычки, размещения RAM-флешлоадера, а затем перезаписи блока конфигурации флеш-памяти, SBL и прошивки. Ручная последовательность действий:
Отключите камеру, соедините перемычкой выводы SBL и 3.3V и подключите её заново. Чип определяется в режиме SDP ROM (
0x1FC9:0x0135).Разместите и запустите RAM-флешлоадер:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
Теперь камера отвечает как флешлоадер (
0x15A2:0x0073). Настройте внешнюю флеш-память, запишите блок конфигурации флеш-памяти, затем запишите SBL:blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xC0000008 word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60000000 0x1000 blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xF000000F word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60001000 <sbl_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60001000 blhost_flash_loader.bin
Запишите прошивку и установите fuse источника загрузки, чтобы чип загружал новый SBL из внешней флеш-памяти:
blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60040000 <firmware_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60040000 firmware.bin blhost -u 0x15A2,0x0073 -- efuse-program-once 0x06 00000010 blhost -u 0x15A2,0x0073 -- reset
Снимите перемычку и перезапустите питание камеры.
Предупреждение
efuse-program-once 0x06 00000010 – это однократная, необратимая запись fuse, которая настраивает устройство на загрузку из внешней флеш-памяти. Это ещё одна причина доверить восстановление загрузчика RT1062 программе OpenMV IDE, а не выполнять последовательность вручную.
14.1.1.6.4. OpenMV AE3#
Защищённый загрузчик AE3 не восстанавливается через USB DFU. Он перезаписывается в MRAM чипа с помощью SE Tools от Alif Semiconductor (поставляемых вместе с OpenMV IDE) по последовательному соединению ISP. Это интерактивная процедура, предназначенная только для восстановления – не штатный метод прошивки – и она подвержена ошибкам при ручном выполнении; из всего на этой странице именно её стоит доверить OpenMV IDE.
Подключение. SE Tools взаимодействуют с AE3 через последовательный порт ISP его отладочного адаптера – интерфейс FTDI 0403:6015 или CH340 1A86:55D3, совместно с J-Link. Для восстановления требуется перевести устройство в режим восстановления: включите встроенный переключатель восстановления.
SE Tools. OpenMV IDE включает эти исполняемые файлы Alif. Они используют два общих файла конфигурации – isp_config_data.cfg и global-cfg.db – создаваемые maintenance при первом подключении:
Инструмент | Назначение |
|---|---|
| Запрос Secure Enclave ( |
| Обновление системного пакета Secure Enclave, когда он старше версии, требуемой прошивкой. |
| Генерация образа оглавления (TOC) (используется для записи только приложения). |
| Запись образа(ов) в MRAM – шаг, который восстанавливает загрузчик. |
Процедура:
Подключитесь к AE3 с помощью
maintenance; он запрашивает последовательный порт и тип устройства, создаваяisp_config_data.cfgиglobal-cfg.dbдля остальных инструментов.Если системный пакет Secure Enclave устарел,
updateSystemPackageобновляет его; перезапустите питание по запросу.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"записывает загрузчик и TOC в MRAM.AE3 повторно определяется как DFU-устройство
37C5:96E3. Выполните обычную прошивку четырёх образов из OpenMV AE3: dfu-util, чтобы загрузить приложение.Перезапустите питание камеры и снова выключите переключатель восстановления.
Примечание
OpenMV IDE справляется с гораздо большим, чем этот безоблачный сценарий – повреждённая прошивка Secure Enclave, неисправный загрузчик и другие состояния отказа требуют собственных шагов восстановления, и многое может пойти не так по ходу дела. Если приведённые выше ручные шаги не возвращают камеру к жизни, используйте OpenMV IDE для её восстановления.