2390237_zh-CN

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

2390237_zh-CN

2390237_zh-CN

i.MX 943 EVK:在 Linux 和 Zephyr 之间运行 ENETC 共享用例

你好,

我正在使用 i.MX 943 EVK 开发板,我想在 Linux 系统上的 Cortex-A55 SMP 和 Zephyr 系统上的 Cortex-M33s 之间共享网络。

所以我对 i.MX Linux 用户指南中的 ENETC 共享用例示例产生了兴趣( https://www.nxp.com/docs/en/user-guide/UG10163.pdf - 第 11.6.2 节)。本示例设置了 RPMsg 连接,以便在 Linux 端启用代理 PF 驱动程序。RPMsg 连接的资源表地址为 0x208a0000,虚拟队列位于 0x20800000。这些地址([0x20800000 到 0x208A0FFF])位于 NETC OCRAM 中。该区域用作 Cortex-M33 Core1(M33S) 和 AP(非安全 Linux) 之间的 RPMSG 共享内存。

在这个例子中,我使用 mx94evknetc.cfg 系统管理器配置文件,以便 Cortex-M33s 可以访问网络。由于这个配置文件,我需要在启动时启动 A55 和 M33s,所以我使用目标 imx-mkimage flash_all。


我的问题是,当我使用 flash_a55 目标(使用 mx94rte.cfg 系统管理器配置文件)时,Linux/U-Boot 和 Zephyr 可以访问这些地址,但当我切换到 flash_all(无论系统管理器配置文件如何)时,Linux/U-Boot 和 Zephyr 都无法访问这些地址,无论 Zephyr 程序如何(Zephyr 在这些地址上遇到总线故障)。但是,如果我使用任何 FreeRTOS 程序(例如简单的 hello_world)而不是 Zephyr,Cortex-M33s 和 Linux/U-Boot 就可以访问这些地址。

我可以说,如果我使用带有 mx94rte.cfg 系统管理器文件的 flash_all 目标,Linux/U-Boot 和 Zephyr 都无法访问这些地址,但如果我停止 Cortex-M33s 并在上面加载 FreeRTOS hello_world 并重新启动,那么 Linux/U-Boot 就可以访问 NETC OCRAM。

需要注意的是,Zephyr 无法访问 flash_M33s 目标。

所以我想知道,为了让 Linux/U-Boot 和 Zephyr 能够通过 flash_all 目标访问 NETC OCRAM,FreeRTOS 在初始化过程中做了哪些 Zephyr 没有做的事情?


Zephyr 版本:4.3

Linux 版本(实时边缘版本):6.18.2

LinuxRe: i.MX 943 EVK : Run the ENETC shared use case between Linux and Zephyr

你好@Remantj

希望你一切都好。


请查阅 nxp-zephyr 文档:

https://github.com/nxp-zephyr/nxp-zephyr/blob/main/boards/nxp/imx943_evk/doc/index.rst#programming-a...


请告诉我系统管理器中描述的那些更改是否对您有效。


顺祝商祺!

萨拉斯。

i.MX 943 EVK : Run the ENETC shared use case between Linux and Zephyr

你好@Manuel_Salas

谢谢你的回答。

我查看了您指出的文档,并尝试按照文档中的方法修补系统管理器,但没有任何改变。

这似乎也在意料之中,因为我的问题在于 FreeRTOS 固件和 Zephyr 固件之间的差异。两种情况下,系统管理器配置文件保持不变。

我不知道 FreeRTOS 在 NETC OCRAM 方面有哪些 Zephyr 没有的功能,但您知道如何用 Zephyr 实现同样的功能吗?

此致

タグ(1)
評価なし
バージョン履歴
最終更新日:
3 週間前
更新者: