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 の gccllvmcmakepython、ST ツールの各ディレクトリを PATH の先頭に追加します。これにより、誰もがまったく同じツールチェーンでビルドでき、ホストのセットアップは最小限で済みます。

  • ネイティブの 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、または Windows 上の WSL)。

  3. リポジトリとそのサブモジュールをクローンする。

  4. make sdk -- 一度限りのツールチェーンインストール。

  5. make -C lib/micropython/mpy-cross -- バイトコードコンパイラーをビルドする。

  6. make TARGET=<board> -- ファームウェアをビルドする。

  7. フラッシュする(OpenMV IDE または dfu-util)。

  8. 必要に応じて、J-Link を接続してデバッグする。

以下のページでは、各ステップを順に説明します。