14.1.1.3. Programarea firmware-ului¶
Odată ce ați obținut un firmware.bin (și romfs<n>.img aferent) din Construirea firmware-ului, programați-l pe cameră. OpenMV IDE este metoda recomandată; procedura din linia de comandă diferă în funcție de familia de cameră și este documentată per familie pe paginile legate la final. Bootloader-ul în sine este restaurat separat – consultați Restaurarea bootloader-ului.
14.1.1.3.1. OpenMV IDE: Load Custom Firmware (recomandat)¶
OpenMV IDE include fiecare instrument de programare (dfu-util, instrumentele NXP SPSDK, Alif SE Tools, instrumentele STM32), instalează driverele USB necesare pe Windows, gestionează intrarea în bootloader și selectează comanda corectă pentru camera conectată. Este modalitatea recomandată de a programa o compilare personalizată.
Conectați camera la USB (nu este nevoie să apăsați Connect).
Tools -> Load Custom Firmware.
În dialog, setați Firmware Path la
build/<TARGET>/bin/firmware.binal compilării dvs.Opțional, bifați Erase internal file system pentru a șterge sistemul de fișiere FAT intern al camerei (consultați Ștergerea sistemului de fișiere intern pentru când și de ce).
Opțional, bifați Reset ROMFS file system pentru a reprograma ROMFS-ul implicit (dezactivat dacă ați selectat direct un
.img).Apăsați Run. IDE-ul resetează camera în bootloader-ul său, afișează comanda exactă de programare și o bară de progres, apoi repornește camera în noul firmware. Așteptați LED-ul albastru de autotestare; camera se re-enumeră apoi normal.
Există de asemenea Tools -> Force enter OpenMV Cam bootloader pentru a plasa camera în modul DFU manual înainte de programare.
14.1.1.3.2. Windows: instalarea driverelor USB¶
Windows nu are un driver încorporat pentru interfețele USB DFU, SDP și ISP ale camerei, astfel încât instrumentele din linia de comandă (dfu-util, instrumentele NXP SPSDK, Alif SE Tools) nu pot detecta dispozitivul până când nu i se asociază un driver WinUSB. Programul de instalare Windows al OpenMV IDE instalează toate aceste drivere, deci cea mai simplă abordare este să instalați OpenMV IDE o singură dată – după care funcționează atât IDE-ul, cât și instrumentele din linia de comandă. Acesta este motivul pentru care programarea prin interfața grafică reușește pe o mașină Windows nouă, în timp ce un dfu-util autonom nu reușește.
Dacă instalarea IDE-ului nu este o opțiune, rulați programul de instalare a driverului corespunzător din directorul share/qtcreator/drivers/ al OpenMV IDE ca administrator:
Program de instalare driver |
Dispozitive USB pe care le asociază |
|---|---|
|
Dispozitive OpenMV DFU și interfețele RT1062 SPSDK ( |
|
Dispozitive Arduino DFU ( |
|
Adaptorul FTDI |
|
Dispozitivul ST |
Alternativ, asociați WinUSB la VID:PID-ul specific cu Zadig sau pnputil. Fără aceasta, programarea din linia de comandă pe Windows nu funcționează. Linux și macOS nu necesită instalarea de drivere (Linux necesită doar regulile udev).
14.1.1.3.3. Programarea prin SWD (make deploy)¶
Dacă o sondă de depanare este deja conectată la cameră – așa cum este pentru depanare – cel mai rapid ciclu de editare-compilare-programare ocolește USB DFU și programează cipul direct prin SWD. Pe camerele STM32:
make -j$(nproc) TARGET=<TARGET> deploy
Aceasta programează firmware-ul proaspăt compilat prin STM32_Programmer_CLI (din SDK) prin sonda conectată. Nu există intrare în bootloader, nicio re-enumerare USB și nicio schimbare de cablu: compilați, rulați deploy, iar camera repornește rulând noul cod. Acesta este fluxul de lucru recomandat în timpul dezvoltării active a firmware-ului. Folosiți DFU sau OpenMV IDE când programați fără o sondă sau când distribuiți firmware altora.
14.1.1.3.4. Intrarea în modul bootloader / DFU¶
Programarea necesită ca camera să fie în modul său bootloader / DFU. Există trei moduri de a intra:
La conectare (orice cameră). Fiecare cameră își rulează bootloader-ul pentru o scurtă fereastră de timp când pornește, înainte ca firmware-ul să pornească – conectați camera la USB și bootloader-ul ascultă pentru scurt timp.
Din IDE (orice cameră). Cu camera conectată, Tools -> Force enter OpenMV Cam bootloader o repornește în modul bootloader.
Butonul de resetare Arduino. Pe plăcile Arduino, faceți dublu clic pe butonul de resetare pentru a intra în modul bootloader.
14.1.1.3.5. Programarea din linia de comandă în funcție de familia de cameră¶
Paginile de mai jos arată ce face OpenMV IDE în spatele scenei pentru fiecare familie de cameră, pentru cazul în care doriți să rulați programarea singur – în scripturi, în CI sau pe o linie de producție. Pentru programarea de zi cu zi recomandăm OpenMV IDE.