14.1.1.4. 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.4.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

openmv\openmv.cmd

Dispositivi OpenMV DFU e le interfacce SPSDK dell’RT1062 (0x1FC9:0x0135 SDP ROM e 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Dispositivi Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

L’adattatore FTDI 0403:6015 usato per il ripristino del bootloader AE3

DFU_Driver\STM32Bootloader.bat

Il dispositivo ST 0483:df11 system DFU usato per il ripristino del bootloader STM32

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.4.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.4.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.4.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.