14.1. Firmwareontwikkeling¶
Deze pagina’s zijn bedoeld voor firmwareontwikkelaars – mensen die de C-code willen wijzigen die op de OpenMV Cam draait, en niet alleen MicroPython-scripts willen schrijven. Ze behandelen de hele cyclus: een editor opzetten, de build-toolchain installeren, de firmware compileren voor elk ondersteund board, je build op een camera flashen en die debuggen op echte hardware met een J-Link-probe en source-level debugging stap voor stap in VS Code.
Aan het eind zou je in staat moeten zijn om een schone machine te nemen, de firmware te bouwen, die op een camera te zetten, een breakpoint in de C-bron in te stellen en de processor stap voor stap uit te voeren.
Notitie
De OpenMV-firmware is een fork van MicroPython met de OpenMV machine vision-bibliotheek, drivers en board-ports toegevoegd. De broncode staat op github.com/openmv/openmv. De Python-modules image / ml / csi die je in scripts gebruikt, zijn C-code in deze repository.
14.1.1. Hoe de build werkt¶
Twee dingen zijn de moeite waard om te begrijpen voordat je begint, want ze verklaren elke instructie hieronder:
De build wordt aangestuurd door de SDK. Je installeert de ARM-compiler, CMake, Python of de ST-tools niet zelf. De repository pint een exacte OpenMV SDK-versie vast (het
SDK_VERSION-bestand –1.6.0op het moment van schrijven), enmake sdkdownloadt en pakt die SDK uit in~/openmv-sdk-<version>/. De build zet vervolgens degcc-,llvm-,cmake-,python- en ST-tooldirectory’s van de SDK vooraan inPATH. Dit betekent dat iedereen bouwt met exact dezelfde toolchain, en dat de host-setup minimaal is.Er is geen native Windows-build. De toolchain en buildscripts richten zich alleen op Linux (x86-64) en macOS (arm64). Op Windows bouw je binnen WSL (Windows Subsystem for Linux), een echte Linux-omgeving – dus zodra WSL is geinstalleerd, volgen Windows-gebruikers exact de Linux-instructies. Een Docker-gebaseerde build en een Linux-VM zijn ook opties.
De sequentie op hoog niveau op elk ondersteund systeem is altijd:
Installeer een editor (VS Code).
Zorg voor een Linux-achtige shell (native Linux, macOS of WSL op Windows).
Kloon de repository en de submodules ervan.
make sdk– eenmalige toolchain-installatie.make -C lib/micropython/mpy-cross– bouw de bytecode-compiler.make TARGET=<board>– bouw de firmware.Flash die (OpenMV IDE of
dfu-util).Optioneel: sluit een J-Link aan en debug die.
De onderstaande pagina’s lopen elke stap in volgorde door.