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.
Відкрийте PowerShell від імені адміністратора (правий клік Пуск -> Terminal (Admin)).
Встановіть WSL з дистрибутивом Ubuntu за замовчуванням:
wsl --installЦе вмикає необхідні функції Windows, встановлює ядро WSL 2 та Ubuntu. Перезавантажтесь, якщо запропоновано.
Після перезавантаження Ubuntu запускається та просить створити ім’я користувача та пароль UNIX. Цей обліковий запис незалежний від вашого облікового запису Windows.
Оновіть дистрибутив:
sudo apt update && sudo apt upgrade -yПереконайтеся, що ви використовуєте 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 ( |
Компілятор, компонувальник, |
LLVM/clang |
Використовується для вибраних об’єктів на деяких портах |
CMake, GNU Make |
Оркестрація збирання для бібліотек постачальників |
Python (relocatable) |
Скрипти збирання, допоміжні засоби |
STM32CubeProgrammer ( |
Прошивання через SWD та процес відновлення STM32N6 |
ST Edge AI |
Компілятор нейронних мереж для NPU STM32N6 |
|
Прошивання через USB DFU |
|
Засіб запуску GDB-сервера для цілі |
Попередження
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 вже задовольняє цю вимогу; помилка означає, що інший, старіший інструментарій затіняє його.