14.1. Vývoj firmwaru

Tyto stránky jsou určeny pro vývojáře firmwaru – pro ty, kdo chtějí měnit C kód běžící na OpenMV Cam, nejen psát MicroPython skripty. Pokrývají celý cyklus: nastavení editoru, instalaci buildovacího řetězce nástrojů, kompilaci firmwaru pro každou podporovanou desku, nahrání vašeho buildu do kamery a jeho ladění na reálném hardwaru pomocí sondy J-Link a krokového ladění na úrovni zdrojového kódu ve VS Code.

Na konci byste měli být schopni vzít čistý stroj, sestavit firmware, nahrát jej do kamery, nastavit breakpoint ve zdrojovém C kódu a procesor krokovat.

Poznámka

Firmware OpenMV je fork projektu MicroPython s přidanou knihovnou strojového vidění OpenMV, ovladači a porty desek. Zdrojový kód je na adrese github.com/openmv/openmv. Python moduly image / ml / csi, které používáte ve skriptech, jsou C kód v tomto repozitáři.

14.1.1. Jak build funguje

Před začátkem stojí za to pochopit dvě věci, protože vysvětlují všechny pokyny níže:

  • Build je řízen SDK. ARM kompilátor, CMake, Python ani ST nástroje neinstalujete sami. Repozitář fixuje přesnou verzi OpenMV SDK (soubor SDK_VERSION1.6.0 v době psaní tohoto textu) a make sdk toto SDK stáhne a rozbalí do ~/openmv-sdk-<version>/. Build poté předřadí adresáře gcc, llvm, cmake, python a ST nástrojů ze SDK do PATH. To znamená, že každý sestavuje s naprosto stejným řetězcem nástrojů a nastavení hostitele je minimální.

  • Neexistuje nativní build pro Windows. Řetězec nástrojů a buildovací skripty cílí pouze na Linux (x86-64) a macOS (arm64). Na Windows sestavujete uvnitř WSL (Windows Subsystem for Linux), což je skutečné prostředí Linuxu – takže jakmile je WSL nainstalován, uživatelé Windows postupují přesně podle pokynů pro Linux. Možností je také build založený na Dockeru a Linux VM.

Vysokoúrovňová sekvence na jakémkoli podporovaném systému je vždy:

  1. Nainstalujte editor (VS Code).

  2. Získejte shell podobný Linuxu (nativní Linux, macOS nebo WSL na Windows).

  3. Naklonujte repozitář a jeho submoduly.

  4. make sdk – jednorázová instalace řetězce nástrojů.

  5. make -C lib/micropython/mpy-cross – sestavte kompilátor bytecode.

  6. make TARGET=<board> – sestavte firmware.

  7. Nahrajte jej (OpenMV IDE nebo dfu-util).

  8. Volitelně připojte J-Link a laďte jej.

Stránky níže provádějí každým krokem v pořadí.