This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6422:RTOS ICSSG ENET Linux CPSW

Guru**** 2416110 points
Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526441/am6422-rtos-icssg-enet-linux-cpsw

器件型号:AM6422
主题:SysConfig 中讨论的其他器件

工具/软件:

您好、

   我们在 SDK 8.6 版上使用 Linux、在 SDK 9.2 版上使用 RTOS (R5F)。 在 Linux 下、我们通过 CPSW 使用两个以太网端口、而在 RTOS 下、我们通过 ICSSG0 使用一个以太网端口。 RTOS 程序由 Linux 内核引导。 目前、我们遇到了以下问题:

  1. 不使用 IPC 时、R5F 程序在 Linux 引导下无法引导、并显示“无头资源表“错误。 但是、启用 IPC 后、它会引导并成功运行。

  2. 当 R5F 内核独立运行时、一切都适用于以太网。 但当 R5F 由 Linux 引导时、在函数执行期间会发生错误 EnetApp_driverOpen(gEnetAppParams[enetInstIdx].enetType, gEnetAppParams[enetInstIdx].instId); 、通过仿真确认。 该错误发生在函数中 EnetApp_doIcssgOpen(Enet_Type enetType, uint32_t instId, const Icssg_Cfg *icssgCfg) 、其返回值 hEnet  hEnet = Enet_open(enetType, instId, perCfg, cfgSize);  NULL_PTR。 进一步的跟踪表明、在执行函数时 status = Icssg_openDma(hIcssg, icssgCfg, enetType, instId);、返回的值 status 为–1。

  3. 如果我们在 Linux 上使用一个 CAN 接口、在 R5F 上使用另一个接口、是否可以在两个内核之间实现数据传输?

目前、我们不确定这些问题的根本原因。 我们感谢您对上述三个问题的协助。

根据我们的使用模式、两个内核之间是否可能发生资源冲突?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wanglili、

    问题 1:如果 Linux IPC 未在工程中、Linux 无法引导 R5F

    对于 1、需要确保项目中有资源表。 在 SysConfig 中启用 Linux RPMsg IPC 后、会自动生成资源表、因此这是一种方法。 另一种方法是生成空资源表。

    有关更多信息、请参阅 AM64x Academy
    多核>应用程序开发>修改要由 Linux 加载的远程内核应用程序
    https://dev.ti.com/tirex/explore/node?node=A__AScRgxl3hmonfFqU7DrFFw__AM64-ACADEMY__WI1KRXP__LATEST

    问题 2:如何使用网络使 Linux 与 R5F 一起运行?  

    有一些板级设置可确定哪些内核从 CPSW 和 ICSSG 获取 DMA。 默认情况下、Linux SPL 引导会将所有这些资源分配给 Linux 而不是 R5F 内核。 因此、您需要使用 K3 资源分区工具进行更改。

     https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1290012/am6442-running-enet_icssg_layer2-example-on-r5f-in-combination-with-linux 

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Nick、

    根据您提供的方法、我实现了非实时内核使用 CPSW 以太网、实时内核使用 ICSSG0 以太网的配置。 但是、我现在遇到了另一个问题。

    将非实时内核 (eth1) 的一个以太网端口和实时内核的以太网端口(我们称之为 eth3)与 PC 的以太网端口连接到交换机后、设置如下:

    • eth1 IP 地址:192.168.2.16

    • eth3 IP 地址:192.168.2.100

    PC 可以成功 ping 通两个接口。 但是、当 ping -I eth1 192.168.2.100 从 Linux 非实时内核执行时、该操作会失败。 网络监控显示 eth1 发送带有目的 MAC 地址 ff:ff:ff:ff:ff:ff (广播)的 ARP 请求、但未收到来自实时内核 eth3 的响应。

    这种现象可能是什么原因造成的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wanglili、

    有意思。 PC 能够 ping 通 R5F 以太网端口、但 Linux 端口无法 ping 通 R5F 以太网端口?

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

      我发现了这个问题。现在我可以测试它,谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、wanglili、

    很高兴听到您能够继续前进! 如果弹出任何其他内容、请随时创建一个新的 TT 进行聊天。

    此致、

    Nick