今回は、前回動かしたOpenAMPを使ってコア間通信をしてみましょう!
OpenAMPにはコア間通信の仕組みであるRPMsgが実装されています。OSに依存しないため、アプリケーションのポータビリティが高く、様々なユース ケースに対応できます。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
改造前後で動作が変化するので確認してみてください。左が改造前の正常終了。右が改造後のエラー終了の出力です。
Xilinx社製 Zynq® UltraScale+™ MPSoC搭載ボード
ザイリンクス社のZynq UltraScale+ MPSoC デバイスは、Quad-core Arm® Cortex®-A53とDual-core Arm Cortex-R5、最大1143KロジックセルのFPGAを搭載した、All Programmable SoCデバイスです。CPUコアの性能はもちろんのこと、DDR4対応やセキュリティのサポート、GPUにはDual-coreのMali™-400、USB、GbE、PCIe Gen2x4、DisplayPortをも搭載しています。開発ツールは、Vivado® Design Suiteをはじめ、SDSoCによるプログラマブルデバイスならではのシステム開発環境が利用できます。今回の講座では、Zynq UltraScale+を搭載した「ZCU102/ZCU104評価キット」を使用します。
最新情報をメーカーサイトで見る
DTSインサイト社製 adviceLUNA Ⅱ
情報家電などの組込み製品には、高機能であることや高い処理性能が求められています。LinuxやAndroidなどのプラットフォームには、マルチコアCPUが搭載されるようになり、システムは複雑かつ大規模化し、ソフトウェアのデバッグは困難を増しています。adviceLUNA Ⅱは、従来デバッガのデバッグ機能に加え、Linuxデバッグやマルチコアデバッグに対応した高度なデバッグ機能、トレース機能、測定機能、解析機能を提供することで、MMUの仮想記憶環境やマルチコアCPUで並行動作するような複雑なソフトウェアのデバッグをサポートします。
最新情報をメーカーサイトで見る
組み込みLinux導入/開発支援サービス
組込みLinuxによりお客様の装置開発に新たな価値を提供します。
富士通コンピュータテクノロジーズ
こちらも是非
“もっと見る” 組み込みLinux|MPSoC編
PMUを使いこなして、より安全なシステム設計にチャレンジ!
MUを使ってMPSoCの温度と電力を監視する 今回は、MPSoCのPMUを活用してみましょう。これまではMPSoCのArm Cortex-A53とArm Cortex-R5を活用してきましたが、今回はもう一つのプロセッサであるであるPMUを活用してみましょう。
adviceLUNA Ⅱを使ってOpenAMPのコア間通信をデバッグしよう!
今回は、Arm Cortex-A53上のLinuxとArm Cortex-R5上のFreeRTOSをデバッグしてみたいと思います。デバッガとしては、Armを使ったシステム開発にて根強い人気を誇る「adviceLUNA Ⅱ」を選択しています。
Zynqに搭載されたPS部を活用し、仮想化ソフトウェア「Xen」を実行してみよう!
今回は、MPSoCのPS部を活用して、Linuxの仮想化の実装であるXenを動かしてみましょう。MPSoCは、Arm Cortex-A53クアッド コアで複数のOSを動作させられる高いパフォーマンスなので、仮想マシン(VM)を動かすことができます。