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