MCUboot
詳細情報
- 種類
- ブートローダ
- ライセンス
- Apache 2.0
- 公式サイト
- trustedfirmware.org
- ソースコード
- GitHub
32ビットマイコン向けの、プラットフォームに依存しないオープンなブートローダ。有効な署名を持つファームウェアしか起動しない。
MCUbootはApache Mynewtプロジェクトから生まれ、現在はTrusted Firmwareの下で開発されている。フラッシュは二つのスロットに分けられる。実行中のプライマリと、新しいイメージをダウンロードするセカンダリだ。次の起動時にMCUbootが署名(RSA、ECDSA、Ed25519)を検証し、イメージを入れ替えて新しい方を起動する。
巧妙なのはテストモードである。新しいファームウェアは自分で正常に動いていることを確認しなければならず、次のリセットまでに確認がなければ、MCUbootは元に戻す。OTA更新が失敗しても、起こるのは余分な再起動一回であって、デバイスがブリックすることはない。Zephyr、NuttX、RIOTは標準で対応しており、独自のものを作る手間をベンダーが惜しむ場面では、MCUbootが事実上の標準になっている。