14.1. Розробка мікропрограми

Ці сторінки призначені для розробників мікропрограм – людей, які хочуть змінювати C-код, що виконується на OpenMV Cam, а не просто писати скрипти MicroPython. Вони охоплюють повний цикл: налаштування редактора, встановлення ланцюжка збірки, компіляцію мікропрограми для всіх підтримуваних плат, прошивку вашої збірки на камеру та її налагодження на реальному обладнанні за допомогою зонда J-Link і покрокового налагодження на рівні вихідного коду у VS Code.

Після завершення ви повинні вміти на чистій машині зібрати мікропрограму, записати її на камеру, встановити точку зупину в C-джерелі та виконувати процесор покроково.

Примітка

Мікропрограма OpenMV є форком MicroPython з доданою бібліотекою технічного зору OpenMV, драйверами та портами для плат. Вихідний код знаходиться за адресою github.com/openmv/openmv. Модулі Python image / ml / csi, які ви використовуєте в скриптах, – це C-код у цьому репозиторії.

14.1.1. Як працює збірка

Перед початком варто розуміти дві речі, оскільки вони пояснюють кожну інструкцію нижче:

  • Збірка керується SDK. Ви не встановлюєте компілятор ARM, CMake, Python або інструменти ST самостійно. Репозиторій фіксує точну версію OpenMV SDK (файл SDK_VERSION1.6.0 на момент написання), а make sdk завантажує та розпаковує цей SDK у ~/openmv-sdk-<version>/. Потім збірка додає на початок PATH каталоги gcc, llvm, cmake, python та інструментів ST зі SDK. Це означає, що всі збирають з точно однаковим ланцюжком інструментів, а налаштування хоста мінімальне.

  • Нативної збірки для Windows немає. Ланцюжок інструментів і скрипти збірки орієнтовані лише на Linux (x86-64) та macOS (arm64). На Windows збірка виконується всередині WSL (Windows Subsystem for Linux), що є справжнім середовищем Linux – тому після встановлення WSL користувачі Windows слідують інструкціям для Linux. Також є варіанти зі збіркою на основі Docker та у Linux VM.

Загальна послідовність на будь-якій підтримуваній системі завжди така:

  1. Встановіть редактор (VS Code).

  2. Отримайте Linux-подібну оболонку (рідний Linux, macOS або WSL на Windows).

  3. Клонуйте репозиторій та його підмодулі.

  4. make sdk – одноразове встановлення ланцюжка інструментів.

  5. make -C lib/micropython/mpy-cross – збірка компілятора байт-коду.

  6. make TARGET=<board> – збірка мікропрограми.

  7. Прошийте її (OpenMV IDE або dfu-util).

  8. За бажанням підключіть J-Link та налагоджуйте її.

На наведених нижче сторінках детально описано кожен крок по порядку.