14.1. Rozwój oprogramowania układowego¶
Te strony są przeznaczone dla deweloperów oprogramowania układowego – osób, które chcą zmieniać kod C uruchamiany na OpenMV Cam, a nie tylko pisać skrypty MicroPython. Obejmują one cały cykl: konfigurację edytora, instalację łańcucha narzędzi do kompilacji, kompilowanie oprogramowania układowego dla każdej obsługiwanej płytki, wgrywanie skompilowanej wersji na kamerę i debugowanie jej na rzeczywistym sprzęcie za pomocą sondy J-Link oraz krokowego debugowania na poziomie kodu źródłowego w VS Code.
Pod koniec powinieneś być w stanie wziąć czystą maszynę, skompilować oprogramowanie układowe, umieścić je na kamerze, ustawić punkt przerwania w kodzie źródłowym C i wykonywać krok po kroku instrukcje procesora.
Informacja
Oprogramowanie układowe OpenMV jest forkiem MicroPython z dodaną biblioteką wizji maszynowej OpenMV, sterownikami i portami płytek. Źródła znajdują się pod adresem github.com/openmv/openmv. Moduły Python image / ml / csi, których używasz w skryptach, to kod C w tym repozytorium.
14.1.1. Jak działa kompilacja¶
Przed rozpoczęciem warto zrozumieć dwie rzeczy, ponieważ wyjaśniają one każdą poniższą instrukcję:
Kompilacja jest sterowana przez SDK. Nie instalujesz samodzielnie kompilatora ARM, CMake, Pythona ani narzędzi ST. Repozytorium przypina dokładną wersję OpenMV SDK (plik
SDK_VERSION–1.6.0w chwili pisania), amake sdkpobiera i rozpakowuje to SDK do~/openmv-sdk-<version>/. Kompilacja następnie dodaje katalogigcc,llvm,cmake,pythoni narzędzi ST z SDK na początek zmiennejPATH. Oznacza to, że wszyscy kompilują z dokładnie tym samym łańcuchem narzędzi, a konfiguracja hosta jest minimalna.Nie ma natywnej kompilacji dla systemu Windows. Łańcuch narzędzi i skrypty kompilacji są przeznaczone wyłącznie dla systemów Linux (x86-64) i macOS (arm64). W systemie Windows kompilujesz wewnątrz WSL (Windows Subsystem for Linux), który jest prawdziwym środowiskiem Linux – więc po zainstalowaniu WSL użytkownicy systemu Windows dokładnie wykonują instrukcje dla systemu Linux. Możliwa jest również kompilacja oparta na Dockerze oraz maszyna wirtualna z systemem Linux.
Ogólna sekwencja na każdym obsługiwanym systemie jest zawsze następująca:
Zainstaluj edytor (VS Code).
Przygotuj powłokę przypominającą Linux (natywny Linux, macOS lub WSL w systemie Windows).
Sklonuj repozytorium i jego submoduły.
make sdk– jednorazowa instalacja łańcucha narzędzi.make -C lib/micropython/mpy-cross– skompiluj kompilator kodu bajtowego.make TARGET=<board>– skompiluj oprogramowanie układowe.Wgraj je (OpenMV IDE lub
dfu-util).Opcjonalnie podłącz J-Link i przeprowadź debugowanie.
Poniższe strony przeprowadzają przez każdy krok po kolei.