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

-a 1 -D firmware_M55_HP.bin

-a 6 -D romfs0.img

M55-HE

-a 2 -D firmware_M55_HE.bin

-a 3 -D romfs1.img

Повна прошивка записує чотири образи, причому --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. Ініціалізація MRAM Everspin

Спеціальні збірки OpenMV AE3 замінюють стандартну зовнішню флеш-пам’ять – яка зберігає внутрішню FAT-файлову систему та ROMFS ядра HP – мікросхемою MRAM Everspin. Цей розділ стосується лише таких збірок. Компонент Everspin, який ніколи не ініціалізувався або чиї конфігураційні регістри були пошкоджені, не відповідає на записи, тому DFU-передавання до відповідних alt завершуються помилкою, поки мікросхему не буде повторно ініціалізовано.

Завантажувач надає це як ще один DFU alt: завантаження ключового файлу в -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 або зіпсована файлова система не дозволяють камері завантажитися – див. Стирання внутрішньої файлової системи.

Щоб відновити сам завантажувач камери, див. Відновлення завантажувача.