14.1.1.1. Configurarea mediului de dezvoltare

Aveți nevoie de trei lucruri pe gazdă înainte de a putea compila: un editor (VS Code este recomandat deoarece depanatorul se integrează în el), un shell de tip Linux (WSL pe Windows, nativ pe Linux/macOS) și depozitul OpenMV cu SDK-ul fixat extras.

14.1.1.1.1. VS Code

Orice editor funcționează pentru dezvoltarea firmware-ului – compilarea este doar make, iar depanatorul pe hardware rulează și din linia de comandă. Visual Studio Code este pur și simplu calea cea mai ușoară: configurarea din Depanarea firmware-ului se integrează în extensia sa Cortex-Debug, deci cu VS Code instalat restul acestor pagini funcționează direct, atât pentru compilare, cât și pentru depanare.

14.1.1.1.1.1. Instalarea VS Code

  • Windows – descărcați programul de instalare de pe code.visualstudio.com și rulați-l. Instalați VS Code pe Windows, nu în interiorul WSL; acesta se integrează cu WSL prin extensia WSL, rulându-și interfața pe Windows, în timp ce compilatorul, fișierele și depanatorul se află în Linux.

  • macOS – descărcați arhiva .zip de pe code.visualstudio.com, dezarhivați-o și trageți Visual Studio Code.app în /Applications. Sau brew install --cask visual-studio-code.

  • Linux – instalați .deb / .rpm de pe code.visualstudio.com (de ex. sudo apt install ./code_*.deb), sau folosiți Snap/Flatpak-ul distribuției.

Extensii de instalat (din panoul Extensions, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – navigare în sursele C și IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – depanare pe cip prin GDB și un server J-Link / OpenOCD. Necesară pentru Depanarea firmware-ului.

  • WSL (ms-vscode-remote.remote-wsl) – doar Windows. Permite VS Code să deschidă un folder în interiorul distribuției voastre WSL, astfel încât editorul, terminalul, IntelliSense și Cortex-Debug să funcționeze toate în Linux. Instalați extensiile C/C++ și Cortex-Debug în gazda WSL odată conectat (VS Code vă solicită acest lucru).

14.1.1.1.2. Shell-ul gazdă

Aveți nevoie de un mediu Linux (x86-64) sau macOS (arm64) cu git și câteva unelte de bază. Alegeți secțiunea corespunzătoare sistemului vostru de operare.

14.1.1.1.2.1. Windows: instalarea WSL

WSL rulează un veritabil mediu de utilizator Ubuntu pe Windows. După ce este instalat, fiecare instrucțiune ulterioară din acest ghid este identică cu cea pentru Linux nativ.

  1. Deschideți PowerShell ca Administrator (clic dreapta pe Start -> Terminal (Admin)).

  2. Instalați WSL cu distribuția implicită Ubuntu:

    wsl --install
    

    Aceasta activează funcțiile Windows necesare, instalează nucleul WSL 2 și instalează Ubuntu. Reporniți dacă vi se cere.

  3. După repornire, Ubuntu pornește și vă cere să creați un nume de utilizator și o parolă UNIX. Acest cont este independent de contul vostru Windows.

  4. Actualizați distribuția:

    sudo apt update && sudo apt upgrade -y
    
  5. Confirmați că folosiți WSL 2 (necesar – WSL 1 nu este acceptat pentru acest flux de lucru). În PowerShell:

    wsl --list --verbose
    

    Coloana VERSION trebuie să afișeze 2. Dacă afișează 1, convertiți-o:

    wsl --set-version Ubuntu 2
    

Sfat

Lucrați în interiorul sistemului de fișiere Linux (~/ în WSL), nu sub /mnt/c/. Compilarea pe unitatea montată din Windows este dramatic mai lentă și poate cauza probleme de permisiuni la fișiere și de terminații de linie. Clonați depozitul în directorul vostru home din WSL.

Pentru a deschide proiectul mai târziu: lansați Ubuntu din meniul Start pentru un shell, sau din VS Code pe Windows apăsați Ctrl+Shift+P -> WSL: Connect to WSL, apoi File -> Open Folder și alegeți depozitul clonat din sistemul de fișiere Linux.

14.1.1.1.2.2. Cerințe preliminare Linux / WSL

SDK-ul oferă compilatorul, deci sunt necesare doar câteva pachete pe gazdă:

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

14.1.1.1.2.3. Cerințe preliminare macOS

Compilarea nativă este acceptată doar pe macOS cu Apple-silicon (arm64). Folosind Homebrew

brew install bash make coreutils

(Mac-urile Intel nu sunt o gazdă de compilare nativă acceptată – folosiți compilarea Docker din Construirea firmware-ului sau o mașină virtuală Linux.)

14.1.1.1.3. Obținerea sursei

Clonați depozitul cu toate submodulele (MicroPython, CMSIS, drivere de la furnizori etc.):

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

O clonare recursivă completă este voluminoasă. Pentru o clonare mai rapidă, superficială:

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

Notă

Când compilați o anumită placă, puteți lăsa în schimb make să preia doar submodulele acelei plăci:

make TARGET=<board> submodules

Comanda explicită git submodule update prezentată mai sus acoperă deja totul, deci acest pas este opțional.

14.1.1.1.4. Instalarea OpenMV SDK

Din rădăcina depozitului, rulați instalarea unică a SDK-ului:

make sdk

Aceasta descarcă openmv-sdk-<version>-<os>-<arch>.tar.xz de pe download.openmv.io, îi verifică suma de control SHA-256 și o extrage în ~/openmv-sdk-<version>/ (versiunea este fixată de fișierul SDK_VERSION al depozitului). Este idempotentă – rularea repetată nu face nimic dacă versiunea corectă este deja instalată, iar compilarea obișnuită se oprește cu „OpenMV SDK not found. Run «make sdk» to install it.” dacă lipsește sau este versiunea greșită.

SDK-ul include tot ce au nevoie compilarea și depanatorul, toate adăugate automat la PATH de către Makefile:

Componentă

Scop

Lanțul de unelte ARM GNU (arm-none-eabi-gcc 14.3)

Compilator, linker, arm-none-eabi-gdb pentru depanare

LLVM/clang

Folosit pentru obiecte selectate pe unele porturi

CMake, GNU Make

Orchestrarea compilării pentru bibliotecile furnizorilor

Python (relocatabil)

Scripturi de compilare, utilitare mpy-cross, semnare, unelte pentru modele

STM32CubeProgrammer (STM32_Programmer_CLI)

Scriere SWD și fluxul de recuperare STM32N6

ST Edge AI

Compilator de rețele neuronale pentru NPU-ul STM32N6

dfu-util

Scriere prin USB DFU

gdbrunner

Lansatorul serverului GDB al țintei make debug (software-ul Segger J-Link pe care îl folosește este o instalare separată)

Atenționare

OpenMV N6 și OpenMV AE3 folosesc nuclee Cortex-M55 și necesită GCC 14.3 sau mai nou. Compilarea impune acest lucru pentru aceste ținte și se oprește cu eroarea „Upgrade to GCC 14.3+ for proper CM55 support” dacă este găsit un arm-none-eabi-gcc mai vechi înaintea celui din SDK pe PATH. Lanțul de unelte din SDK-ul inclus satisface deja această cerință; eroarea înseamnă că un alt lanț de unelte, mai vechi, îl umbrește.