14.1.1.5. Vraćanje pokretača (bootloader)¶
Uobičajeni zapis ugrađenog programa nikada ne dira pokretač (bootloader), pa je prekinuto ažuriranje ugrađenog programa gotovo uvijek moguće oporaviti: ponovno pokrenite istu naredbu za zapisivanje iz Programiranje firmvera (dfu-util -w čeka na uređaj) ili ponovno pokrenite Load Custom Firmware dok je kamera još uvijek u svom pokretaču. Ova stranica pokriva rjeđi slučaj u kojem je sam pokretač oštećen i kamera se pri ponovnom pokretanju više ne prijavljuje kao DFU uređaj.
Pokretač (bootloader) živi u zasebnoj regiji flash memorije, odvojeno od ugrađenog programa i datotečnog sustava, a svaka kamera s OpenMV oznakom ima hardverski put natrag, pa je kameru teško učiniti trajno neoporavljivom. Arduino pločice jedina su iznimka – njihovi su pokretači fiksni i korisnik ih ne može vratiti.
OpenMV IDE automatizira sve ove postupke oporavka, vodeći vas kroz hardverske korake (premosnici, prekidači, gumbi) usput. Odjeljci u nastavku dokumentiraju što radi za svaku obitelj kamera, za slučaj da oporavak želite izvesti sami.
14.1.1.5.1. STM32 kamere (BOOT–RST premosnik)¶
Za STM32 OpenMV kamere (M4, M7, H7, H7 Plus, Pure Thermal):
Odspojite kameru.
Spojite premosni vod između pinova BOOT i RST.
Ponovno spojite. Kamera se sada prijavljuje kao ST sistemski DFU uređaj (
0483:df11), neovisno o oštećenom ugrađenom programu.Ponovno zapišite samo pokretač – OpenMV IDE Load Custom Firmware s
bootloader.bin, ili:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binUklonite premosnik i ponovno spojite.
Normalno zapišite ugrađeni program (vidi Programiranje firmvera).
14.1.1.5.2. OpenMV Cam N6 (BOOT–VCC premosnik)¶
Odspojite kameru.
Spojite premosni vod između pinova BOOT i VCC.
Ponovno spojite. Kamera se sada prijavljuje kao ST sistemski DFU uređaj (
0483:df11), neovisno o oštećenom pokretaču.Ponovno zapišite pomoću STM32CubeProgrammer (uključen u OpenMV SDK), koristeći deskriptor rasporeda flash memorije isporučen uz
bootloader.bin– on ponovno zapisuje pokretač prve faze, učitavač vanjske flash memorije i pokretač:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvUklonite premosnik i ponovno spojite.
Normalno zapišite ugrađeni program (vidi Programiranje firmvera).
14.1.1.5.3. OpenMV Cam RT1062¶
Ponovno stvaranje sigurnog pokretača RT1062 zahtijeva ulazak u ROM serijski preuzimni (SDP) način čipa pomoću premosnika, pripremu RAM flash učitavača, a zatim ponovno zapisivanje konfiguracijskog bloka flash memorije, SBL-a i ugrađenog programa. Ručni slijed:
Odspojite kameru, premostite pinove SBL i 3.3V, te ponovno spojite. Čip se prijavljuje u SDP ROM načinu (
0x1FC9:0x0135).Pripremite i pokrenite RAM flash učitavač:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
Kamera se sada odaziva kao flash učitavač (
0x15A2:0x0073). Konfigurirajte vanjsku flash memoriju, zapišite konfiguracijski blok flash memorije, a zatim zapišite 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šite ugrađeni program i postavite osigurač izvora pokretanja kako bi čip pokrenuo novi SBL iz vanjske flash memorije:
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
Uklonite premosnik i isključite te ponovno uključite kameru.
Upozorenje
efuse-program-once 0x06 00000010 je jednokratno, nepovratno zapisivanje osigurača koje uređaj postavlja na pokretanje iz vanjske flash memorije. Ovo je još jedan razlog da oporavak pokretača RT1062 prepustite OpenMV IDE-u umjesto da slijed izvodite ručno.
14.1.1.5.4. OpenMV AE3¶
Sigurni pokretač AE3 ne vraća se preko USB DFU. Ponovno se zapisuje u MRAM čipa pomoću Alif Semiconductor SE Tools (priloženo uz OpenMV IDE) preko serijske ISP veze. Ovo je interaktivni postupak namijenjen samo oporavku – nije rutinska metoda zapisivanja – i sklon je pogreškama pri ručnom izvođenju; od svega na ovoj stranici, ovo je postupak koji treba prepustiti OpenMV IDE-u.
Veza. SE Tools komuniciraju s AE3 preko serijskog ISP priključka njegovog adaptera za otklanjanje pogrešaka – FTDI 0403:6015 ili CH340 1A86:55D3 sučelje, zajedno s J-Link. Oporavak zahtijeva postavljanje uređaja u način oporavka: omogućite ugrađeni prekidač za oporavak.
SE Tools. OpenMV IDE uključuje ove Alif izvršne datoteke. Dijele dvije konfiguracijske datoteke – isp_config_data.cfg i global-cfg.db – koje maintenance stvara pri prvom spajanju:
Alat |
Svrha |
|---|---|
|
Upit Secure Enclaveu ( |
|
Ažuriranje sistemskog paketa Secure Enclavea kada je stariji od verzije koju zahtijeva ugrađeni program. |
|
Generiranje slike sadržaja (TOC) (koristi se za zapisivanje samo aplikacije). |
|
Zapisivanje slike (slika) u MRAM – korak koji vraća pokretač. |
Postupak:
Spojite se na AE3 pomoću
maintenance; traži serijski priključak i tip uređaja, stvarajućiisp_config_data.cfgiglobal-cfg.dbza ostale alate.Ako je sistemski paket Secure Enclavea zastario,
updateSystemPackagega ažurira; isključite i ponovno uključite kada vas se zatraži.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"zapisuje pokretač i TOC u MRAM.AE3 se ponovno prijavljuje kao DFU uređaj
37C5:96E3. Pokrenite normalno zapisivanje četiriju slika iz OpenMV AE3: dfu-util za učitavanje aplikacije.Isključite i ponovno uključite kameru te ponovno isključite prekidač za oporavak.
Napomena
OpenMV IDE obrađuje mnogo više od ovog uspješnog puta – oštećeni ugrađeni program Secure Enclavea, neispravan pokretač i druga stanja kvarova zahtijevaju svaki svoje korake oporavka, a usput puno toga može poći po zlu. Ako ručni koraci iznad ne vrate kameru, upotrijebite OpenMV IDE za njezin oporavak.