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_VERSION–1.6.0v době psaní tohoto textu) amake sdktoto SDK stáhne a rozbalí do~/openmv-sdk-<version>/. Build poté předřadí adresářegcc,llvm,cmake,pythona ST nástrojů ze SDK doPATH. 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:
Nainstalujte editor (VS Code).
Získejte shell podobný Linuxu (nativní Linux, macOS nebo WSL na Windows).
Naklonujte repozitář a jeho submoduly.
make sdk– jednorázová instalace řetězce nástrojů.make -C lib/micropython/mpy-cross– sestavte kompilátor bytecode.make TARGET=<board>– sestavte firmware.Nahrajte jej (OpenMV IDE nebo
dfu-util).Volitelně připojte J-Link a laďte jej.
Stránky níže provádějí každým krokem v pořadí.