14.1.1.3.5.2. OpenMV AE3: dfu-util¶
OpenMV AE3 использует загрузчик openmv_dfu (VID:PID приложения 37C5:16E3, VID:PID DFU 37C5:96E3), но это двухъядерное устройство: Alif Ensemble с высокопроизводительным (HP) и высокоэффективным (HE) ядром Cortex-M55. Чтобы войти в загрузчик, просто подключите камеру: она кратко прослушивает при включении, а флаг -w заставляет dfu-util дождаться её появления. Каждое ядро запускает собственный образ прошивки и имеет собственный ROMFS, доступный только для чтения, поэтому полная прошивка состоит из четырёх образов:
Ядро |
Команда прошивки |
Команда ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Полная прошивка записывает четыре образа, причём --reset указывается только при последней передаче:
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
Чтобы заменить прошивку только одного ядра, прошейте только alt этого ядра (-a 1 для HP, -a 2 для HE); чтобы заменить ROMFS одного ядра, прошейте alt ROMFS этого ядра (-a 6 для HP / romfs0, -a 3 для HE / romfs1).
14.1.1.3.5.2.1. Инициализация Everspin MRAM¶
Специальные сборки OpenMV AE3 заменяют стандартную внешнюю флеш-память – в которой хранится внутренняя файловая система FAT и ROMFS ядра HP – на чип Everspin MRAM. Этот раздел относится только к таким сборкам. Чип Everspin, который никогда не инициализировался или чьи конфигурационные регистры повреждены, не отвечает на запись, поэтому передачи DFU на эти alt завершаются неудачей, пока чип не будет повторно инициализирован.
Загрузчик предоставляет это как ещё один alt DFU: загрузка файла ключа в -a 7 запускает последовательность инициализации (сброс JESD, инициализацию конфигурационных регистров, снятие блокировки и два полных прохода стирания чипа). Сама загрузка ничего не сохраняет – раздел проверяет, что файл начинается с ожидаемого 16-байтового ключа, и выполняет последовательность не более одного раза за сеанс загрузчика.
Сгенерируйте файл ключа с помощью tools/flash_recovery_key.py из репозитория прошивки (он создаёт 4 КБ файл key.bin), затем загрузите его:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
После этого чип чистый: перепрошейте ROMFS ядра HP (-a 6 -D romfs0.img), а внутренняя файловая система FAT переформатируется сама при следующей загрузке.
См. также
Чтобы стереть внутреннюю файловую систему FAT камеры – решение, когда повреждённый main.py или повреждённая файловая система не дают камере загрузиться – см. Стирание внутренней файловой системы.
Чтобы восстановить сам загрузчик камеры, см. Восстановление загрузчика.