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.

[参考译文] AM6442:对 R5FSS0_0以外的 R5F 内核提供 Enet-LLD 支持

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1061938/am6442-enet-lld-support-for-r5f-cores-other-than-r5fss0_0

器件型号:AM6442
主题中讨论的其他器件:TMDS64GPEVMSysConfig

大家好、

我正在使用"Enet_layer2_cpsw"示例项目、其中 TMDS64GPEVM 位于 MCU+SDK V08_01_00_36中。 在深入了解代码时、似乎 Enet-LLD 仅支持第1个 R5内核。 例如、从 networking\enet\soc K3\am64x_am243x\enet_soc.c 函数 enet54i_getCoreId()(在示例中使用)始终返回 R5FSS0_0、无论应用程序在哪个内核上运行:

uint32_t EnetSoc_getCoreId(void)
{
    uint32_t coreId;

#if defined(BUILD_MCU1_0)
    coreId = CSL_CORE_ID_R5FSS0_0;
#else
#error "Enet AM64x SOC: Core not supported!!"
#endif

    return coreId;
}

在同一文件中、中断被硬映射到 R5FSS0_0 (例如 CSLR_R5FSS0_CORE0_INTR_CPSW0_EVNT_pend_0)。 networking\enet\utils\V3\enet_apprmcfg.c 中的资源管理逻辑也是如此、无论该示例在哪个内核上运行、都将 CoreID 设置为 CSL_core_ID_R5FSS0_0。

这是否表示 enet-LLD 仅支持 R5FSS0_0、而不支持 RF5SS0_1、1_0或1_1等其他 R5内核?

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

    您好 Steven、

    是的、到目前为止、在 MCU+ SDK 中、所有网络示例仅针对 R5F_0_0而构建、并且它们都使用 FreeRTOS 作为其名称建议"MCU_PLUS_SDK_am64x_08_01_00_36\examples\networking\enet_layer2_cpsw\am64x-EVM\r5fs0-0_freertos"。

    此致、

    Ming

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

    您好、Ming、

    我了解这些示例专门为 R5F0_0编写、通过编辑 SysConfig 和链接器文件、将它们更改为使用另一个内核相对容易。 但 Enet-LLD 驱动器本身如何呢? 我相信我上面分享的代码片段来自 Enet-LLD 驱动程序代码(而不是示例代码)、这似乎表明 Enet-LLD 驱动程序不支持 R5FSS0_0以外的内核。

    我们计划在两个内核上使用 enet-LLD;R5FSS0_0处理 CPSW3G 上的数据包、R5FSS0_1处理 ICSSG1上的数据包。 但是、如果 enet-LLD 驱动程序仅支持 R5FSS0_0、则会出现问题。

    Steve

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

    您好 Steven、

    您所说的是正确的。 我正在与软件开发团队进行确认。 很快就会回来。

    此致、

    Ming

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

    您好 Steven、

    我得到了软件开发团队的确认。 ENET-LLD 当前仅在 R5F_0_0上受支持。 除了 R5F_0_0之外、没有其他内核支持该功能的计划。 我将为此提交一个功能增强票证。

    此致、

    Ming

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

    您好、Ming、

    感谢您的回复、我强烈希望 TI 能在发展蓝图中增加对其他内核上 Enet-LLD 的支持。 同时支持多个实时以太网端口的能力是 AM64x 的优势之一、而由于驱动器限制而无法支持该功能是一大打击。 我们越来越多地看到、复杂工业系统中的现代器件需要同时使用多种协议进行通信。

    MCU+SDK 文档中还应添加对其他内核的支持不足、因为这显然是一个限制。 其他函数 Enet-LLD 问题,建议支持其他内核,例如 Enetieni_isCoreAllforth()返回 true,而不管 CoreAllenged()

    bool EnetSoc_isCoreAllowed(Enet_Type enetType,
                               uint32_t instId,
                               uint32_t coreId)
    {
        return true;
    }

    工业协议栈是否使用 Enet-LLD? 如果是、这是否意味着 AM64x 一次仅支持1个工业协议? 例如、我们有一些应用希望在 R5FSS0_0上实现 EtherCAT、在 R5FSS0_1上实现 EtherNet/IP。

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

    您好 Steven、

    你是对的。 将来我们肯定会为多个 R5F 内核添加 ENET-LLD 支持、但现在我们仅支持 R5F_0_0的 ENET-LLD 以及一次支持一个工业通信堆栈。 我已针对此限制提交了功能增强票证。

    此致、

    Ming