14.1.1.3. Flashing del firmware¶
Una volta ottenuto un firmware.bin (e il relativo romfs<n>.img) da Compilazione del firmware, programmalo sulla camera. OpenMV IDE è il metodo consigliato; la procedura da riga di comando varia a seconda della famiglia di camera ed è documentata per ciascuna famiglia nelle pagine collegate in fondo. Il bootloader stesso viene ripristinato separatamente – vedi Ripristino del bootloader.
14.1.1.3.1. OpenMV IDE: Load Custom Firmware (consigliato)¶
OpenMV IDE include tutti gli strumenti di flashing (dfu-util, gli strumenti NXP SPSDK, gli Alif SE Tools, gli strumenti STM32), installa i driver USB necessari su Windows, gestisce l’ingresso nel bootloader e seleziona il comando corretto per la camera collegata. È il modo consigliato per eseguire il flashing di una build personalizzata.
Collega la camera all’USB (non è necessario fare clic su Connect).
Tools -> Load Custom Firmware.
Nella finestra di dialogo, imposta Firmware Path sul
build/<TARGET>/bin/firmware.bindella tua build.Facoltativamente seleziona Erase internal file system per cancellare il filesystem FAT interno della camera (vedi Cancellazione del filesystem interno per quando e perché farlo).
Facoltativamente seleziona Reset ROMFS file system per riflashare il ROMFS predefinito (disabilitato se hai selezionato direttamente un file
.img).Fai clic su Run. L’IDE riavvia la camera nel suo bootloader, mostra il comando di flashing esatto e una barra di avanzamento, e riavvia la camera con il nuovo firmware. Attendi il LED blu di self-test; la camera viene quindi rienumerata normalmente.
È disponibile anche Tools -> Force enter OpenMV Cam bootloader per mettere manualmente la camera in modalità DFU prima del flashing.
14.1.1.3.2. Windows: installazione dei driver USB¶
Windows non dispone di un driver integrato per le interfacce USB DFU, SDP e ISP della camera, quindi gli strumenti da riga di comando (dfu-util, gli strumenti NXP SPSDK, gli Alif SE Tools) non possono rilevare il dispositivo finché non viene associato a esso un driver WinUSB. Il programma di installazione Windows di OpenMV IDE installa tutti questi driver, quindi l’approccio più semplice è installare OpenMV IDE una volta – dopodiché funzionano sia l’IDE sia gli strumenti da riga di comando. Per questo il flashing tramite GUI riesce su una macchina Windows appena configurata mentre un dfu-util autonomo no.
Se installare l’IDE non è un’opzione, esegui il programma di installazione del driver corrispondente dalla directory share/qtcreator/drivers/ di OpenMV IDE come Amministratore:
Installer del driver |
Dispositivi USB a cui si associa |
|---|---|
|
Dispositivi OpenMV DFU e le interfacce SPSDK dell’RT1062 ( |
|
Dispositivi Arduino DFU ( |
|
L’adattatore FTDI |
|
Il dispositivo ST |
In alternativa, associa WinUSB allo specifico VID:PID con Zadig o pnputil. Senza questo, nessun flashing da riga di comando su Windows funziona. Linux e macOS non richiedono alcuna installazione di driver (Linux richiede solo le regole udev).
14.1.1.3.3. Flashing via SWD (make deploy)¶
Se una sonda di debug è già collegata alla camera – come avviene per il debug – il ciclo edit-build-flash più veloce evita l’USB DFU e programma il chip direttamente via SWD. Sulle camere STM32:
make -j$(nproc) TARGET=<TARGET> deploy
Questo esegue il flashing del firmware appena compilato tramite STM32_Programmer_CLI (dall’SDK) attraverso la sonda collegata. Non c’è ingresso nel bootloader, né rienumerazione USB, né cambio di cavi: compila, esegui deploy e la camera si riavvia eseguendo il nuovo codice. Questo è il flusso di lavoro consigliato durante lo sviluppo attivo del firmware. Usa DFU o OpenMV IDE quando esegui il flashing senza una sonda o quando distribuisci il firmware ad altri.
14.1.1.3.4. Ingresso in modalità bootloader / DFU¶
Il flashing richiede che la camera sia in modalità bootloader / DFU. Ci sono tre modi per accedervi:
All’accensione (qualsiasi camera). Ogni camera esegue il suo bootloader per un breve intervallo all’accensione, prima che il firmware si avvii – collega la camera all’USB e il bootloader resta brevemente in ascolto.
Dall’IDE (qualsiasi camera). Con la camera collegata, Tools -> Force enter OpenMV Cam bootloader la riavvia in modalità bootloader.
Pulsante di reset Arduino. Sulle schede Arduino, fai doppio clic sul pulsante di reset per entrare in modalità bootloader.
14.1.1.3.5. Flashing da riga di comando per famiglia di camera¶
Le pagine seguenti mostrano cosa fa OpenMV IDE dietro le quinte per ciascuna famiglia di camera, per quando vuoi eseguire il flashing da solo – in script, in CI o su una linea di produzione. Per il flashing quotidiano consigliamo OpenMV IDE.