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.