2390237_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2390237_ja-JP

2390237_ja-JP

i.MX 943 EVK:LinuxとZephyrの間でENETCの共有ユースケースを実行

こんにちは、

私は i.MX 943 EVKボードを使っており、Linux上のCortex-A55 SMPとZephyrのCortex-M33sの間でネットワークを共有したいと考えています。

そこで興味を持ちました。i.MX Linux ユーザーズガイド(https://www.nxp.com/docs/en/user-guide/UG10163.pdf - セクション11.6.2)からのENETC共有ユースCASEです。この例では、Linux側でプロキシPFドライバーを有効にするためにRPMsg接続を設定しました。RPMsg接続のリソーステーブルのアドレスは0x208a0000で、仮想キューは0x20800000にあります。これらのアドレス([0x20800000~0x208A0FFF])はNETC OCRAM内にあります。この領域はCortex-M33 Core1(M33S)とAP(非セキュアLinux)間のRPMSG共有メモリとして使用されます。

この例では、mx94evknetc.cfgのシステムマネージャー設定ファイルを使い、Cortex-M33がネットワークにアクセスできるようにしています。この設定ファイルの関係で、A55とM33は起動時に起動する必要があるので、ターゲットのimx-mkimage flash_allを使っています。


問題は、flash_a55ターゲット(mx94rte.cfgシステムマネージャーの設定ファイル)を使うと、Linux/U-BootとZephyrはそれらのアドレスにアクセスできますが、flash_allに切り替えると(システムマネージャーの設定ファイルに関係なく)、Linux/U-BootもZephyrもそれらのアドレスにアクセスできません。Zephyrはこれらのアドレスでバスフォールトが発生します。しかし、Zephyrの代わりにシンプルなhello_worldなどのFreeRTOSプログラムを使うと、Cortex-M33sやLinux/U-Bootがそれらのアドレスにアクセスできます。

また、mx94rte.cfgシステムマネージャーファイルでflash_allターゲットを使うと、Linux/U-BootもZephyrもそのアドレスにアクセスできませんが、Cortex-M33を停止してFreeRTOS hello_worldを読み込んで再起動すると、Linux/U-BootはNETC OCRAMにアクセスできます。

ちなみに、Zephyrはflash_M33sターゲットにアクセスできません。

そこで、FreeRTOSが初期化時にZephyrができないことを知りたいです。つまり、Linux/U-BootとZephyr間でNETC OCRAMにアクセスしやすくするために、その点はflash_allターゲットで。


ゼファーバージョン:4.3

Linuxバージョン(リアルタイムエッジ版):6.18.2

Linux
タグ(1)
評価なし
バージョン履歴
最終更新日:
土曜日
更新者: