14.1. Dezvoltarea firmware-ului¶
Aceste pagini sunt pentru dezvoltatorii de firmware – persoanele care doresc să modifice codul C care rulează pe OpenMV Cam, nu doar să scrie scripturi MicroPython. Ele acoperă întreaga buclă: configurarea unui editor, instalarea lanțului de instrumente de compilare, compilarea firmware-ului pentru fiecare placă acceptată, programarea compilării dvs. pe o cameră și depanarea acesteia pe hardware real cu o sondă J-Link și depanare pas cu pas la nivel de sursă în VS Code.
Până la final ar trebui să puteți lua o mașină curată, să compilați firmware-ul, să-l puneți pe o cameră, să setați un punct de întrerupere în sursa C și să rulați procesorul pas cu pas.
Notă
Firmware-ul OpenMV este un fork al MicroPython cu biblioteca de viziune artificială OpenMV, driverele și porturile de plăci adăugate. Sursa se află la github.com/openmv/openmv. Modulele Python image / ml / csi pe care le folosiți în scripturi sunt cod C în acest depozit.
14.1.1. Cum funcționează compilarea¶
Două lucruri merită înțelese înainte de a începe, deoarece explică fiecare instrucțiune de mai jos:
Compilarea este condusă de SDK. Nu instalați singur compilatorul ARM, CMake, Python sau instrumentele ST. Depozitul fixează o versiune exactă a OpenMV SDK (fișierul
SDK_VERSION–1.6.0la momentul scrierii), iarmake sdkdescarcă și dezarhivează acel SDK în~/openmv-sdk-<version>/. Compilarea adaugă apoi la începutulPATHdirectoarelegcc,llvm,cmake,pythonși directoarele de instrumente ST ale SDK-ului. Aceasta înseamnă că toată lumea compilează cu exact același lanț de instrumente, iar configurarea gazdei este minimă.Nu există o compilare nativă pentru Windows. Lanțul de instrumente și scripturile de compilare vizează doar Linux (x86-64) și macOS (arm64). Pe Windows compilați în interiorul WSL (Windows Subsystem for Linux), care este un mediu Linux real – deci odată ce WSL este instalat, utilizatorii Windows urmează instrucțiunile pentru Linux exact. O compilare bazată pe Docker și o mașină virtuală Linux sunt de asemenea opțiuni.
Secvența de nivel înalt pe orice sistem acceptat este întotdeauna:
Instalați un editor (VS Code).
Obțineți un shell de tip Linux (Linux nativ, macOS sau WSL pe Windows).
Clonați depozitul și submodulele acestuia.
make sdk– instalare unică a lanțului de instrumente.make -C lib/micropython/mpy-cross– compilați compilatorul de bytecode.make TARGET=<board>– compilați firmware-ul.Programați-l (OpenMV IDE sau
dfu-util).Opțional, atașați un J-Link și depanați-l.
Paginile de mai jos parcurg fiecare pas în ordine.