14.1. ファームウェア開発¶
これらのページは、ファームウェア開発者、つまり MicroPython スクリプトを書くだけでなく、OpenMV Cam 上で動作する C コードを変更したい人向けです。エディターのセットアップ、ビルドツールチェーンのインストール、サポートされるすべてのボード向けのファームウェアのコンパイル、ビルドのカメラへのフラッシュ、J-Link プローブと VS Code でのシングルステップ・ソースレベルデバッグによる実機でのデバッグまで、ループ全体をカバーします。
最後まで進めば、まっさらなマシンを用意し、ファームウェアをビルドし、カメラに書き込み、C ソースにブレークポイントを設定して、プロセッサをシングルステップ実行できるようになるはずです。
注釈
OpenMV ファームウェアは MicroPython のフォークで、OpenMV のマシンビジョンライブラリ、ドライバー、ボードポートを追加したものです。ソースは github.com/openmv/openmv にあります。スクリプトで使用する Python の image / ml / csi モジュールは、このリポジトリ内の C コードです。
14.1.1. ビルドの仕組み¶
始める前に理解しておく価値のあることが 2 つあります。これらは以下のすべての手順の理由を説明するものです。
ビルドは SDK 駆動です。 ARM コンパイラー、CMake、Python、ST ツールを自分でインストールする必要はありません。リポジトリは正確な OpenMV SDK バージョンを固定しており(
SDK_VERSIONファイル。執筆時点では1.6.0)、make sdkがその SDK をダウンロードして~/openmv-sdk-<version>/に展開します。ビルドはその後、SDK のgcc、llvm、cmake、python、ST ツールの各ディレクトリをPATHの先頭に追加します。これにより、誰もがまったく同じツールチェーンでビルドでき、ホストのセットアップは最小限で済みます。ネイティブの Windows ビルドはありません。 ツールチェーンとビルドスクリプトは Linux(x86-64)と macOS(arm64)のみを対象としています。Windows では WSL(Windows Subsystem for Linux)内でビルドします。これは本物の Linux 環境なので、WSL をインストールすれば、Windows ユーザーは Linux の手順をそのまま実行できます。Docker ベースのビルドや Linux VM も選択肢です。
サポートされるすべてのシステムでの大まかなシーケンスは常に次のとおりです。
エディター(VS Code)をインストールする。
Linux ライクなシェルを用意する(ネイティブ Linux、macOS、または Windows 上の WSL)。
リポジトリとそのサブモジュールをクローンする。
make sdk-- 一度限りのツールチェーンインストール。make -C lib/micropython/mpy-cross-- バイトコードコンパイラーをビルドする。make TARGET=<board>-- ファームウェアをビルドする。フラッシュする(OpenMV IDE または
dfu-util)。必要に応じて、J-Link を接続してデバッグする。
以下のページでは、各ステップを順に説明します。