请求提供 i.MX RT1176 双核以太网示例(每个核心一个以太网接口)您好,NXP团队,
我目前正在 使用 MCUXpresso IDE v11.9.1(版本 2170,2024-04-19) 开发 i.MX RT1176 评估板 。
我想知道 NXP 是否提供任何多核示例项目,以演示如何使用 Cortex-M7 和 Cortex-M4 内核以及独立的以太网接口。
我的需求如下:
- 以太网端口 1应由Cortex-M7内核初始化和管理。
- 以太网端口 2应由Cortex-M4内核初始化和管理。
- 两个以太网接口应在其各自的内核上同时独立运行。
- 如果需要进行核心间通信(例如 RPMsg 或 MU),我希望能够提供一些示例或文档来解释推荐的方法。
我搜索了 MCUXpresso SDK 示例,但没有找到符合此用例的项目。
请问您能否告知我以下信息:
- NXP 是否有官方的多核示例演示如何在 M7 内核上使用一个以太网控制器,在 M4 内核上使用另一个以太网控制器?
- 如果有这样的示例,能否请您分享一下项目,或者提供相应的 SDK 示例名称或代码库链接?
- 如果没有这样的例子,您能否建议在 i.MX RT1176 上实现此配置的推荐架构?
任何参考项目、应用笔记或文档都将不胜感激。
感谢您的支持。
顺祝商祺!
阿拉文德·托加拉利
Re: Request for Dual-Core Ethernet Example on i.MX RT1176 (One Ethernet per Core)尊敬的@Aravind_Togaralli ,
遗憾的是,目前还没有官方示例能够证明 Cortex-M7 和 Cortex-M4 可以同时运行独立的以太网接口。
然而,推荐的架构是保持两个以太网子系统完全独立:
- 将一个以太网控制器(例如 ENET/ENET_QOS)分配给 CM7,将另一个分配给 CM4。
- 每个核心都应该维护自己的 MAC 驱动程序、PHY 控制、lwIP 协议栈、netif 实例、DMA 描述符、数据包缓冲区、中断和网络配置。
- 仅在需要时才使用 RPMsg-Lite、MU 或共享内存进行核心间控制和状态通信。
- 在开发过程中,可以考虑使用 RDC/XRDC2 来隔离两个内核之间的以太网外设和内存资源。
- 对于以太网 DMA 缓冲区,请确保所选内存区域可被相应的 CPU 和以太网 DMA 主设备访问。
建议的实施方案如下:
- 从一个可运行的RT1170多核示例开始。
- 使用标准的 lwIP 示例在 CM7 上启动以太网。
- 使用第二个以太网控制器在 CM4 上启动以太网。
- 验证两个以太网接口是否同时运行且无进程间通信 (IPC)。
- 如有需要,添加 RDC/XRDC2 隔离。
- 仅当应用程序需要核心间交互时才引入 RPMsg-Lite 或 MU/共享内存通信。
您可能还会发现应用笔记
AN13264很有帮助,因为它为 RT1170 多核应用程序开发提供了指导和建议。
顺祝商祺!
张雪莉