セカンダリCPUについて話します
当ページを開いてくださり、ありがとうございます。
このコラムでは、Toradex製品に関わるノウハウやチップス的な事柄を記載させていただきます。
Toradex製品の一部のSoM(NXPのプロセッサ)には、メインで動作するACore(Coretex-A7、Coretex-A35など)とは別にMCore(Coretex-M4など)と呼ばれるCPUを搭載したモデル*1があります。
こう言ったCPUは「Heterogeneous multi core*2」と呼ばれ、AcoreとMCoreを同時並列で動作させることができます。
使い方としては、センサ等の即応性が求められる処理をMCore(Free RTOS)で行い、結果などをマルチメディア性に優れたACore(Linux)に渡して、パネルにグラフィック表示したりIoTに送信するといったことが可能になります。
*1:Apalis iMX8、Verdin iMX8M Mini、Verdin iMX8M Plus、Colibri iMX7、Colibri iMX8X
*2:異種のアーキテクチャをもつマイクロプロセッサが統合されたCPU、異種混在のマルチコアを表す用語。(Wikipediaより抜粋)
次にMCoreの使い方などについてお話します。
- RTOS
プロセッサメーカーのNXPより、ボード(HW)に適したライブラリ(コンパイル環境)が入手できます。
その中にサンプルがありますので用途に沿って適宜変更すれば、MCore上で動作するアプリケーションを開発することが出来ます。
- コア間通信
MCoreとACore間の通信I/Fとして、「RPMSG」が用意されています。
ACore側はLinuxビルド時に、MCore側は上記のサンプルにRPMSGも含まれていますのでコンパイル時に準備をすれば、MCore動作時に結果をACore側に渡す仕組みが出来ます。
- モニタリング
MCore側の動作確認には、UARTを使用します。(ボード依存)
簡単な動作確認手順は以下になります。
- 1. ACore側にUARTA、MCore側にUARTBを接続し、PCのターミナルソフトを両系統に準備します。
- 2. 電源投入し、ACore側ターミナルソフトにてスペースキーを長押しします。
- 3. 起動動作(Boot Loader)が停止しますので、RTOS側のメモリにアプリケーションを格納し実行します。
- 4. アプリケーション内のprint文によって、MCore側ターミナルソフトに表示がなされます。
Running a Firmware on Cortex-M4以下参考の事
※最後に、複雑な仕組みで情報も少ないですので、MCoreを含めた開発を検討される場合は、お気軽に弊社へご相談ください。