14.1. Firmware-Entwicklung¶
Diese Seiten richten sich an Firmware-Entwickler – Personen, die den C-Code ändern möchten, der auf der OpenMV Cam läuft, und nicht nur MicroPython-Skripte schreiben wollen. Sie decken den gesamten Ablauf ab: das Einrichten eines Editors, das Installieren der Build-Toolchain, das Kompilieren der Firmware für jedes unterstützte Board, das Flashen Ihres Builds auf eine Kamera und das Debuggen auf echter Hardware mit einer J-Link-Probe und schrittweisem, quelltextbezogenem Debugging in VS Code.
Am Ende sollten Sie in der Lage sein, einen sauberen Rechner zu nehmen, die Firmware zu bauen, sie auf eine Kamera zu bringen, einen Breakpoint im C-Quelltext zu setzen und den Prozessor schrittweise auszuführen.
Bemerkung
Die OpenMV-Firmware ist ein Fork von MicroPython mit der hinzugefügten OpenMV-Bibliothek für maschinelles Sehen, den Treibern und den Board-Ports. Der Quelltext liegt unter github.com/openmv/openmv. Die Python-Module image / ml / csi, die Sie in Skripten verwenden, sind C-Code in diesem Repository.
14.1.1. Wie der Build funktioniert¶
Bevor Sie beginnen, lohnt es sich, zwei Dinge zu verstehen, da sie jede Anweisung weiter unten erklären:
Der Build ist SDK-gesteuert. Sie installieren weder den ARM-Compiler noch CMake, Python oder die ST-Tools selbst. Das Repository legt eine genaue OpenMV-SDK-Version fest (die Datei
SDK_VERSION– zum Zeitpunkt der Erstellung1.6.0), undmake sdklädt dieses SDK herunter und entpackt es nach~/openmv-sdk-<version>/. Der Build stellt dann die Verzeichnisse vongcc,llvm,cmake,pythonund der ST-Tools des SDK demPATHvoran. Das bedeutet, dass alle mit exakt derselben Toolchain bauen und die Host-Einrichtung minimal ist.Es gibt keinen nativen Windows-Build. Die Toolchain und die Build-Skripte sind ausschließlich für Linux (x86-64) und macOS (arm64) ausgelegt. Unter Windows bauen Sie innerhalb von WSL (Windows Subsystem for Linux), einer echten Linux-Umgebung – sobald WSL installiert ist, folgen Windows-Nutzer also exakt den Linux-Anweisungen. Ein Docker-basierter Build und eine Linux-VM sind ebenfalls Optionen.
Die übergeordnete Abfolge auf jedem unterstützten System ist immer:
Installieren Sie einen Editor (VS Code).
Besorgen Sie sich eine Linux-ähnliche Shell (natives Linux, macOS oder WSL unter Windows).
Klonen Sie das Repository und seine Submodule.
make sdk– einmalige Toolchain-Installation.make -C lib/micropython/mpy-cross– bauen Sie den Bytecode-Compiler.make TARGET=<board>– bauen Sie die Firmware.Flashen Sie sie (OpenMV IDE oder
dfu-util).Optional schließen Sie eine J-Link an und debuggen sie.
Die folgenden Seiten führen Sie Schritt für Schritt durch jeden Schritt.