14.1. Sviluppo del firmware¶
Queste pagine sono per gli sviluppatori di firmware – chi vuole modificare il codice C che gira sull’OpenMV Cam, non solo scrivere script MicroPython. Coprono l’intero ciclo: configurazione di un editor, installazione della toolchain di build, compilazione del firmware per ogni scheda supportata, flashing della tua build su una camera e debug su hardware reale con una sonda J-Link e il debug source-level a passo singolo in VS Code.
Alla fine dovresti essere in grado di prendere una macchina pulita, compilare il firmware, installarlo su una camera, impostare un breakpoint nel sorgente C ed eseguire il processore a passo singolo.
Nota
Il firmware OpenMV è un fork di MicroPython con l’aggiunta della libreria di visione artificiale OpenMV, dei driver e dei port per le schede. Il sorgente si trova su github.com/openmv/openmv. I moduli Python image / ml / csi che usi negli script sono codice C in questo repository.
14.1.1. Come funziona la build¶
Due aspetti vale la pena comprendere prima di iniziare, perché spiegano ogni istruzione successiva:
La build è guidata dall’SDK. Non installi tu stesso il compilatore ARM, CMake, Python o gli strumenti ST. Il repository fissa una versione esatta dell’SDK OpenMV (il file
SDK_VERSION–1.6.0al momento della scrittura), emake sdkscarica e decomprime quell’SDK in~/openmv-sdk-<version>/. La build poi antepone alPATHle directory digcc,llvm,cmake,pythone degli strumenti ST dell’SDK. Questo significa che tutti compilano con la stessa identica toolchain, e la configurazione dell’host è minima.Non esiste una build nativa per Windows. La toolchain e gli script di build hanno come target solo Linux (x86-64) e macOS (arm64). Su Windows compili all’interno di WSL (Windows Subsystem for Linux), che è un vero ambiente Linux – quindi una volta installato WSL, gli utenti Windows seguono esattamente le istruzioni per Linux. Sono possibili anche una build basata su Docker e una VM Linux.
La sequenza ad alto livello su qualsiasi sistema supportato è sempre:
Installa un editor (VS Code).
Procurati una shell di tipo Linux (Linux nativo, macOS o WSL su Windows).
Clona il repository e i suoi sottomoduli.
make sdk– installazione della toolchain una tantum.make -C lib/micropython/mpy-cross– compila il compilatore di bytecode.make TARGET=<board>– compila il firmware.Esegui il flashing (OpenMV IDE o
dfu-util).Facoltativamente, collega un J-Link ed eseguine il debug.
Le pagine seguenti illustrano ogni passaggio in ordine.