14.1.1.3. ファームウェアのフラッシュ¶
ファームウェアのビルド で firmware.bin(およびその romfs<n>.img)を入手したら、それをカメラに書き込みます。OpenMV IDE を使う方法が推奨です。コマンドラインでの手順はカメラのファミリーごとに異なり、ページ下部のリンク先にファミリー別に記載されています。ブートローダー自体は別途復元します。ブートローダーの復元 を参照してください。
14.1.1.3.1. OpenMV IDE: カスタムファームウェアの読み込み(推奨)¶
OpenMV IDE はすべてのフラッシュツール(dfu-util、NXP SPSDK ツール、Alif SE Tools、STM32 ツール)を同梱しており、Windows では必要な USB ドライバーをインストールし、ブートローダーへの移行を処理し、接続されたカメラに対して正しいコマンドを選択します。カスタムビルドをフラッシュするには、これが推奨の方法です。
カメラを USB に接続します(Connect をクリックする必要はありません)。
Tools -> Load Custom Firmware。
ダイアログで、Firmware Path にビルドの
build/<TARGET>/bin/firmware.binを設定します。必要に応じて Erase internal file system にチェックを入れ、カメラの内部 FAT ファイルシステムを消去します(いつ、なぜ行うかは 内部ファイルシステムの消去 を参照)。
必要に応じて Reset ROMFS file system にチェックを入れ、デフォルトの ROMFS を再フラッシュします(
.imgを直接選択した場合は無効になります)。Run をクリックします。IDE はカメラをブートローダーにリセットし、正確なフラッシュコマンドとプログレスバーを表示してから、新しいファームウェアでカメラを再起動します。青色のセルフテスト LED を待ってください。その後、カメラは通常どおり再列挙されます。
Tools -> Force enter OpenMV Cam bootloader もあり、フラッシュ前にカメラを手動で DFU モードにできます。
14.1.1.3.2. Windows: USB ドライバーのインストール¶
Windows にはカメラの USB DFU、SDP、ISP インターフェース用の組み込みドライバーがないため、WinUSB ドライバーがバインドされるまでコマンドラインツール(dfu-util、NXP SPSDK ツール、Alif SE Tools)はデバイスを検出できません。OpenMV IDE の Windows インストーラーはこれらのドライバーをすべてインストールするため、最も簡単な方法は OpenMV IDE を一度インストールすることです。これにより、IDE とコマンドラインツールの両方が動作するようになります。これが、まっさらな Windows マシンで GUI によるフラッシュが成功する一方で、単体の dfu-util が動作しない理由です。
IDE のインストールが選択肢にない場合は、OpenMV IDE の share/qtcreator/drivers/ ディレクトリから該当するドライバーインストーラーを管理者として実行してください。
ドライバーインストーラー |
バインドする USB デバイス |
|---|---|
|
OpenMV DFU デバイス、および RT1062 SPSDK インターフェース( |
|
Arduino DFU デバイス( |
|
AE3 ブートローダー復旧に使用する FTDI |
|
STM32 ブートローダー復旧に使用する ST |
あるいは、Zadig または pnputil を使って特定の VID:PID に WinUSB をバインドします。これがないと Windows ではコマンドラインによるフラッシュはまったく動作しません。Linux と macOS ではドライバーのインストールは不要です(Linux には udev ルールのみが必要です)。
14.1.1.3.3. SWD 経由のフラッシュ(make deploy)¶
デバッグプローブがすでにカメラに配線されている場合(デバッグ時のように)、最速の編集・ビルド・フラッシュのサイクルでは USB DFU をバイパスし、SWD 経由でチップを直接プログラムします。STM32 カメラの場合:
make -j$(nproc) TARGET=<TARGET> deploy
これは、接続されたプローブを介して STM32_Programmer_CLI(SDK 付属)でビルドしたてのファームウェアをフラッシュします。ブートローダーへの移行、USB の再列挙、ケーブルの差し替えはありません。ビルドして deploy を実行すれば、カメラは新しいコードで再起動します。これはファームウェアの活発な開発中に推奨されるワークフローです。プローブなしでフラッシュする場合や、他者にファームウェアを配布する場合は DFU または OpenMV IDE を使用してください。
14.1.1.3.4. ブートローダー / DFU モードへの移行¶
フラッシュにはカメラをブートローダー / DFU モードにする必要があります。移行する方法は 3 つあります。
接続時(任意のカメラ)。 すべてのカメラは、電源投入時にファームウェアが起動する前の短い間、ブートローダーを実行します。カメラを USB に接続すれば、ブートローダーが短時間待ち受けます。
IDE から(任意のカメラ)。 カメラを接続した状態で Tools -> Force enter OpenMV Cam bootloader を実行すると、ブートローダーモードで再起動します。
Arduino のリセットボタン。 Arduino ボードでは、リセットボタンをダブルクリックするとブートローダーモードに入ります。
14.1.1.3.5. カメラファミリー別のコマンドラインフラッシュ¶
以下のページは、各カメラファミリーについて OpenMV IDE が内部で行っている処理を示しており、フラッシュを自分で実行したい場合(スクリプト内、CI、または生産ラインで)に役立ちます。日常的なフラッシュには OpenMV IDE を推奨します。