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. Ініціалізація 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 або зіпсована файлова система не дозволяють камері завантажитися – див. Стирання внутрішньої файлової системи.
Щоб відновити сам завантажувач камери, див. Відновлення завантажувача.