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-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. ホストシェル¶
git と少数の基本ツールを備えた Linux(x86-64)または macOS(arm64)環境が必要です。お使いの OS のセクションを選んでください。
14.1.1.1.2.1. Windows: WSL のインストール¶
WSL は Windows 上で本物の Ubuntu ユーザーランドを動かします。インストール後は、このガイドの以降の手順はすべてネイティブ Linux と同一です。
PowerShell を管理者として開きます(スタートを右クリック -> ターミナル (管理者))。
デフォルトの Ubuntu ディストリビューションで WSL をインストールします:
wsl --installこれにより必要な Windows 機能が有効化され、WSL 2 カーネルがインストールされ、Ubuntu がインストールされます。プロンプトが表示されたら再起動してください。
再起動後、Ubuntu が起動し、UNIX のユーザー名とパスワードの作成を求められます。このアカウントは Windows アカウントとは独立しています。
ディストリビューションを更新します:
sudo apt update && sudo apt upgrade -yWSL 2 であることを確認してください(必須です。このワークフローでは WSL 1 はサポートされません)。PowerShell で次を実行します:
wsl --list --verboseVERSION列が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 ツールチェーン( |
コンパイラー、リンカー、デバッグ用の |
LLVM/clang |
一部のポートで特定のオブジェクトに使用されます |
CMake、GNU Make |
ベンダーライブラリのビルドオーケストレーション |
Python(再配置可能) |
ビルドスクリプト、 |
STM32CubeProgrammer( |
SWD 書き込みと STM32N6 のリカバリーフロー |
ST Edge AI |
STM32N6 NPU 向けのニューラルネットワークコンパイラー |
|
USB DFU 書き込み |
|
|
警告
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 ツールチェーンはすでにこれを満たしています。このエラーは、別の古いツールチェーンがそれを覆い隠していることを意味します。