14.1.1.6. 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.6.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.6.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.6.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.6.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.