14.1.1.1. De ontwikkelomgeving opzetten

Je hebt drie dingen nodig op de host voordat je kunt compileren: een editor (VS Code wordt aanbevolen omdat de debugger erop aansluit), een Linux-achtige shell (WSL op Windows, native op Linux/macOS) en de OpenMV-repository met de vastgepinde SDK uitgepakt.

14.1.1.1.1. VS Code

Elke editor werkt voor firmware-ontwikkeling – de build is gewoon make, en de debugger op de hardware draait ook vanaf de opdrachtregel. Visual Studio Code is simpelweg de eenvoudigste weg: de De firmware debuggen-setup sluit aan op de Cortex-Debug-extensie, dus met VS Code geïnstalleerd werkt de rest van deze pagina’s direct, zowel voor het bouwen als voor het debuggen.

14.1.1.1.1.1. VS Code installeren

  • Windows – download het installatieprogramma van code.visualstudio.com en voer het uit. Installeer VS Code op Windows, niet binnen WSL; het integreert met WSL via de WSL-extensie, waarbij de gebruikersinterface op Windows draait terwijl de compiler, bestanden en debugger zich in Linux bevinden.

  • macOS – download de .zip van code.visualstudio.com, pak hem uit en sleep Visual Studio Code.app naar /Applications. Of brew install --cask visual-studio-code.

  • Linux – installeer de .deb / .rpm van code.visualstudio.com (bijv. sudo apt install ./code_*.deb), of gebruik de Snap/Flatpak van de distributie.

Te installeren extensies (vanuit het Extensions-paneel, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – C-broncodenavigatie en IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – on-chip debuggen via GDB en een J-Link / OpenOCD-server. Vereist voor De firmware debuggen.

  • WSL (ms-vscode-remote.remote-wsl) – alleen Windows. Laat VS Code een map binnen je WSL-distributie openen zodat de editor, terminal, IntelliSense en Cortex-Debug allemaal in Linux werken. Installeer de C/C++- en Cortex-Debug-extensies in de WSL-host zodra je verbonden bent (VS Code vraagt hierom).

14.1.1.1.2. Host-shell

Je hebt een Linux (x86-64)- of macOS (arm64)-omgeving nodig met git en een paar basistools. Kies de sectie voor jouw besturingssysteem.

14.1.1.1.2.1. Windows: WSL installeren

WSL draait een echte Ubuntu-userland op Windows. Nadat het geïnstalleerd is, is elke latere instructie in deze handleiding identiek aan native Linux.

  1. Open PowerShell als Administrator (rechtsklik op Start -> Terminal (Admin)).

  2. Installeer WSL met de standaard Ubuntu-distributie:

    wsl --install
    

    Dit schakelt de vereiste Windows-functies in, installeert de WSL 2-kernel en installeert Ubuntu. Herstart als daarom wordt gevraagd.

  3. Na de herstart start Ubuntu en vraagt het je om een UNIX-gebruikersnaam en -wachtwoord aan te maken. Dit account staat los van je Windows-account.

  4. Werk de distributie bij:

    sudo apt update && sudo apt upgrade -y
    
  5. Bevestig dat je op WSL 2 zit (vereist – WSL 1 wordt niet ondersteund voor deze workflow). In PowerShell:

    wsl --list --verbose
    

    De kolom VERSION moet 2 aangeven. Als er 1 staat, converteer hem dan:

    wsl --set-version Ubuntu 2
    

Tip

Werk binnen het Linux-bestandssysteem (~/ in WSL), niet onder /mnt/c/. Bouwen op de via Windows aangekoppelde schijf is dramatisch trager en kan problemen met bestandsrechten en regeleindes veroorzaken. Kloon de repository naar je WSL-thuismap.

Om het project later te openen: start Ubuntu vanuit het Startmenu voor een shell, of druk vanuit VS Code op Windows op Ctrl+Shift+P -> WSL: Connect to WSL, vervolgens File -> Open Folder en kies de gekloonde repo in het Linux-bestandssysteem.

14.1.1.1.2.2. Linux / WSL-vereisten

De SDK levert de compiler, dus slechts een handvol host-pakketten is nodig:

sudo apt-get update
sudo apt-get install git build-essential

14.1.1.1.2.3. macOS-vereisten

Native bouwen wordt alleen ondersteund op Apple-silicon (arm64) macOS. Met behulp van Homebrew

brew install bash make coreutils

(Intel-macs zijn geen ondersteunde native build-host – gebruik de Docker-build uit De firmware bouwen of een Linux-VM.)

14.1.1.1.3. De broncode ophalen

Kloon de repository met alle submodules (MicroPython, CMSIS, vendor-drivers, enz.):

git clone --recursive https://github.com/openmv/openmv.git
cd openmv

Een volledige recursieve kloon is groot. Voor een snellere, ondiepe kloon:

git clone --depth=1 https://github.com/openmv/openmv.git
cd openmv
git submodule update --init --depth=1 --no-single-branch
git -C lib/micropython/ submodule update --init --depth=1

Notitie

Bij het bouwen van een specifiek bord kun je in plaats daarvan make alleen de submodules van dat bord laten ophalen:

make TARGET=<board> submodules

De expliciete git submodule update die hierboven wordt getoond, dekt al alles, dus deze stap is optioneel.

14.1.1.1.4. De OpenMV SDK installeren

Voer vanuit de root van de repository de eenmalige SDK-installatie uit:

make sdk

Dit downloadt openmv-sdk-<version>-<os>-<arch>.tar.xz van download.openmv.io, verifieert de SHA-256-checksum en pakt het uit naar ~/openmv-sdk-<version>/ (de versie wordt vastgepind door het SDK_VERSION-bestand van de repo). Het is idempotent – opnieuw uitvoeren doet niets als de juiste versie al geïnstalleerd is, en de gewone build wordt afgebroken met “OpenMV SDK not found. Run ‘make sdk’ to install it.” als hij ontbreekt of de verkeerde versie is.

De SDK bundelt alles wat de build en debugger nodig hebben, allemaal automatisch toegevoegd aan PATH door de Makefile:

Component

Doel

ARM GNU-toolchain (arm-none-eabi-gcc 14.3)

Compiler, linker, arm-none-eabi-gdb voor debuggen

LLVM/clang

Gebruikt voor geselecteerde objecten op sommige ports

CMake, GNU Make

Build-orkestratie voor vendor-bibliotheken

Python (verplaatsbaar)

Build-scripts, mpy-cross-helpers, signing, modeltools

STM32CubeProgrammer (STM32_Programmer_CLI)

SWD-flashen en de STM32N6-herstelflow

ST Edge AI

Neuraal-netwerkcompiler voor de STM32N6 NPU

dfu-util

USB DFU-flashen

gdbrunner

De GDB-serverlauncher van het make debug-target (de Segger J-Link-software die het aanstuurt, is een aparte installatie)

Waarschuwing

De OpenMV N6 en OpenMV AE3 gebruiken Cortex-M55-cores en vereisen GCC 14.3 of nieuwer. De build dwingt dit af voor die targets en breekt af met een “Upgrade to GCC 14.3+ for proper CM55 support”-fout als er een oudere arm-none-eabi-gcc voor die van de SDK op PATH wordt gevonden. De meegeleverde SDK-toolchain voldoet hier al aan; de fout betekent dat een andere, oudere toolchain hem overschaduwt.