14.1.1.1. 開発環境のセットアップ

コンパイルを始める前に、ホスト上に 3 つのものが必要です。エディター(デバッガーが組み込めるため VS Code を推奨)、Linux 系のシェル(Windows では WSL、Linux/macOS ではネイティブ)、そしてピン留めされた SDK を展開した OpenMV リポジトリです。

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 は WSL の内部ではなく Windows にインストールしてください。VS Code は WSL 拡張機能を通じて WSL と連携し、UI を Windows 上で動かしながら、コンパイラー、ファイル、デバッガーは Linux 側に置かれます。

  • macOS -- code.visualstudio.com から .zip をダウンロードして展開し、Visual Studio Code.app/Applications にドラッグします。または brew install --cask visual-studio-code を実行します。

  • Linux -- code.visualstudio.com から .deb / .rpm をインストールするか(例: sudo apt install ./code_*.deb)、ディストリビューションの Snap/Flatpak を使用します。

インストールする拡張機能(拡張機能パネル、Ctrl+Shift+X から):

  • C/C++ms-vscode.cpptools)-- C ソースのナビゲーションと IntelliSense。

  • Cortex-Debugmarus25.cortex-debug)-- GDB と J-Link / OpenOCD サーバーを介したオンチップデバッグ。ファームウェアのデバッグ に必要です。

  • WSLms-vscode-remote.remote-wsl)-- Windows のみ。VS Code が WSL ディストリビューションの内部にあるフォルダーを開けるようになり、エディター、ターミナル、IntelliSense、Cortex-Debug がすべて Linux 上で動作します。接続したら、C/C++ と Cortex-Debug の拡張機能を WSL ホスト側に一度インストールしてください(VS Code が促してきます)。

14.1.1.1.2. ホストシェル

git と少数の基本ツールを備えた Linux(x86-64)または macOS(arm64)環境が必要です。お使いの OS のセクションを選んでください。

14.1.1.1.2.1. Windows: WSL のインストール

WSL は Windows 上で本物の Ubuntu ユーザーランドを動かします。インストール後は、このガイドの以降の手順はすべてネイティブ Linux と同一です。

  1. PowerShell を管理者として開きます(スタートを右クリック -> ターミナル (管理者))。

  2. デフォルトの Ubuntu ディストリビューションで WSL をインストールします:

    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
    

Tip

Linux ファイルシステム内(WSL の ~/)で作業し、/mnt/c/ 配下では作業しないでください。Windows マウントされたドライブ上でのビルドは著しく遅く、ファイルパーミッションや改行コードの問題を引き起こす可能性があります。リポジトリは WSL のホームディレクトリにクローンしてください。

後でプロジェクトを開くには、スタートメニューから Ubuntu を起動してシェルを開くか、Windows の VS Code で 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 の前提条件

ネイティブビルドは Apple シリコン(arm64)の macOS でのみサポートされます。Homebrew を使用します:

brew install bash make coreutils

(Intel Mac はサポートされたネイティブビルドホストではありません。ファームウェアのビルド の Docker ビルドか Linux VM を使用してください。)

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

これは download.openmv.io から openmv-sdk-<version>-<os>-<arch>.tar.xz をダウンロードし、その SHA-256 チェックサムを検証して ~/openmv-sdk-<version>/ に展開します(バージョンはリポジトリの SDK_VERSION ファイルでピン留めされています)。これは冪等です。正しいバージョンがすでにインストールされていれば再実行しても何も行わず、欠落しているかバージョンが誤っている場合は通常のビルドが "OpenMV SDK not found. Run 'make sdk' to install it." で中止されます。

SDK にはビルドとデバッガーが必要とするものがすべて同梱されており、Makefile によってすべて自動的に PATH に追加されます:

コンポーネント

用途

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

STM32N6 NPU 向けのニューラルネットワークコンパイラー

dfu-util

USB DFU 書き込み

gdbrunner

make debug ターゲットの GDB サーバーランチャー(それが駆動する Segger J-Link ソフトウェアは別途インストールが必要です)

警告

OpenMV N6 と OpenMV AE3 は Cortex-M55 コアを使用しており、GCC 14.3 以降が必要です。ビルドはこれらのターゲットに対してこれを強制し、PATH 上で SDK のものより先に古い arm-none-eabi-gcc が見つかった場合は "Upgrade to GCC 14.3+ for proper CM55 support" エラーで中止されます。同梱の SDK ツールチェーンはすでにこれを満たしています。このエラーは、別の古いツールチェーンがそれを覆い隠していることを意味します。