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
.zipdesde code.visualstudio.com, descomprímelo y arrastra Visual Studio Code.app a/Applications. O bienbrew install --cask visual-studio-code.Linux: instala el
.deb/.rpmdesde 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.
Abre PowerShell como Administrador (clic derecho en Inicio -> Terminal (Admin)).
Instala WSL con la distribución Ubuntu predeterminada:
wsl --installEsto habilita las características necesarias de Windows, instala el kernel de WSL 2 e instala Ubuntu. Reinicia si se te solicita.
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.
Actualiza la distribución:
sudo apt update && sudo apt upgrade -yConfirma que estás en WSL 2 (obligatorio: WSL 1 no es compatible con este flujo de trabajo). En PowerShell:
wsl --list --verboseLa columna
VERSIONdebe indicar2. Si indica1, 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 ( | Compilador, enlazador, |
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 |
STM32CubeProgrammer ( | Flasheo SWD y el flujo de recuperación del STM32N6 |
ST Edge AI | Compilador de redes neuronales para la NPU del STM32N6 |
| Flasheo USB DFU |
| El lanzador del servidor GDB del objetivo |
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.