14.1.1.1. Configurar el entorno de desarrollo

Necesitas tres cosas en el host antes de poder compilar: un editor (se recomienda VS Code porque el depurador se integra con él), un shell de tipo Linux (WSL en Windows, nativo en Linux/macOS) y el repositorio de OpenMV con el SDK fijado extraído.

14.1.1.1.1. VS Code

Cualquier editor sirve para el desarrollo de firmware: la compilación es simplemente make, y el depurador en hardware también se ejecuta desde la línea de comandos. Visual Studio Code es sencillamente el camino más fácil: la configuración de Depuración del firmware se integra con su extensión Cortex-Debug, así que con VS Code instalado el resto de estas páginas funcionan sin más configuración, tanto para compilar como para depurar.

14.1.1.1.1.1. Instalar VS Code

  • Windows: descarga el instalador desde code.visualstudio.com y ejecútalo. Instala VS Code en Windows, no dentro de WSL; se integra con WSL a través de la extensión WSL, ejecutando su interfaz en Windows mientras el compilador, los archivos y el depurador residen en Linux.

  • macOS: descarga el .zip desde code.visualstudio.com, descomprímelo y arrastra Visual Studio Code.app a /Applications. O bien brew install --cask visual-studio-code.

  • Linux: instala el .deb / .rpm desde code.visualstudio.com (p. ej. sudo apt install ./code_*.deb), o usa el Snap/Flatpak de tu distribución.

Extensiones que debes instalar (desde el panel de Extensiones, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools): navegación por código fuente C e IntelliSense.

  • Cortex-Debug (marus25.cortex-debug): depuración en el chip mediante GDB y un servidor J-Link / OpenOCD. Necesaria para Depuración del firmware.

  • WSL (ms-vscode-remote.remote-wsl): solo Windows. Permite que VS Code abra una carpeta dentro de tu distribución de WSL para que el editor, la terminal, IntelliSense y Cortex-Debug operen todos en Linux. Instala las extensiones C/C++ y Cortex-Debug en el host WSL una vez conectado (VS Code te lo solicita).

14.1.1.1.2. Shell del host

Necesitas un entorno Linux (x86-64) o macOS (arm64) con git y unas pocas herramientas básicas. Elige la sección correspondiente a tu sistema operativo.

14.1.1.1.2.1. Windows: instalar WSL

WSL ejecuta un userland Ubuntu genuino en Windows. Una vez instalado, todas las instrucciones posteriores de esta guía son idénticas a las de Linux nativo.

  1. Abre PowerShell como Administrador (clic derecho en Inicio -> Terminal (Admin)).

  2. Instala WSL con la distribución Ubuntu predeterminada:

    wsl --install
    

    Esto habilita las características necesarias de Windows, instala el kernel de WSL 2 e instala Ubuntu. Reinicia si se te solicita.

  3. Tras el reinicio, Ubuntu se inicia y te pide crear un nombre de usuario y una contraseña de UNIX. Esta cuenta es independiente de tu cuenta de Windows.

  4. Actualiza la distribución:

    sudo apt update && sudo apt upgrade -y
    
  5. Confirma que estás en WSL 2 (obligatorio: WSL 1 no es compatible con este flujo de trabajo). En PowerShell:

    wsl --list --verbose
    

    La columna VERSION debe indicar 2. Si indica 1, conviértela:

    wsl --set-version Ubuntu 2
    

Truco

Trabaja dentro del sistema de archivos de Linux (~/ en WSL), no bajo /mnt/c/. Compilar en la unidad montada de Windows es drásticamente más lento y puede causar problemas de permisos de archivos y de fin de línea. Clona el repositorio en tu directorio de inicio de WSL.

Para abrir el proyecto más adelante: inicia Ubuntu desde el menú Inicio para obtener un shell, o desde VS Code en Windows pulsa Ctrl+Shift+P -> WSL: Connect to WSL, luego File -> Open Folder y elige el repositorio clonado en el sistema de archivos de Linux.

14.1.1.1.2.2. Requisitos previos de Linux / WSL

El SDK proporciona el compilador, por lo que solo se necesitan unos pocos paquetes del host:

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

14.1.1.1.2.3. Requisitos previos de macOS

La compilación nativa solo es compatible con macOS de Apple Silicon (arm64). Usando Homebrew:

brew install bash make coreutils

(Los Mac con Intel no son un host de compilación nativa compatible; usa la compilación con Docker de Compilar el firmware o una máquina virtual con Linux.)

14.1.1.1.3. Obtener el código fuente

Clona el repositorio con todos los submódulos (MicroPython, CMSIS, controladores de proveedores, etc.):

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

Una clonación recursiva completa es grande. Para una clonación más rápida y superficial (shallow):

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

Nota

Al compilar una placa específica, puedes en su lugar dejar que make descargue solo los submódulos de esa placa:

make TARGET=<board> submodules

El git submodule update explícito mostrado anteriormente ya cubre todo, por lo que este paso es opcional.

14.1.1.1.4. Instalar el OpenMV SDK

Desde la raíz del repositorio, ejecuta la instalación única del SDK:

make sdk

Esto descarga openmv-sdk-<version>-<os>-<arch>.tar.xz desde download.openmv.io, verifica su suma de comprobación SHA-256 y lo extrae en ~/openmv-sdk-<version>/ (la versión está fijada por el archivo SDK_VERSION del repositorio). Es idempotente: volver a ejecutarlo no hace nada si la versión correcta ya está instalada, y la compilación normal se aborta con «OpenMV SDK not found. Run “make sdk” to install it.» si falta o es la versión incorrecta.

El SDK incluye todo lo que necesitan la compilación y el depurador, todo añadido al PATH automáticamente por el Makefile:

Componente

Propósito

Cadena de herramientas ARM GNU (arm-none-eabi-gcc 14.3)

Compilador, enlazador, arm-none-eabi-gdb para depuración

LLVM/clang

Se usa para ciertos objetos en algunos ports

CMake, GNU Make

Orquestación de la compilación de las bibliotecas de proveedores

Python (reubicable)

Scripts de compilación, utilidades mpy-cross, firma, herramientas de modelos

STM32CubeProgrammer (STM32_Programmer_CLI)

Flasheo SWD y el flujo de recuperación del STM32N6

ST Edge AI

Compilador de redes neuronales para la NPU del STM32N6

dfu-util

Flasheo USB DFU

gdbrunner

El lanzador del servidor GDB del objetivo make debug (el software Segger J-Link que controla es una instalación aparte)

Advertencia

El OpenMV N6 y el OpenMV AE3 usan núcleos Cortex-M55 y requieren GCC 14.3 o más reciente. La compilación lo exige para esos objetivos y se aborta con un error «Upgrade to GCC 14.3+ for proper CM55 support» si se encuentra un arm-none-eabi-gcc más antiguo antes que el del SDK en el PATH. La cadena de herramientas del SDK incluida ya cumple este requisito; el error significa que una cadena de herramientas diferente y más antigua lo está eclipsando.