14.1.1.1. Konfiguracja środowiska programistycznego

Zanim będziesz mógł skompilować, potrzebujesz na hoście trzech rzeczy: edytora (zalecany jest VS Code, ponieważ wpina się w niego debuger), powłoki w stylu Linuksa (WSL w systemie Windows, natywnie w Linux/macOS) oraz repozytorium OpenMV z rozpakowanym przypiętym SDK.

14.1.1.1.1. VS Code

Do tworzenia oprogramowania układowego nadaje się dowolny edytor – kompilacja to po prostu make, a debuger sprzętowy działa również z wiersza poleceń. Visual Studio Code jest po prostu najprostszą drogą: konfiguracja Debugowanie oprogramowania układowego wpina się w jego rozszerzenie Cortex-Debug, więc z zainstalowanym VS Code reszta tych stron działa od razu, zarówno przy budowaniu, jak i przy debugowaniu.

14.1.1.1.1.1. Instalacja VS Code

  • Windows – pobierz instalator ze strony code.visualstudio.com i uruchom go. Zainstaluj VS Code w systemie Windows, a nie wewnątrz WSL; integruje się on z WSL poprzez rozszerzenie WSL, uruchamiając swój interfejs użytkownika w systemie Windows, podczas gdy kompilator, pliki i debuger znajdują się w Linuksie.

  • macOS – pobierz plik .zip ze strony code.visualstudio.com, rozpakuj go i przeciągnij Visual Studio Code.app do /Applications. Albo użyj brew install --cask visual-studio-code.

  • Linux – zainstaluj plik .deb / .rpm ze strony code.visualstudio.com (np. sudo apt install ./code_*.deb) lub użyj pakietu Snap/Flatpak swojej dystrybucji.

Rozszerzenia do zainstalowania (z panelu Extensions, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – nawigacja po kodzie źródłowym C oraz IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – debugowanie na chipie przez GDB i serwer J-Link / OpenOCD. Wymagane dla Debugowanie oprogramowania układowego.

  • WSL (ms-vscode-remote.remote-wsl) – tylko Windows. Umożliwia VS Code otwarcie folderu wewnątrz twojej dystrybucji WSL, dzięki czemu edytor, terminal, IntelliSense oraz Cortex-Debug działają w Linuksie. Po połączeniu zainstaluj rozszerzenia C/C++ oraz Cortex-Debug w hoście WSL (VS Code wyświetli odpowiednią prośbę).

14.1.1.1.2. Powłoka hosta

Potrzebujesz środowiska Linux (x86-64) lub macOS (arm64) z git oraz kilkoma podstawowymi narzędziami. Wybierz sekcję odpowiednią dla swojego systemu operacyjnego.

14.1.1.1.2.1. Windows: instalacja WSL

WSL uruchamia w systemie Windows prawdziwą przestrzeń użytkownika Ubuntu. Po jego zainstalowaniu każda kolejna instrukcja w tym przewodniku jest identyczna jak w natywnym Linuksie.

  1. Otwórz PowerShell jako Administrator (kliknij prawym przyciskiem myszy na Start -> Terminal (Admin)).

  2. Zainstaluj WSL z domyślną dystrybucją Ubuntu:

    wsl --install
    

    Spowoduje to włączenie wymaganych funkcji systemu Windows, zainstalowanie jądra WSL 2 oraz zainstalowanie Ubuntu. Uruchom ponownie komputer, jeśli pojawi się odpowiedni komunikat.

  3. Po ponownym uruchomieniu Ubuntu zostaje uruchomione i prosi o utworzenie nazwy użytkownika oraz hasła UNIX. To konto jest niezależne od twojego konta Windows.

  4. Zaktualizuj dystrybucję:

    sudo apt update && sudo apt upgrade -y
    
  5. Potwierdź, że używasz WSL 2 (wymagane – WSL 1 nie jest obsługiwany w tym przepływie pracy). W programie PowerShell:

    wsl --list --verbose
    

    Kolumna VERSION musi pokazywać 2. Jeśli pokazuje 1, przekonwertuj dystrybucję:

    wsl --set-version Ubuntu 2
    

Wskazówka

Pracuj wewnątrz systemu plików Linuksa (~/ w WSL), a nie pod /mnt/c/. Budowanie na dysku zamontowanym z Windows jest znacznie wolniejsze i może powodować problemy z uprawnieniami do plików oraz znakami końca wiersza. Sklonuj repozytorium do swojego katalogu domowego WSL.

Aby otworzyć projekt później: uruchom Ubuntu z menu Start, aby uzyskać powłokę, albo w VS Code w systemie Windows naciśnij Ctrl+Shift+P -> WSL: Connect to WSL, następnie File -> Open Folder i wybierz sklonowane repozytorium w systemie plików Linuksa.

14.1.1.1.2.2. Wymagania wstępne Linux / WSL

SDK dostarcza kompilator, więc potrzebna jest tylko garstka pakietów hosta:

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

14.1.1.1.2.3. Wymagania wstępne macOS

Budowanie natywne jest obsługiwane wyłącznie na macOS z układami Apple silicon (arm64). Z użyciem Homebrew

brew install bash make coreutils

(Maki z procesorami Intel nie są obsługiwanym natywnym hostem budowania – użyj kompilacji w Dockerze z Budowanie oprogramowania układowego lub maszyny wirtualnej z Linuksem.)

14.1.1.1.3. Pobieranie kodu źródłowego

Sklonuj repozytorium ze wszystkimi submodułami (MicroPython, CMSIS, sterowniki producentów itp.):

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

Pełny rekurencyjny klon jest duży. Aby uzyskać szybszy, płytki klon:

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

Informacja

Przy budowaniu konkretnej płytki możesz zamiast tego pozwolić make pobrać tylko submoduły tej płytki:

make TARGET=<board> submodules

Pokazane powyżej jawne git submodule update obejmuje już wszystko, więc ten krok jest opcjonalny.

14.1.1.1.4. Instalacja OpenMV SDK

Z katalogu głównego repozytorium uruchom jednorazową instalację SDK:

make sdk

Pobiera ono openmv-sdk-<version>-<os>-<arch>.tar.xz z download.openmv.io, weryfikuje sumę kontrolną SHA-256 i rozpakowuje je do ~/openmv-sdk-<version>/ (wersja jest przypięta przez plik SDK_VERSION repozytorium). Jest idempotentne – ponowne uruchomienie nic nie robi, jeśli właściwa wersja jest już zainstalowana, a zwykła kompilacja przerywa się z komunikatem „OpenMV SDK not found. Run «make sdk» to install it.”, jeśli SDK brakuje lub jest w niewłaściwej wersji.

SDK zawiera wszystko, czego potrzebują kompilacja i debuger, a wszystko to jest automatycznie dodawane do PATH przez Makefile:

Komponent

Przeznaczenie

Łańcuch narzędzi ARM GNU (arm-none-eabi-gcc 14.3)

Kompilator, linker, arm-none-eabi-gdb do debugowania

LLVM/clang

Używany dla wybranych obiektów na niektórych portach

CMake, GNU Make

Orkiestracja kompilacji bibliotek producentów

Python (relokowalny)

Skrypty kompilacji, pomocnicze narzędzia mpy-cross, podpisywanie, narzędzia do modeli

STM32CubeProgrammer (STM32_Programmer_CLI)

Wgrywanie przez SWD oraz przepływ odzyskiwania STM32N6

ST Edge AI

Kompilator sieci neuronowych dla NPU STM32N6

dfu-util

Wgrywanie przez USB DFU

gdbrunner

Program uruchamiający serwer GDB celu make debug (oprogramowanie Segger J-Link, którym steruje, instaluje się osobno)

Ostrzeżenie

OpenMV N6 oraz OpenMV AE3 używają rdzeni Cortex-M55 i wymagają GCC 14.3 lub nowszego. Kompilacja wymusza to dla tych celów i przerywa się z błędem „Upgrade to GCC 14.3+ for proper CM55 support”, jeśli przed wersją z SDK w PATH zostanie znaleziony starszy arm-none-eabi-gcc. Dołączony łańcuch narzędzi SDK już spełnia ten wymóg; błąd oznacza, że przesłania go inny, starszy łańcuch narzędzi.