14.1.1.5. Obnovení bootloaderu¶
Běžné nahrání firmwaru se nikdy nedotkne bootloaderu, takže přerušená aktualizace firmwaru je téměř vždy obnovitelná: znovu spusťte stejný příkaz pro nahrávání z Nahrání firmwaru (dfu-util -w čeká na zařízení) nebo znovu spusťte Load Custom Firmware, dokud je kamera stále ve svém bootloaderu. Tato stránka se zabývá vzácnějším případem, kdy je poškozen samotný bootloader a kamera se po resetu již nehlásí jako zařízení DFU.
Bootloader sídlí v samostatné oblasti flash paměti oddělené od firmwaru a souborového systému a každá kamera značky OpenMV má hardwarovou cestu zpět, takže je obtížné kameru učinit trvale neobnovitelnou. Jedinou výjimkou jsou desky Arduino – jejich bootloadery jsou pevné a uživatelsky neobnovitelné.
OpenMV IDE automatizuje všechny tyto postupy obnovy a provádí vás hardwarovými kroky (propojky, přepínače, tlačítka) po celou dobu. Níže uvedené části dokumentují, co dělá pro jednotlivé rodiny kamer, pro případ, že chcete obnovu provést sami.
14.1.1.5.1. Kamery STM32 (propojka BOOT–RST)¶
Pro kamery STM32 OpenMV (M4, M7, H7, H7 Plus, Pure Thermal):
Odpojte kameru.
Propojte propojovacím vodičem piny BOOT a RST.
Znovu připojte. Kamera se nyní hlásí jako systémové zařízení ST DFU (
0483:df11), nezávisle na poškozeném firmwaru.Znovu nahrajte pouze bootloader – OpenMV IDE Load Custom Firmware se souborem
bootloader.bin, nebo:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binOdstraňte propojku a znovu připojte.
Nahrajte firmware běžným způsobem (viz Nahrání firmwaru).
14.1.1.5.2. OpenMV Cam N6 (propojka BOOT–VCC)¶
Odpojte kameru.
Propojte propojovacím vodičem piny BOOT a VCC.
Znovu připojte. Kamera se nyní hlásí jako systémové zařízení ST DFU (
0483:df11), nezávisle na poškozeném bootloaderu.Znovu nahrajte pomocí STM32CubeProgrammer (součást OpenMV SDK), s použitím deskriptoru rozložení flash paměti dodávaného spolu se souborem
bootloader.bin– přepíše bootloader první úrovně, zavaděč externí flash paměti a bootloader:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvOdstraňte propojku a znovu připojte.
Nahrajte firmware běžným způsobem (viz Nahrání firmwaru).
14.1.1.5.3. OpenMV Cam RT1062¶
Obnovení zabezpečeného bootloaderu RT1062 vyžaduje uvedení čipu do režimu sériového stahování z ROM (SDP) pomocí propojky, přípravu RAM flashloaderu a poté přepsání konfiguračního bloku flash paměti, SBL a firmwaru. Manuální postup:
Odpojte kameru, propojte piny SBL a 3.3V a znovu připojte. Čip se hlásí v režimu SDP ROM (
0x1FC9:0x0135).Připravte a spusťte RAM flashloader:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
Kamera se nyní hlásí jako flashloader (
0x15A2:0x0073). Nakonfigurujte externí flash paměť, zapište konfigurační blok flash paměti a poté zapište 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
Zapište firmware a nastavte pojistku zdroje bootu, aby čip nabootoval nový SBL z externí flash paměti:
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
Odstraňte propojku a vypněte a zapněte kameru.
Varování
efuse-program-once 0x06 00000010 je jednorázový, nevratný zápis pojistky, který nastaví zařízení tak, aby bootovalo z externí flash paměti. To je další důvod, proč nechat OpenMV IDE provést obnovu bootloaderu RT1062 namísto ručního spouštění této sekvence.
14.1.1.5.4. OpenMV AE3¶
Zabezpečený bootloader AE3 se neobnovuje přes USB DFU. Přepisuje se do MRAM čipu pomocí SE Tools od Alif Semiconductor (součást OpenMV IDE) přes sériové ISP připojení. Jedná se o interaktivní postup určený pouze pro obnovu – nikoli o běžnou metodu nahrávání – a ručně je náchylný k chybám; ze všeho na této stránce je to ten postup, který je nejlepší přenechat OpenMV IDE.
Připojení. SE Tools komunikují s AE3 přes sériový ISP port jeho ladicího adaptéru – rozhraní FTDI 0403:6015 nebo CH340 1A86:55D3, společně s J-Link. Obnova vyžaduje uvedení zařízení do režimu obnovy: zapněte vestavěný přepínač obnovy.
SE Tools. OpenMV IDE obsahuje tyto spustitelné soubory Alif. Sdílejí dva konfigurační soubory – isp_config_data.cfg a global-cfg.db – vytvořené nástrojem maintenance při prvním připojení:
Nástroj |
Účel |
|---|---|
|
Dotazování Secure Enclave ( |
|
Aktualizace systémového balíčku Secure Enclave, když je starší než verze, kterou firmware vyžaduje. |
|
Vygenerování obrazu obsahu (table-of-contents, TOC) (používaného pro zápis pouze aplikace). |
|
Zápis obrazu/obrazů do MRAM – krok, který obnoví bootloader. |
Postup:
Připojte se k AE3 pomocí
maintenance; vyzve k zadání sériového portu a typu zařízení a vytvoříisp_config_data.cfgaglobal-cfg.dbpro ostatní nástroje.Pokud je systémový balíček Secure Enclave zastaralý,
updateSystemPackagejej aktualizuje; po výzvě vypněte a zapněte zařízení.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"zapíše bootloader a TOC do MRAM.AE3 se znovu vyčíslí jako zařízení DFU
37C5:96E3. Spusťte běžné nahrání čtyř obrazů z OpenMV AE3: dfu-util pro načtení aplikace.Vypněte a zapněte kameru a vraťte přepínač obnovy zpět do vypnuté polohy.
Poznámka
OpenMV IDE zvládá mnohem víc než jen tento ideální průběh – poškozený firmware Secure Enclave, vadný bootloader a další chybové stavy vyžadují každý své vlastní kroky obnovy a po cestě se může mnoho věcí pokazit. Pokud výše uvedené manuální kroky kameru neobnoví, použijte k jejímu obnovení OpenMV IDE.