14.1.1.5. A rendszerbetöltő helyreállítása¶
A normál firmware-flashelés sosem érinti a rendszerbetöltőt, ezért egy megszakadt firmware-frissítés szinte mindig helyreállítható: futtasd újra ugyanazt a flashelési parancsot innen: A firmware felvillantása (flashelése) (a dfu-util -w megvárja az eszközt), vagy futtasd újra a Load Custom Firmware funkciót, miközben a kamera még a rendszerbetöltőjében van. Ez az oldal azt a ritkább esetet tárgyalja, amikor maga a rendszerbetöltő sérül meg, és a kamera többé nem jelentkezik DFU-eszközként újraindításkor.
A rendszerbetöltő a firmware-től és a fájlrendszertől elkülönített flash memória-régióban él, és minden OpenMV márkájú kamerának van hardveres visszaútja, így egy kamerát nehéz tartósan helyreállíthatatlanná tenni. Az Arduino-lapok jelentik az egyetlen kivételt – ezek rendszerbetöltői rögzítettek és a felhasználó által nem állíthatók helyre.
Az OpenMV IDE automatizálja mindezeket a helyreállítási eljárásokat, és végigvezet a hardveres lépéseken (jumperek, kapcsolók, gombok). Az alábbi szakaszok azt dokumentálják, mit tesz az egyes kameracsaládok esetében, arra az esetre, ha magad szeretnéd elvégezni a helyreállítást.
14.1.1.5.1. STM32 kamerák (BOOT–RST jumper)¶
Az STM32 OpenMV kamerákhoz (M4, M7, H7, H7 Plus, Pure Thermal):
Csatlakoztasd le a kamerát.
Köss egy jumpervezetéket a BOOT és RST lábak közé.
Csatlakoztasd vissza. A kamera most az ST rendszer-DFU-eszközként (
0483:df11) jelentkezik be, függetlenül a sérült firmware-től.Flasheld újra csak a rendszerbetöltőt – OpenMV IDE Load Custom Firmware a
bootloader.binfájllal, vagy:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binTávolítsd el a jumpert, és csatlakoztasd vissza.
Flasheld a firmware-t a szokásos módon (lásd A firmware felvillantása (flashelése)).
14.1.1.5.2. OpenMV Cam N6 (BOOT–VCC jumper)¶
Csatlakoztasd le a kamerát.
Köss egy jumpervezetéket a BOOT és VCC lábak közé.
Csatlakoztasd vissza. A kamera most az ST rendszer-DFU-eszközként (
0483:df11) jelentkezik be, függetlenül a sérült rendszerbetöltőtől.Flasheld újra az STM32CubeProgrammerrel (az OpenMV SDK-ban benne van), az
bootloader.binmellett szállított flash-elrendezés leíró használatával – ez újraírja az első fokozatú rendszerbetöltőt, a külső flash betöltőt és a rendszerbetöltőt:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvTávolítsd el a jumpert, és csatlakoztasd vissza.
Flasheld a firmware-t a szokásos módon (lásd A firmware felvillantása (flashelése)).
14.1.1.5.3. OpenMV Cam RT1062¶
Az RT1062 biztonságos rendszerbetöltőjének újraelőállításához be kell léptetni a chipet a ROM soros letöltési (SDP) módjába egy jumperrel, fel kell készíteni egy RAM-flashbetöltőt, majd újra kell írni a flash konfigurációs blokkot, az SBL-t és a firmware-t. A kézi műveletsor:
Csatlakoztasd le a kamerát, köss jumpert az SBL és a 3.3V lábak közé, és csatlakoztasd vissza. A chip SDP ROM módban (
0x1FC9:0x0135) jelentkezik be.Készítsd elő és indítsd el a RAM-flashbetöltőt:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
A kamera most a flashbetöltőként (
0x15A2:0x0073) válaszol. Konfiguráld a külső flash memóriát, írd be a flash konfigurációs blokkot, majd írd be az SBL-t: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
Írd be a firmware-t, és állítsd be a boot-forrás biztosítékot, hogy a chip az új SBL-t a külső flash memóriáról indítsa:
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
Távolítsd el a jumpert, és kapcsold ki-be a kamerát.
Figyelem
Az efuse-program-once 0x06 00000010 egy egyszeri, visszafordíthatatlan biztosítékírás, amely az eszközt a külső flash memóriáról való indításra állítja be. Ez egy újabb ok arra, hogy az RT1062 rendszerbetöltő-helyreállítást inkább az OpenMV IDE-vel végeztesd, mintsem a műveletsort kézzel futtasd.
14.1.1.5.4. OpenMV AE3¶
Az AE3 biztonságos rendszerbetöltője nem állítható helyre USB DFU-n keresztül. Ehelyett az Alif Semiconductor SE Tools eszközeivel (az OpenMV IDE-be csomagolva) íródik újra a chip MRAM-jába, soros ISP-kapcsolaton keresztül. Ez egy interaktív, kizárólag helyreállításra szolgáló eljárás – nem rutinszerű flashelési módszer –, és kézzel hibára hajlamos; az ezen az oldalon szereplő mindenből ez az, amit érdemes az OpenMV IDE-re bízni.
Kapcsolat. Az SE Tools az AE3-mal a hibakeresési adapterének soros ISP-portján keresztül kommunikál – egy FTDI 0403:6015 vagy egy CH340 1A86:55D3 interfészen, egy J-Linkkel együtt. A helyreállításhoz az eszközt helyreállítási módba kell tenni: engedélyezd a beépített helyreállítási kapcsolót.
SE Tools. Az OpenMV IDE ezeket az Alif futtatható állományokat csomagolja. Két közös konfigurációs fájlt használnak – isp_config_data.cfg és global-cfg.db –, amelyeket a maintenance hoz létre az első csatlakozáskor:
Eszköz |
Cél |
|---|---|
|
Lekérdezi a Secure Enclave-et (a |
|
Frissíti a Secure Enclave rendszercsomagját, ha az régebbi, mint amit a firmware megkövetel. |
|
Létrehozza a tartalomjegyzék (TOC) képet (egy csak alkalmazást érintő íráshoz használva). |
|
Kép(ek) MRAM-ba írása – ez a lépés állítja helyre a rendszerbetöltőt. |
Eljárás:
Csatlakozz az AE3-hoz a
maintenanceparanccsal; ez bekéri a soros portot és az eszköztípust, létrehozva a többi eszköz számára azisp_config_data.cfgésglobal-cfg.dbfájlokat.Ha a Secure Enclave rendszercsomagja elavult, az
updateSystemPackagefrissíti azt; kapcsold ki-be az áramellátást, amikor felszólít rá.Az
app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"beírja a rendszerbetöltőt és a TOC-ot az MRAM-ba.Az AE3 újra
37C5:96E3DFU-eszközként jelentkezik be. Futtasd a szokásos négyképes flashelést innen: OpenMV AE3: dfu-util, hogy betöltsd az alkalmazást.Kapcsold ki-be a kamerát, és kapcsold vissza ki állásba a helyreállítási kapcsolót.
Megjegyzés
Az OpenMV IDE ennél a problémamentes esetnél sokkal többet kezel – egy sérült Secure Enclave firmware, egy hibás rendszerbetöltő és a többi hibaállapot mindegyike saját helyreállítási lépéseket igényel, és sok minden elromolhat útközben. Ha a fenti kézi lépések nem hozzák vissza a kamerát, használd az OpenMV IDE-t a helyreállításához.