14.1.1.1. Налаштування середовища розробки

Перед компіляцією вам потрібні три речі на хост-машині: редактор (рекомендується VS Code, оскільки відладчик інтегрується з ним), оболонка у стилі Linux (WSL на Windows, нативна на Linux/macOS) та репозиторій OpenMV з розпакованим закріпленим SDK.

14.1.1.1.1. VS Code

Для розробки мікропрограми підійде будь-який редактор – збирання це просто make, а апаратний відладчик також запускається з командного рядка. Visual Studio Code є просто найпростішим шляхом: налаштування Налагодження мікропрограми інтегрується з його розширенням Cortex-Debug, тому з встановленим VS Code решта сторінок цього посібника працює з коробки, як для збирання, так і для налагодження.

14.1.1.1.1.1. Встановлення VS Code

  • Windows – завантажте інсталятор з code.visualstudio.com і запустіть його. Встановлюйте VS Code на Windows, а не всередині WSL; він інтегрується з WSL через розширення WSL, запускаючи UI на Windows, тоді як компілятор, файли та відладчик знаходяться в Linux.

  • macOS – завантажте .zip з code.visualstudio.com, розпакуйте та перетягніть Visual Studio Code.app у /Applications. Або brew install --cask visual-studio-code.

  • Linux – встановіть .deb / .rpm з code.visualstudio.com (наприклад, sudo apt install ./code_*.deb), або використайте Snap/Flatpak дистрибутива.

Розширення для встановлення (з панелі розширень, Ctrl+Shift+X):

  • C/C++ (ms-vscode.cpptools) – навігація по коду C та IntelliSense.

  • Cortex-Debug (marus25.cortex-debug) – внутрішньосхемне налагодження через GDB та сервер J-Link / OpenOCD. Необхідно для Налагодження мікропрограми.

  • WSL (ms-vscode-remote.remote-wsl) – лише Windows. Дозволяє VS Code відкривати папку всередині дистрибутива WSL, щоб редактор, термінал, IntelliSense та Cortex-Debug працювали в Linux. Встановіть розширення C/C++ та Cortex-Debug у хост WSL після підключення (VS Code запропонує це зробити).

14.1.1.1.2. Оболонка хоста

Вам потрібне середовище Linux (x86-64) або macOS (arm64) з git та кількома базовими інструментами. Виберіть розділ для вашої ОС.

14.1.1.1.2.1. Windows: встановлення WSL

WSL запускає справжній користувацький простір Ubuntu на Windows. Після встановлення всі подальші інструкції цього посібника ідентичні нативному Linux.

  1. Відкрийте PowerShell від імені адміністратора (правий клік Пуск -> Terminal (Admin)).

  2. Встановіть WSL з дистрибутивом Ubuntu за замовчуванням:

    wsl --install
    

    Це вмикає необхідні функції Windows, встановлює ядро WSL 2 та Ubuntu. Перезавантажтесь, якщо запропоновано.

  3. Після перезавантаження Ubuntu запускається та просить створити ім’я користувача та пароль UNIX. Цей обліковий запис незалежний від вашого облікового запису Windows.

  4. Оновіть дистрибутив:

    sudo apt update && sudo apt upgrade -y
    
  5. Переконайтеся, що ви використовуєте WSL 2 (обов’язково – WSL 1 не підтримується для цього робочого процесу). У PowerShell:

    wsl --list --verbose
    

    Стовпець VERSION повинен містити значення 2. Якщо там 1, конвертуйте:

    wsl --set-version Ubuntu 2
    

Порада

Працюйте всередині файлової системи Linux (~/ у WSL), не в /mnt/c/. Збирання на диску Windows працює значно повільніше та може спричинити проблеми з правами доступу до файлів та закінченнями рядків. Клонуйте репозиторій у домашній каталог WSL.

Щоб відкрити проект пізніше: запустіть Ubuntu з меню Пуск для отримання оболонки, або у VS Code на Windows натисніть Ctrl+Shift+P -> WSL: Connect to WSL, потім File -> Open Folder та виберіть клонований репозиторій у файловій системі Linux.

14.1.1.1.2.2. Передумови для Linux / WSL

SDK надає компілятор, тому потрібна лише невелика кількість пакетів хоста:

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

14.1.1.1.2.3. Передумови для macOS

Нативне збирання підтримується лише на macOS з процесором Apple Silicon (arm64). Використовуючи Homebrew

brew install bash make coreutils

(Mac на базі Intel не є підтримуваним нативним хостом збирання – використовуйте збирання в Docker з Збірка мікропрограми або VM з Linux.)

14.1.1.1.3. Отримання вихідного коду

Клонуйте репозиторій з усіма субмодулями (MicroPython, CMSIS, драйвери постачальників тощо):

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

Повне рекурсивне клонування займає багато місця. Для швидшого поверхневого клонування:

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

Примітка

При збиранні конкретної плати ви можете замість цього дозволити make завантажити лише субмодулі для тієї плати:

make TARGET=<board> submodules

Явний git submodule update, показаний вище, вже охоплює все, тому цей крок є необов’язковим.

14.1.1.1.4. Встановлення OpenMV SDK

З кореня репозиторію запустіть одноразове встановлення SDK:

make sdk

Це завантажує openmv-sdk-<version>-<os>-<arch>.tar.xz з download.openmv.io, перевіряє контрольну суму SHA-256 та розпаковує в ~/openmv-sdk-<version>/ (версія закріплена файлом SDK_VERSION репозиторію). Операція ідемпотентна – повторний запуск нічого не робить, якщо правильна версія вже встановлена, а звичайне збирання завершується з помилкою «OpenMV SDK not found. Run „make sdk“ to install it.», якщо SDK відсутній або має неправильну версію.

SDK містить все необхідне для збирання та відладчика, все це автоматично додається до PATH Makefile’ом:

Компонент

Призначення

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

Компілятор, компонувальник, arm-none-eabi-gdb для налагодження

LLVM/clang

Використовується для вибраних об’єктів на деяких портах

CMake, GNU Make

Оркестрація збирання для бібліотек постачальників

Python (relocatable)

Скрипти збирання, допоміжні засоби mpy-cross, підписання, інструменти моделей

STM32CubeProgrammer (STM32_Programmer_CLI)

Прошивання через SWD та процес відновлення STM32N6

ST Edge AI

Компілятор нейронних мереж для NPU STM32N6

dfu-util

Прошивання через USB DFU

gdbrunner

Засіб запуску GDB-сервера для цілі make debug (програмне забезпечення Segger J-Link, яке він керує, встановлюється окремо)

Попередження

OpenMV N6 та OpenMV AE3 використовують ядра Cortex-M55 і вимагають GCC 14.3 або новішої версії. Збирання забезпечує це для відповідних цілей і завершується з помилкою «Upgrade to GCC 14.3+ for proper CM55 support», якщо перед SDK знайдено старіший arm-none-eabi-gcc у PATH. Вбудований інструментарій SDK вже задовольняє цю вимогу; помилка означає, що інший, старіший інструментарій затіняє його.