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_VERSION1.6.0 la momentul scrierii), iar make sdk descarcă și dezarhivează acel SDK în ~/openmv-sdk-<version>/. Compilarea adaugă apoi la începutul PATH directoarele gcc, 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:

  1. Instalați un editor (VS Code).

  2. Obțineți un shell de tip Linux (Linux nativ, macOS sau WSL pe Windows).

  3. Clonați depozitul și submodulele acestuia.

  4. make sdk – instalare unică a lanțului de instrumente.

  5. make -C lib/micropython/mpy-cross – compilați compilatorul de bytecode.

  6. make TARGET=<board> – compilați firmware-ul.

  7. Programați-l (OpenMV IDE sau dfu-util).

  8. Opțional, atașați un J-Link și depanați-l.

Paginile de mai jos parcurg fiecare pas în ordine.