OpenAMP
詳細情報
- 種別
- フレームワーク
- ライセンス
- BSD-3-Clause
- ソースコード
- github.com/OpenAMP
- 公式サイト
- openampproject.org
Linux の remoteproc と RPMsg に対応する、Linux を動かさない側のためのライブラリ。RTOS やベアメタルのプログラムが同じプロトコルを話せるようにする。
Linux カーネルには RPMsg が組み込まれているが、補助コア側には流用できるカーネルがない。OpenAMP はその穴を埋める、スタンドアロンの C ライブラリだ。virtio キュー、エンドポイント、そして remoteproc がファームウェアのロード時に読むリソーステーブルを実装している。その下には libmetal という薄い層があり、割り込み、共有メモリ、ロックに関する FreeRTOS、Zephyr、ベアメタル、Linux ユーザー空間の違いを隠してくれる。
当初は Xilinx と Mentor Graphics が主導し、2019年に Linaro 傘下のコミュニティプロジェクトとなった。Xilinx、ST、NXP などのチップで AMP を実現する標準的な道であり、ベンダーのサンプルは初日から動く。面倒が始まるのは、誰かがメモリマップを書き換えたときだ。