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.

[参考译文] AM243X-AM243X:多个以太网外设配置问题(MCU-PLUS-SDK 和 ICSSG)

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1517824/mcu-plus-sdk-am243x-multiple-ethernet-peripheral-configuration-issue-cpsw-and-icssg

器件型号:AM243X - MCU-PLUS-SDK
主题:SysConfig 中讨论的其他器件

工具/软件:

产品:MCU+ SDK AM243x (版本10.00.00.20)
工具:SysConfig (版本1.20.0+3587)

问题描述:
在 SysConfig 中配置 CPSW 和 ICSSG 以太网外设时、该工具会在配置文件中生成重复的宏定义、从而导致编译器警告和潜在的运行时问题。 这是一个关键问题、因为 AM243x EVM 实际上存在两个以太网外设、并且它们应该同时可用。

硬件上下文:
-具有 CPSW 和 ICSSG 以太网端口的 AM243x EVM

重现步骤:
1.在 SysConfig 中打开工程
2.添加 CPSW 和 ICSSG 以太网外设
3.使用适当的设置配置每个外围设备
4.生成配置文件
5.构建项目

预期行为:
- SysConfig 应该为每个外设生成正确的命名或有条件编译的配置
-不应出现宏重新定义警告
-两个外设应该能够同时运行
-这是该工具应支持的有效用例

实际行为:
-该工具在 ti_enet_config.h 和 ti_enet_config.c 中生成重复的宏定义
-编译器出现有关宏重新定义的警告
-示例重新定义:
- ENET_SYSCFG_MAX_MAC_PORTS (2U 与1U)
ENET_SYSCFG_ENABLE_MDIO_MANUALMODE (1U 与0U)
- ENET_SYSCFG_NETIF_COUNT (1U 与0U)
- ENET_SYSCFG_DEFAULT_NETIF_IDX

影响:
-需要抑制的编译器警告
-由于配置冲突而可能出现的运行时问题
-不存在可行的解决方法,因为文件是自动生成的
-用户不能按预期同时使用两个以太网外设

其他信息:
-问题似乎在 sysconfig 的代码生成逻辑中
-该工具应:
1.为每种外设类型生成单独的配置文件
2.对每个外设使用不同的宏命名空间
3.使用条件编译来分隔配置

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

    尊敬的  Zachary Lutz:

    感谢您的查询。

    如果您有任何其他问题、请参阅以下文档并告诉我。

    在 AM64x 和 AM243x 上启用五个以太网端口

    此致

    Ashwani

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

    尊敬的 Ashwani:

    感谢您的及时回复。 我对本应用手册有一些疑问:

    1. 什么是通过 HSE 连接器连接的"SEM 板"?
      1. 我是否严格需要此操作来运行 CPSW 和 ICSSG 以太网、或者这是启用所有5个以太网端口所必需的吗?
      2. 假设我只关心 ICSSG1和 CPSW (例如、不关心 ICSSG0)  
    2. 如何采购通过 HSE 连接器连接的"SEM 板"?
      1. 我看到 E2E 论坛上也提出了同样的问题、您能否进一步介绍如何采购此电路板?
    3. 本应用手册以 AM64x-EVM 为例。 该实施方案是否也适用于 AM243 EVM?
      1. "SBL 更新"部分是否与 AM243x 相关?

    再次感谢、

    Zach

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

    这是 TI 内部板( NOT ORDERABLE )连接在 HSE 端口以评估 ICSSG0。

    您可以联系 TI 营销(AM64x)团队以了解有关此方面的更多信息。

    本应用手册以 AM64x-EVM 为例。 此实现是否也适用于 AM243 EVM?

    区别在于:AM243x 没有 A53内核。  

    此致

    Ashwani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有关此方面的更多信息、您可以联系 TI 营销(AM64x)团队。

    我如何与 TI 营销团队建立联系?  

    区别在于:AM243x 没有 A53内核。  [/报价]

    是否理解了、是否可以从 R5内核运行该示例? 还是 M4/R5内核组合?

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

    我将您的问题转发给营销团队。

    请留出一些时间让您回来。

    此致

    Ashwani

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

    尊敬的 Zachary:

    您对5端口 AM64x/AM243x 支持有什么疑问?  您正在处理什么类型的应用?

    此致、

    Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    关于5端口 AM64x/AM243x 支持、您有哪些问题?

    关于在 AM64x/AM243x 上启用5个以太网端口的应用手册似乎建议每个以太网外设使用一个内核、并使用共享存储器来链接内核。 该示例 在 AM64x-EVM 上实现、是否可以 在 AM243x-EVM 上实现此目的?

    我知道 SEM 卡用于为 ICSSG0提供第4个和第5个以太网端口。 示例能否在没有此扩展卡的情况下运行?  

    是否可以从单个内核驱动两个 Enet 外设? 还是需要将多个内核用于多个 Enet 外设?

    如果可以从单个内核驱动 ICCSG 和 CPSW Enet、您是否有一个可以分享的工作示例?  

    您正在处理什么类型的应用程序?

    我正在一个内核上运行一个 EtherCAT 主站协议栈、用于电源转换应用。 该 EtherCAT 主站使用 ICSSG1以太网外设。 我还需要通过  CPSW 以太网外设运行 MQTT 客户端。 当我尝试通过 SysConfig 进入 CPSW 时、为每个以太网外设生成的代码 会自冲突。 多个宏和函数都是重复的。 无法编译。  

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

    为了简化它、您只需要2个以太网。 一个用于 EtherCAT 主站的 ICSSG 端口(我假设您具有来自 Acontis 或 IBV 或您自己的协议栈)。 CPSW 的第二个端口。 因此、无需讨论扩展板、 https://www.ti.com/tool/TMDS243EVM 有3个以太网端口。 或者您是否需要额外的端口或访问 ICSSG0?

    MCU+和 SysConfig 在多个并行的以太网实例上可能存在一些限制、这些实例是固定的或正在修复的。 首先,我建议使用最新版本(11.00.00.15位于 https://www.ti.com/tool/download/MCU-PLUS-SDK - AM243X ),并查看问题是否仍然存在。

     Pekka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ashwani +团队:
    我收到了 TI AM64x-EVM 电路板、并一直尝试使用5端口以太网应用手册中的示例。 关于第1.5.2.1章 "资源分配- AM64x"、情况变得有点不清楚。 我可以看到、步骤1到步骤4涉及将资源取消分配给 Cortex A53内核。 本质上、在运行命令  gmake -s -C tools/sysfw/boardcfg configure SOC=am64x 后、SysConfig 会启动、并将 ICSSG0、ICSSG1和 CPSW Enet 外设的所有 TX/RX 通道设置为0。 这一点很明显。
    在第5步及之后,事情不那么清晰。
    如您所见、步骤5是一个句子片段。 根据我所能做的、这建议我将 TX/RX 通道的 CPSW 相关数据包 DMA 分配给内核 MAIN_0_R5_1...这是正确的吗?  
    • 或者、我是否应该重新分配 TX/RX 通道的所有 CPSW/ICSSG0/ICSSG1数据包 DMA 以及数据包 DMA 环的相同内容?
    • 例如、我是否应该将 ICSSG0 Tx 通道的数据包 DMA 设置为8 (就像在 A53_2设置中一样)?  
    • 数据包 DMA 环形加速器如何?  
    • 以下是如果我将用于 CPSW Tx/DMA 通道数的数据包 Rx 环形加速器保留为"0"、则会发生资源共享冲突。
    在步骤6中、不能明确是否  应将 A53_2->MAIN_0_R5_1的所有剩余/现有资源共享实例更改为  MAIN_0_R5_1->MAIN_0_R5_3。  
    • 例如、如果我们没有为 ICSSG 添加数据包 DMA 或数据包 DMA 环形加速器、则会有用于重新源共享的无关规则。
    • 即、应该如何处理"ICSSG1 Tx 通道的数据包 DMA 环" Shared  A53_2->MAIN_0_R5_1
      • 是否删除?
      • 将"ICSSG1 Tx 通道计数的振铃次数"设置为8 (就像在 A53_2中一样)、然后更改资源共享 MAIN_0_R5_1->MAIN_0_R5_3?
    在步骤9中、似乎我修改了步骤8中命名的文件...这是正确的吗?  
    • 如果是、我认为我已经在 SysConfig 中进行了此类更改、然后根据这些更改在步骤7中重新生成文件。
    • 如果指令要修改生成的代码、应修改哪些行? 说明不清楚
    总体而言、资源分配段的目的不明确。 目标是什么? 潜在的陷阱有哪些。 我还没有使用过  
    谢谢、
    Zach