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, запуская свой интерфейс в 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 вашего дистрибутива.

Расширения для установки (из панели Extensions, 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-кремнием (arm64). С использованием Homebrew:

brew install bash make coreutils

(Mac на Intel не являются поддерживаемым хостом для нативной сборки – используйте сборку через Docker из Сборка прошивки или виртуальную машину 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 (arm-none-eabi-gcc 14.3)

Компилятор, компоновщик, arm-none-eabi-gdb для отладки

LLVM/clang

Используется для отдельных объектов на некоторых портах

CMake, GNU Make

Оркестрация сборки для библиотек поставщиков

Python (перемещаемый)

Скрипты сборки, вспомогательные средства 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», если более старый arm-none-eabi-gcc обнаруживается в PATH раньше, чем тот, что в SDK. Поставляемый инструментарий SDK уже удовлетворяет этому требованию; данная ошибка означает, что его заслоняет другой, более старый инструментарий.