14.1.1.1. Nastavení vývojového prostředí

Než budete moci kompilovat, potřebujete na hostiteli tři věci: editor (doporučuje se VS Code, protože se do něj zapojuje debugger), shell v duchu Linuxu (WSL na Windows, nativní na Linux/macOS) a repozitář OpenMV s rozbaleným připnutým SDK.

14.1.1.1.1. VS Code

Pro vývoj firmwaru funguje libovolný editor – sestavení je pouhý make a debugger na hardwaru se spouští také z příkazové řádky. Visual Studio Code je prostě nejjednodušší cesta: nastavení Ladění firmwaru se zapojuje do jeho rozšíření Cortex-Debug, takže s nainstalovaným VS Code fungují zbývající stránky bez dalšího nastavování, jak pro sestavování, tak pro ladění.

14.1.1.1.1.1. Instalace VS Code

  • Windows – stáhněte instalační program z code.visualstudio.com a spusťte jej. VS Code nainstalujte na Windows, nikoli uvnitř WSL; integruje se s WSL prostřednictvím rozšíření WSL, přičemž jeho uživatelské rozhraní běží na Windows, zatímco kompilátor, soubory a debugger žijí v Linuxu.

  • macOS – stáhněte soubor .zip z code.visualstudio.com, rozbalte jej a přetáhněte Visual Studio Code.app do /Applications. Nebo brew install --cask visual-studio-code.

  • Linux – nainstalujte .deb / .rpm z code.visualstudio.com (např. sudo apt install ./code_*.deb), nebo použijte Snap/Flatpak vaší distribuce.

Rozšíření, která je třeba nainstalovat (z panelu Extensions, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – navigace ve zdrojovém kódu C a IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – ladění přímo na čipu přes GDB a server J-Link / OpenOCD. Vyžadováno pro Ladění firmwaru.

  • WSL (ms-vscode-remote.remote-wsl) – pouze Windows. Umožňuje VS Code otevřít složku uvnitř vaší distribuce WSL, takže editor, terminál, IntelliSense a Cortex-Debug fungují v Linuxu. Po připojení nainstalujte rozšíření C/C++ a Cortex-Debug do hostitele WSL (VS Code vás k tomu vyzve).

14.1.1.1.2. Hostitelský shell

Potřebujete prostředí Linux (x86-64) nebo macOS (arm64) s git a několika základními nástroji. Vyberte část odpovídající vašemu OS.

14.1.1.1.2.1. Windows: instalace WSL

WSL spouští skutečný uživatelský prostor Ubuntu na Windows. Po jeho instalaci jsou všechny pozdější pokyny v této příručce shodné s nativním Linuxem.

  1. Otevřete PowerShell jako správce (klikněte pravým tlačítkem na Start -> Terminál (správce)).

  2. Nainstalujte WSL s výchozí distribucí Ubuntu:

    wsl --install
    

    Tím se povolí požadované funkce Windows, nainstaluje se jádro WSL 2 a nainstaluje se Ubuntu. Pokud budete vyzváni, restartujte počítač.

  3. Po restartu se spustí Ubuntu a požádá vás o vytvoření uživatelského jména a hesla UNIX. Tento účet je nezávislý na vašem účtu Windows.

  4. Aktualizujte distribuci:

    sudo apt update && sudo apt upgrade -y
    
  5. Ověřte, že používáte WSL 2 (vyžadováno – WSL 1 není pro tento pracovní postup podporován). V PowerShellu:

    wsl --list --verbose
    

    Sloupec VERSION musí uvádět 2. Pokud uvádí 1, převeďte ji:

    wsl --set-version Ubuntu 2
    

Tip

Pracujte uvnitř souborového systému Linuxu (~/ ve WSL), nikoli pod /mnt/c/. Sestavování na disku připojeném z Windows je dramaticky pomalejší a může způsobit problémy s oprávněními souborů a s konci řádků. Naklonujte repozitář do svého domovského adresáře WSL.

Pro pozdější otevření projektu: spusťte Ubuntu z nabídky Start pro shell, nebo z VS Code na Windows stiskněte Ctrl+Shift+P -> WSL: Connect to WSL, poté File -> Open Folder a vyberte naklonovaný repozitář v souborovém systému Linuxu.

14.1.1.1.2.2. Předpoklady pro Linux / WSL

SDK poskytuje kompilátor, takže je potřeba jen několik hostitelských balíčků:

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

14.1.1.1.2.3. Předpoklady pro macOS

Nativní sestavování je podporováno pouze na macOS s čipem Apple (arm64). Pomocí Homebrew

brew install bash make coreutils

(Macy s Intelem nejsou podporovaným hostitelem pro nativní sestavování – použijte sestavení v Dockeru z Sestavení firmwaru nebo virtuální stroj s Linuxem.)

14.1.1.1.3. Získání zdrojového kódu

Naklonujte repozitář se všemi submoduly (MicroPython, CMSIS, ovladače dodavatelů atd.):

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

Úplné rekurzivní naklonování je rozsáhlé. Pro rychlejší, mělké naklonování:

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

Poznámka

Při sestavování konkrétní desky můžete místo toho nechat make stáhnout pouze submoduly dané desky:

make TARGET=<board> submodules

Explicitní git submodule update uvedený výše již pokrývá vše, takže tento krok je volitelný.

14.1.1.1.4. Instalace OpenMV SDK

Z kořene repozitáře spusťte jednorázovou instalaci SDK:

make sdk

Tím se z download.openmv.io stáhne openmv-sdk-<version>-<os>-<arch>.tar.xz, ověří se jeho kontrolní součet SHA-256 a rozbalí se do ~/openmv-sdk-<version>/ (verze je připnutá souborem SDK_VERSION v repozitáři). Je idempotentní – opětovné spuštění nic neudělá, pokud je již nainstalována správná verze, a běžné sestavení se přeruší s hláškou „OpenMV SDK not found. Run ‚make sdk‘ to install it.“, pokud chybí nebo je nesprávná verze.

SDK obsahuje vše, co sestavení a debugger potřebují, a vše je Makefilem automaticky přidáno do PATH:

Komponenta

Účel

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

Kompilátor, linker, arm-none-eabi-gdb pro ladění

LLVM/clang

Používá se pro vybrané objekty na některých portech

CMake, GNU Make

Orchestrace sestavování pro knihovny dodavatelů

Python (relokovatelný)

Sestavovací skripty, pomocné nástroje mpy-cross, podepisování, nástroje pro modely

STM32CubeProgrammer (STM32_Programmer_CLI)

Nahrávání přes SWD a postup obnovy STM32N6

ST Edge AI

Kompilátor neuronových sítí pro NPU STM32N6

dfu-util

Nahrávání přes USB DFU

gdbrunner

Spouštěč GDB serveru cíle make debug (software Segger J-Link, který řídí, je samostatná instalace)

Varování

OpenMV N6 a OpenMV AE3 používají jádra Cortex-M55 a vyžadují GCC 14.3 nebo novější. Sestavení to pro tyto cíle vynucuje a přeruší se s chybou „Upgrade to GCC 14.3+ for proper CM55 support“, pokud je v PATH před tím z SDK nalezen starší arm-none-eabi-gcc. Dodávaný toolchain z SDK tento požadavek již splňuje; chyba znamená, že jej zastiňuje jiný, starší toolchain.