14.1.1.5. Відновлення завантажувача

Звичайне оновлення мікропрограми ніколи не торкається завантажувача, тому перерване оновлення мікропрограми майже завжди можна відновити: повторно виконайте ту саму команду прошивки з Прошивка мікропрограми (dfu-util -w очікує на пристрій) або повторно запустіть Load Custom Firmware, поки камера ще перебуває у режимі завантажувача. Ця сторінка охоплює рідший випадок, коли сам завантажувач пошкоджений і камера більше не розпізнається як пристрій DFU під час скидання.

Завантажувач розташований в окремому регіоні флеш-пам’яті від мікропрограми та файлової системи, і кожна камера з маркою OpenMV має апаратний шлях повернення, тому камеру практично неможливо зробити назавжди непридатною. Плати Arduino є єдиним винятком – їхні завантажувачі зафіксовані і не підлягають відновленню користувачем.

OpenMV IDE автоматизує всі ці процедури відновлення, проводячи вас через апаратні кроки (перемички, перемикачі, кнопки) по ходу. Розділи нижче документують, що IDE робить для кожної родини камер, на випадок якщо ви хочете виконати відновлення самостійно.

14.1.1.5.1. Камери STM32 (перемичка BOOT–RST)

Для камер OpenMV на базі STM32 (M4, M7, H7, H7 Plus, Pure Thermal):

  1. Від’єднайте камеру.

  2. З’єднайте перемичкою виводи BOOT і RST.

  3. Підключіть знову. Камера тепер розпізнається як ST системний пристрій DFU (0483:df11), незалежно від пошкодженої мікропрограми.

  4. Перепрошийте лише завантажувач – OpenMV IDE Load Custom Firmware з bootloader.bin, або:

    dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.bin
    
  5. Зніміть перемичку та підключіть знову.

  6. Прошийте мікропрограму у звичайному режимі (див. Прошивка мікропрограми).

14.1.1.5.2. OpenMV Cam N6 (перемичка BOOT–VCC)

  1. Від’єднайте камеру.

  2. З’єднайте перемичкою виводи BOOT і VCC.

  3. Підключіть знову. Камера тепер розпізнається як ST системний пристрій DFU (0483:df11), незалежно від пошкодженого завантажувача.

  4. Перепрошийте за допомогою STM32CubeProgrammer (входить до OpenMV SDK), використовуючи дескриптор розмітки флеш-пам’яті, що постачається разом із bootloader.bin – він перезаписує першостадійний завантажувач, завантажувач зовнішньої флеш-пам’яті та завантажувач:

    STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsv
    
  5. Зніміть перемичку та підключіть знову.

  6. Прошийте мікропрограму у звичайному режимі (див. Прошивка мікропрограми).

14.1.1.5.3. OpenMV Cam RT1062

Відновлення захищеного завантажувача RT1062 вимагає переходу в режим ROM serial-download (SDP) чіпа за допомогою перемички, завантаження RAM-завантажувача, а потім перезапису блоку конфігурації флеш-пам’яті, SBL і мікропрограми. Ручна послідовність:

  1. Від’єднайте камеру, з’єднайте перемичкою виводи SBL і 3.3V, та підключіть знову. Чіп розпізнається в режимі SDP ROM (0x1FC9:0x0135).

  2. Завантажте та запустіть RAM-завантажувач:

    sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin
    sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
    
  3. Тепер камера відповідає як завантажувач (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
    
  4. Запишіть мікропрограму та встановіть фьюз джерела завантаження, щоб чіп завантажувався з нового 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
    
  5. Зніміть перемичку та перезапустіть камеру.

Попередження

efuse-program-once 0x06 00000010 – це одноразовий, незворотній запис фьюза, який налаштовує пристрій на завантаження із зовнішньої флеш-пам’яті. Це ще одна причина довірити відновлення завантажувача RT1062 OpenMV IDE, а не виконувати послідовність вручну.

14.1.1.5.4. OpenMV AE3

Захищений завантажувач AE3 не відновлюється через USB DFU. Він перезаписується у MRAM чіпа за допомогою Alif Semiconductor’s SE Tools (входять до 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 при першому підключенні:

Інструмент

Призначення

maintenance

Запит до Secure Enclave (maintenance -opt sesbanner зчитує його версію) і переведення пристрою в режим відновлення.

updateSystemPackage

Оновлення системного пакету Secure Enclave, якщо його версія старіша за ту, що вимагає мікропрограма.

app-gen-toc

Генерація образу таблиці змісту (TOC) (використовується для запису лише застосунку).

app-write-mram

Запис образу(-ів) у MRAM – крок, що відновлює завантажувач.

Процедура:

  1. Підключіться до AE3 за допомогою maintenance; він запитує послідовний порт і тип пристрою, створюючи isp_config_data.cfg та global-cfg.db для інших інструментів.

  2. Якщо системний пакет Secure Enclave застарів, updateSystemPackage оновить його; перезапустіть пристрій за запитом.

  3. app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000" записує завантажувач і TOC у MRAM.

  4. AE3 повторно розпізнається як пристрій DFU 37C5:96E3. Виконайте звичайне прошивання чотирьох образів з OpenMV AE3: dfu-util для завантаження застосунку.

  5. Вимкніть живлення камери та поверніть перемикач відновлення у вимкнений стан.

Примітка

OpenMV IDE обробляє набагато більше, ніж цей щасливий шлях – пошкоджена мікропрограма Secure Enclave, несправний завантажувач та інші стани збоїв потребують власних кроків відновлення, і по дорозі може піти не так багато що. Якщо описані вище ручні кроки не повернули камеру до роботи, скористайтеся OpenMV IDE для її відновлення.