14.1.1.1. Configurando o ambiente de desenvolvimento

Você precisa de três coisas no host antes de poder compilar: um editor (o VS Code é recomendado porque o depurador se integra a ele), um shell no estilo Linux (WSL no Windows, nativo no Linux/macOS) e o repositório OpenMV com o SDK fixado extraído.

14.1.1.1.1. VS Code

Qualquer editor serve para o desenvolvimento de firmware – a compilação é apenas make, e o depurador em hardware também roda pela linha de comando. O Visual Studio Code é simplesmente o caminho mais fácil: a configuração de Depurando o firmware se integra à sua extensão Cortex-Debug, então, com o VS Code instalado, o restante destas páginas funciona de imediato, tanto para compilar quanto para depurar.

14.1.1.1.1.1. Instalando o VS Code

  • Windows – baixe o instalador em code.visualstudio.com e execute-o. Instale o VS Code no Windows, não dentro do WSL; ele se integra ao WSL por meio da extensão WSL, executando sua interface no Windows enquanto o compilador, os arquivos e o depurador residem no Linux.

  • macOS – baixe o .zip em code.visualstudio.com, descompacte-o e arraste o Visual Studio Code.app para /Applications. Ou use brew install --cask visual-studio-code.

  • Linux – instale o .deb / .rpm de code.visualstudio.com (por exemplo, sudo apt install ./code_*.deb), ou use o Snap/Flatpak da sua distribuição.

Extensões a instalar (a partir do painel de Extensões, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – navegação em código-fonte C e IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – depuração no chip via GDB e um servidor J-Link / OpenOCD. Necessária para Depurando o firmware.

  • WSL (ms-vscode-remote.remote-wsl) – somente Windows. Permite que o VS Code abra uma pasta dentro da sua distribuição WSL, de modo que o editor, o terminal, o IntelliSense e o Cortex-Debug operem todos no Linux. Instale as extensões C/C++ e Cortex-Debug no host WSL uma vez conectado (o VS Code solicita isso).

14.1.1.1.2. Shell do host

Você precisa de um ambiente Linux (x86-64) ou macOS (arm64) com git e algumas ferramentas básicas. Escolha a seção correspondente ao seu sistema operacional.

14.1.1.1.2.1. Windows: instale o WSL

O WSL executa um userland Ubuntu genuíno no Windows. Depois que ele estiver instalado, todas as instruções posteriores deste guia são idênticas às do Linux nativo.

  1. Abra o PowerShell como Administrador (clique com o botão direito em Iniciar -> Terminal (Admin)).

  2. Instale o WSL com a distribuição Ubuntu padrão:

    wsl --install
    

    Isso habilita os recursos necessários do Windows, instala o kernel do WSL 2 e instala o Ubuntu. Reinicie se solicitado.

  3. Após a reinicialização, o Ubuntu é iniciado e pede que você crie um nome de usuário e uma senha UNIX. Essa conta é independente da sua conta do Windows.

  4. Atualize a distribuição:

    sudo apt update && sudo apt upgrade -y
    
  5. Confirme que você está no WSL 2 (obrigatório – o WSL 1 não é compatível com este fluxo de trabalho). No PowerShell:

    wsl --list --verbose
    

    A coluna VERSION deve indicar 2. Se indicar 1, converta-a:

    wsl --set-version Ubuntu 2
    

Dica

Trabalhe dentro do sistema de arquivos Linux (~/ no WSL), não em /mnt/c/. Compilar no drive montado do Windows é drasticamente mais lento e pode causar problemas de permissão de arquivos e de fim de linha. Clone o repositório no seu diretório pessoal do WSL.

Para abrir o projeto depois: inicie o Ubuntu pelo menu Iniciar para obter um shell, ou, a partir do VS Code no Windows, pressione Ctrl+Shift+P -> WSL: Connect to WSL e então File -> Open Folder e selecione o repositório clonado no sistema de arquivos Linux.

14.1.1.1.2.2. Pré-requisitos do Linux / WSL

O SDK fornece o compilador, então apenas alguns poucos pacotes do host são necessários:

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

14.1.1.1.2.3. Pré-requisitos do macOS

A compilação nativa é suportada apenas no macOS com Apple-silicon (arm64). Usando o Homebrew

brew install bash make coreutils

(Macs com processador Intel não são um host de compilação nativa suportado – use a compilação via Docker de Compilando o firmware ou uma VM Linux.)

14.1.1.1.3. Obtendo o código-fonte

Clone o repositório com todos os submódulos (MicroPython, CMSIS, drivers de fornecedores, etc.):

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

Um clone recursivo completo é grande. Para um clone mais rápido e raso:

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

Ao compilar uma placa específica, você pode, em vez disso, deixar o make baixar apenas os submódulos daquela placa:

make TARGET=<board> submodules

O comando explícito git submodule update mostrado acima já cobre tudo, então esta etapa é opcional.

14.1.1.1.4. Instalando o OpenMV SDK

A partir da raiz do repositório, execute a instalação única do SDK:

make sdk

Isso baixa openmv-sdk-<version>-<os>-<arch>.tar.xz de download.openmv.io, verifica seu checksum SHA-256 e o extrai em ~/openmv-sdk-<version>/ (a versão é fixada pelo arquivo SDK_VERSION do repositório). É idempotente – executá-lo novamente não faz nada se a versão correta já estiver instalada, e a compilação normal é abortada com “OpenMV SDK not found. Run ‘make sdk’ to install it.” caso ele esteja ausente ou na versão errada.

O SDK inclui tudo o que a compilação e o depurador precisam, tudo adicionado ao PATH automaticamente pelo Makefile:

Componente

Finalidade

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

Compilador, linker e arm-none-eabi-gdb para depuração

LLVM/clang

Usado para objetos selecionados em algumas portas

CMake, GNU Make

Orquestração da compilação para bibliotecas de fornecedores

Python (relocável)

Scripts de compilação, utilitários mpy-cross, assinatura e ferramentas de modelos

STM32CubeProgrammer (STM32_Programmer_CLI)

Gravação via SWD e o fluxo de recuperação do STM32N6

ST Edge AI

Compilador de rede neural para a NPU do STM32N6

dfu-util

Gravação via USB DFU

gdbrunner

O lançador do servidor GDB do alvo make debug (o software Segger J-Link que ele controla é uma instalação separada)

Aviso

O OpenMV N6 e o OpenMV AE3 usam núcleos Cortex-M55 e exigem GCC 14.3 ou mais recente. A compilação impõe isso para esses alvos e é abortada com um erro “Upgrade to GCC 14.3+ for proper CM55 support” caso um arm-none-eabi-gcc mais antigo seja encontrado antes do SDK no PATH. A toolchain incluída no SDK já atende a esse requisito; o erro significa que uma toolchain diferente e mais antiga está se sobrepondo a ela.