14.1.1.5. Ripristino del bootloader¶
Un normale flash del firmware non tocca mai il bootloader, quindi un aggiornamento del firmware interrotto è quasi sempre recuperabile: rilancia lo stesso comando di flashing da Flashing del firmware (dfu-util -w attende il dispositivo) oppure riesegui Load Custom Firmware mentre la camera è ancora nel suo bootloader. Questa pagina copre il caso più raro in cui il bootloader stesso è danneggiato e la camera non viene più enumerata come dispositivo DFU al reset.
Il bootloader risiede in una regione di flash separata dal firmware e dal filesystem, e ogni camera a marchio OpenMV ha un percorso hardware di recupero, quindi è difficile rendere una camera definitivamente irrecuperabile. Le schede Arduino sono l’unica eccezione: i loro bootloader sono fissi e non ripristinabili dall’utente.
OpenMV IDE automatizza tutte queste procedure di recupero, guidandoti attraverso i passaggi hardware (jumper, interruttori, pulsanti) lungo il percorso. Le sezioni seguenti documentano ciò che fa per ciascuna famiglia di camere, per quando vuoi eseguire il recupero da solo.
14.1.1.5.1. Camere STM32 (jumper BOOT–RST)¶
Per le camere OpenMV STM32 (M4, M7, H7, H7 Plus, Pure Thermal):
Scollega la camera.
Collega un ponticello tra i pin BOOT e RST.
Ricollega. La camera ora viene enumerata come dispositivo DFU di sistema ST (
0483:df11), indipendentemente dal firmware danneggiato.Riscrivi solo il bootloader: OpenMV IDE Load Custom Firmware con
bootloader.bin, oppure:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binRimuovi il ponticello e ricollega.
Esegui il flash del firmware normalmente (vedi Flashing del firmware).
14.1.1.5.2. OpenMV Cam N6 (jumper BOOT–VCC)¶
Scollega la camera.
Collega un ponticello tra i pin BOOT e VCC.
Ricollega. La camera ora viene enumerata come dispositivo DFU di sistema ST (
0483:df11), indipendentemente dal bootloader danneggiato.Riscrivi con STM32CubeProgrammer (incluso nell’SDK OpenMV), usando il descrittore di layout della flash fornito insieme a
bootloader.bin: riscrive il bootloader di primo stadio, il loader della flash esterna e il bootloader:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvRimuovi il ponticello e ricollega.
Esegui il flash del firmware normalmente (vedi Flashing del firmware).
14.1.1.5.3. OpenMV Cam RT1062¶
Ricreare il bootloader sicuro dell’RT1062 richiede di entrare nella modalità ROM serial-download (SDP) del chip con un jumper, predisporre un flashloader in RAM e poi riscrivere il blocco di configurazione della flash, l’SBL e il firmware. La sequenza manuale:
Scollega la camera, ponticella i pin SBL e 3.3V e ricollega. Il chip si enumera in modalità SDP ROM (
0x1FC9:0x0135).Predisponi e avvia il flashloader in RAM:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
La camera ora risponde come flashloader (
0x15A2:0x0073). Configura la flash esterna, scrivi il blocco di configurazione della flash, quindi scrivi l’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
Scrivi il firmware e imposta il fuse della sorgente di avvio in modo che il chip avvii il nuovo SBL dalla flash esterna:
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
Rimuovi il jumper e riavvia la camera spegnendola e riaccendendola.
Avvertimento
efuse-program-once 0x06 00000010 è una scrittura del fuse una tantum e irreversibile che imposta il dispositivo per avviarsi dalla flash esterna. Questo è un altro motivo per lasciare che sia OpenMV IDE a eseguire il recupero del bootloader dell’RT1062 anziché eseguire la sequenza a mano.
14.1.1.5.4. OpenMV AE3¶
Il bootloader sicuro dell’AE3 non viene ripristinato tramite USB DFU. Viene riscritto nella MRAM del chip con i SE Tools di Alif Semiconductor (forniti con OpenMV IDE) attraverso una connessione ISP seriale. Si tratta di una procedura interattiva, riservata al recupero – non un metodo di flashing di routine – ed è soggetta a errori se eseguita a mano; di tutto ciò che è descritto in questa pagina, è quella da lasciare a OpenMV IDE.
Connessione. I SE Tools comunicano con l’AE3 tramite la porta ISP seriale del suo adattatore di debug – un’interfaccia FTDI 0403:6015 o CH340 1A86:55D3, insieme a un J-Link. Il recupero richiede di mettere il dispositivo in modalità di recupero: abilita l’interruttore di recupero presente sulla scheda.
SE Tools. OpenMV IDE include questi eseguibili Alif. Condividono due file di configurazione – isp_config_data.cfg e global-cfg.db – creati da maintenance alla prima connessione:
Strumento |
Scopo |
|---|---|
|
Interroga il Secure Enclave ( |
|
Aggiorna il system package del Secure Enclave quando è più vecchio della versione richiesta dal firmware. |
|
Genera l’immagine table-of-contents (TOC) (usata per una scrittura della sola applicazione). |
|
Scrive una o più immagini nella MRAM – il passaggio che ripristina il bootloader. |
Procedura:
Connettiti all’AE3 con
maintenance; ti chiede la porta seriale e il tipo di dispositivo, creandoisp_config_data.cfgeglobal-cfg.dbper gli altri strumenti.Se il system package del Secure Enclave non è aggiornato,
updateSystemPackagelo aggiorna; riavvia spegnendo e riaccendendo quando richiesto.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"scrive il bootloader e il TOC nella MRAM.L’AE3 si ri-enumera come dispositivo DFU
37C5:96E3. Esegui il normale flash a quattro immagini da OpenMV AE3: dfu-util per caricare l’applicazione.Riavvia la camera spegnendola e riaccendendola e riporta l’interruttore di recupero in posizione disattivata.
Nota
OpenMV IDE gestisce molto più di questo percorso ideale – un firmware del Secure Enclave corrotto, un bootloader danneggiato e gli altri stati di errore richiedono ciascuno i propri passaggi di recupero, e molte cose possono andare storte lungo il percorso. Se i passaggi manuali descritti sopra non riportano in vita la camera, usa OpenMV IDE per recuperarla.