14.1.1.1. Configuration de l’environnement de développement

Vous avez besoin de trois éléments sur l’hôte avant de pouvoir compiler : un éditeur (VS Code est recommandé car le débogueur s’y intègre), un shell de type Linux (WSL sous Windows, natif sous Linux/macOS) et le dépôt OpenMV avec le SDK épinglé extrait.

14.1.1.1.1. VS Code

N’importe quel éditeur convient pour le développement du micrologiciel – la compilation se résume à make, et le débogueur sur matériel s’exécute également depuis la ligne de commande. Visual Studio Code est simplement la voie la plus simple : la configuration de Débogage du micrologiciel s’intègre à son extension Cortex-Debug, de sorte qu’avec VS Code installé, le reste de ces pages fonctionne immédiatement, aussi bien pour compiler que pour déboguer.

14.1.1.1.1.1. Installation de VS Code

  • Windows – téléchargez le programme d’installation depuis code.visualstudio.com et exécutez-le. Installez VS Code sous Windows, pas à l’intérieur de WSL ; il s’intègre à WSL via l’extension WSL, exécutant son interface sous Windows tandis que le compilateur, les fichiers et le débogueur résident dans Linux.

  • macOS – téléchargez le fichier .zip depuis code.visualstudio.com, décompressez-le et faites glisser Visual Studio Code.app dans /Applications. Ou bien brew install --cask visual-studio-code.

  • Linux – installez le fichier .deb / .rpm depuis code.visualstudio.com (par ex. sudo apt install ./code_*.deb), ou utilisez le Snap/Flatpak de votre distribution.

Extensions à installer (depuis le panneau Extensions, Ctrl+Shift+X) :

  • C/C++ (ms-vscode.cpptools) – navigation dans les sources C et IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – débogage sur puce via GDB et un serveur J-Link / OpenOCD. Requis pour Débogage du micrologiciel.

  • WSL (ms-vscode-remote.remote-wsl) – Windows uniquement. Permet à VS Code d’ouvrir un dossier à l’intérieur de votre distribution WSL afin que l’éditeur, le terminal, IntelliSense et Cortex-Debug fonctionnent tous dans Linux. Installez les extensions C/C++ et Cortex-Debug dans l’hôte WSL une fois connecté (VS Code vous y invite).

14.1.1.1.2. Shell hôte

Vous avez besoin d’un environnement Linux (x86-64) ou macOS (arm64) avec git et quelques outils de base. Choisissez la section correspondant à votre système d’exploitation.

14.1.1.1.2.1. Windows : installer WSL

WSL exécute un véritable espace utilisateur Ubuntu sous Windows. Une fois installé, chaque instruction ultérieure de ce guide est identique à celle de Linux natif.

  1. Ouvrez PowerShell en tant qu’administrateur (clic droit sur Démarrer -> Terminal (Admin)).

  2. Installez WSL avec la distribution Ubuntu par défaut

    wsl --install
    

    Cela active les fonctionnalités Windows requises, installe le noyau WSL 2 et installe Ubuntu. Redémarrez si cela vous est demandé.

  3. Après le redémarrage, Ubuntu se lance et vous demande de créer un nom d’utilisateur et un mot de passe UNIX. Ce compte est indépendant de votre compte Windows.

  4. Mettez à jour la distribution

    sudo apt update && sudo apt upgrade -y
    
  5. Vérifiez que vous êtes bien sous WSL 2 (requis – WSL 1 n’est pas pris en charge pour ce flux de travail). Dans PowerShell

    wsl --list --verbose
    

    La colonne VERSION doit indiquer 2. Si elle indique 1, convertissez-la

    wsl --set-version Ubuntu 2
    

Astuce

Travaillez à l’intérieur du système de fichiers Linux (~/ sous WSL), et non sous /mnt/c/. Compiler sur le lecteur monté de Windows est nettement plus lent et peut entraîner des problèmes de permissions de fichiers et de fins de ligne. Clonez le dépôt dans votre répertoire personnel WSL.

Pour ouvrir le projet ultérieurement : lancez Ubuntu depuis le menu Démarrer pour obtenir un shell, ou depuis VS Code sous Windows appuyez sur Ctrl+Shift+P -> WSL: Connect to WSL, puis File -> Open Folder et choisissez le dépôt cloné dans le système de fichiers Linux.

14.1.1.1.2.2. Prérequis Linux / WSL

Le SDK fournit le compilateur, de sorte que seuls quelques paquets hôtes sont nécessaires

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

14.1.1.1.2.3. Prérequis macOS

La compilation native n’est prise en charge que sur macOS Apple-silicon (arm64). En utilisant Homebrew

brew install bash make coreutils

(Les Mac Intel ne sont pas pris en charge comme hôte de compilation natif – utilisez la compilation Docker décrite dans Compiler le micrologiciel ou une VM Linux.)

14.1.1.1.3. Obtention des sources

Clonez le dépôt avec tous les sous-modules (MicroPython, CMSIS, pilotes de fournisseurs, etc.)

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

Un clone récursif complet est volumineux. Pour un clone superficiel plus rapide

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

Note

Lors de la compilation d’une carte spécifique, vous pouvez à la place laisser make ne récupérer que les sous-modules de cette carte

make TARGET=<board> submodules

La commande explicite git submodule update indiquée ci-dessus couvre déjà tout, cette étape est donc facultative.

14.1.1.1.4. Installation du SDK OpenMV

Depuis la racine du dépôt, exécutez l’installation unique du SDK

make sdk

Cette commande télécharge openmv-sdk-<version>-<os>-<arch>.tar.xz depuis download.openmv.io, vérifie sa somme de contrôle SHA-256 et l’extrait dans ~/openmv-sdk-<version>/ (la version est épinglée par le fichier SDK_VERSION du dépôt). Elle est idempotente – la relancer ne fait rien si la bonne version est déjà installée, et la compilation normale s’interrompt avec le message « OpenMV SDK not found. Run “make sdk” to install it. » s’il est absent ou s’il s’agit de la mauvaise version.

Le SDK regroupe tout ce dont la compilation et le débogueur ont besoin, le tout étant ajouté automatiquement au PATH par le Makefile :

Composant

Rôle

Chaîne d’outils ARM GNU (arm-none-eabi-gcc 14.3)

Compilateur, éditeur de liens, arm-none-eabi-gdb pour le débogage

LLVM/clang

Utilisé pour certains objets sur certains ports

CMake, GNU Make

Orchestration de la compilation pour les bibliothèques des fournisseurs

Python (relocalisable)

Scripts de compilation, utilitaires mpy-cross, signature, outils de modèles

STM32CubeProgrammer (STM32_Programmer_CLI)

Flashage SWD et flux de récupération du STM32N6

ST Edge AI

Compilateur de réseaux de neurones pour le NPU du STM32N6

dfu-util

Flashage USB DFU

gdbrunner

Le lanceur de serveur GDB de la cible make debug (le logiciel Segger J-Link qu’il pilote fait l’objet d’une installation distincte)

Avertissement

Les OpenMV N6 et OpenMV AE3 utilisent des cœurs Cortex-M55 et nécessitent GCC 14.3 ou plus récent. La compilation l’impose pour ces cibles et s’interrompt avec une erreur « Upgrade to GCC 14.3+ for proper CM55 support » si un arm-none-eabi-gcc plus ancien est trouvé avant celui du SDK dans le PATH. La chaîne d’outils du SDK fournie satisfait déjà cette exigence ; l’erreur signifie qu’une autre chaîne d’outils, plus ancienne, la masque.