コア間通信を使いこなそう!

今回は、前回動かしたOpenAMPを使ってコア間通信をしてみましょう!

OpenAMPにはコア間通信の仕組みであるRPMsgが実装されています。OSに依存しないため、アプリケーションのポータビリティが高く、様々なユース ケースに対応できます。APIの使い方や動作のフローは下記を読んでね!
APIの使い方や動作のフローは下記を読んでね!

https://github.com/OpenAMP/open-amp/wiki

echoのサンプルを改造してみよう

前回と同様にXSDKを起動し、echoのサンプルを改造します。

今回はechoを返すときに改竄したデータを返し、master側でエラー検出できることを確認します(水色にハイライトされている行を編集してください)。

図

echoのサンプルを実行してみよう

次に、前回と同様にLinuxを起動し、FreeRTOSのファームウェアをロードし、ブートします。

# echo aps_freertos_openamp_demo1.elf > /sys/class/remoteproc/remoteproc0/firmware
# echo start > /sys/class/remoteproc/remoteproc0/state

Linuxのドライバーをロードし、echoのサンプルを実行します。
# modprobe rpmsg_user_dev_driver
# echo_test

FreeRTOSの停止は下記のコマンドで行います。
# echo stop > /sys/class/remoteproc/remoteproc0/state

改造前後で動作が変化するので確認してみてください。左が改造前の正常終了。右が改造後のエラー終了の出力です。

図

図