NXPチームの皆様、こんにちは。
現在、 MCUXpresso IDE v11.9.1(ビルド2170、2024年4月19 日)を使って i.MX RT1176 評価ボード を開発中 です。
NXP が、独立したイーサネットインターフェースを持つCortex-M7とCortex-M4コアの両方の利用を示すマルチコアの例プロジェクトを提供しているかどうか知りたいです。
私の要望は以下のとおりです。
- イーサネットポート1 は Cortex-M7 コア で初期化・管理されるべき です。
- イーサネットポート2 は Cortex-M4 コア で初期化・管理されるべき です。
- 両方のイーサネットインターフェースは、それぞれのコア上で同時に独立して動作すべきです。
- もしコア間通信(RPMsgやMU)が必要な場合は、推奨されるアプローチを説明する例やドキュメントがあれば教えていただけるとありがたいです。
MCUXpresso SDKの例を探しましたが、このユースケースに合うプロジェクトは見つかりませんでした。
教えていただけませんか?
- M7コアにイーサネットコントローラーを使い、M4コアにもう一方のイーサネットコントローラーを搭載している公式のNXPマルチコア例はありますか?
- もしそのような例があれば、プロジェクトを共有していただけるか、対応するSDK例名やリポジトリリンクを教えていただけませんか?
- もしそのような例が存在しない場合は、i.MX RT1176でこの構成を実装するための推奨アーキテクチャを教えていただけますか?
参考プロジェクト、アプリケーションノート、またはドキュメントがあれば大変ありがたいです。
再開まで今しばらくお待ちください。
よろしくお願いいたします。
アラヴィンド・トガラリ
@Aravind_Togaralli様、
残念ながら、Cortex-M7とCortex-M4が独立したイーサネットインターフェースを同時に動作させている公式な例は現在存在しません。
しかし、推奨されるアーキテクチャは、2つのイーサネットサブシステムを完全に独立させておくことです。
- 一方のイーサネットコントローラ(例:ENET/ENET_QOS)をCM7に、もう一方をCM4に割り当てます。
- 各コアは独自のMACドライバー、PHY制御、lwIPスタック、netifインスタンス、DMAディスクリプタ、パケットバッファ、割り込み、ネットワーク構成を管理すべきです。
- RPMsg-Lite、MU、または共有メモリは、コア間の制御およびステータス通信が必要な場合にのみ使用してください。
- 開発中にRDC/XRDC2を使ってイーサネット周辺機器とメモリリソースを2コア間で分離することを検討してください。
- イーサネットDMAバッファの場合、選択したメモリ領域が対応するCPUとイーサネットDMAマスターの両方がアクセスできるようにしてください。
提案する実装方法は以下のとおりです。
- 動作するRT1170マルチコアのサンプルから始めましょう。
- 標準的なlwIPの例を使ってCM7でイーサネットを起動します。
- 2つ目のイーサネットコントローラーを使ってCM4でイーサネットを起動します。
- 両方のイーサネットインターフェースがIPCなしで同時に動作しているか確認してください。
- 必要に応じてRDC/XRDC2アイソレータを追加してください。
- アプリケーションがコア間相互作用を必要とする場合にのみ、RPMsg-LiteまたはMU/共有メモリ通信を導入してください。
また、RT1170マルチコアアプリケーション開発に関する指針や推奨が記載されているアプリケーションノート
AN13264 役立つかもしれません。
よろしくお願いいたします。
シェリー・チャン