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.

[参考译文] RTOS/AM6548:在裸机 AM65x R5F MCU 上使用的 TI EMAC 驱动程序

Guru**** 2540720 points
Other Parts Discussed in Thread: TMDX654IDKEVM, AM6548

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/759103/rtos-am6548-ti-emac-driver-using-on-bare-metal-am65x-r5f-mcu

器件型号:AM6548
主题中讨论的其他器件:TMDX654IDKEVM

工具/软件:TI-RTOS

您好、TI。

我正在使用 TMDX654IDKEVM AM65x 工业开发套件为 AM654x 处理器系列的 R5F MCU 开发以太网驱动器。 该驱动程序是根据 SDK RTOS AM65xx 的最新版本 PDK AM65xx 开发的、必须在裸机上执行。 ‘,它使用 PDK 的“nonos”源文件。

以太网驱动程序必须提供用于发送和接收 MAC 层 ETH 数据包的 API。 因此、它会调用 SDK RTOS AM65xx 的 PDK AM65xx 提供的 TI EMAC 驱动程序 API。

目前、TI EMAC 驱动程序具有 EMAC_Cpsw_TestApp 和 EMAC_Icssg_TestApp 演示应用:

http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_device_drv.html#example-and-test-applications

我以应用的源代码为例来正确初始化 TI EMAC 驱动程序、但仍然无法向以太网端口发送任何数据包以及接收数据包。 TI EMAC 驱动程序演示应用旨在测试两种类型的 AM65xx 子系统、即 CPSW 和 ICSS-GS。 CPSW 测试旨在发送内部回送、ICSS-G 测试将固件加载到 PRU 和 RTU 模块以发送测试数据包。 以及我无法实现的固件。 此外,RTU 还会加载‘rts_test0_bin.h’和‘rtc_test1_bin.h’二进制文件。 他们是否能够发送比我不知道的测试数据包更多的东西。 在我的测试中,他们无法。

因此,解决这个问题大约需要两周时间,请你帮助我。 我能不能通过某种方式设置任何一个以太网端口、以便能够向网络发送任何可用的数据包。 您是否有一些初始化示例来设置电路板上的 CPSW 端口和 PHY 以发送数据? 或者、您也可以提供固件或说明如何设置 ICSSG 端口? 我很乐意向任何以太网端口发送数据。 请帮我解决初始化问题。

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

    这一情况已转交给 R5F 专家,但由于节假日,答复可能会延迟。

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

    Sergei、

    让我在最后尝试设置此问题、以便我可以确认或尝试重现此问题。 您能否说明您正在设置 EVM 和 CCS、以便在运行示例之前加载 SYSFW/DMSC 固件? 该示例在 A53上是否适合您、但仅在 R5F 下失败?

     除了 EMAC 驱动程序代码、还有一个 EMAC 诊断代码、用于测试 EVM 上的 PHY 设置和 EMAC 设置。 您是否在 EVM 上尝试过此操作以查看是否存在硬件问题?

    此致、

    Rahul

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

    首先、感谢您的回答和帮助!

    1.是的,我已经设置了 EVM 和 CSS 并加载了 SYSFW/DMSC 固件,按照此处所述的‘高级 AM65x 调试设置及 DMSC 固件加载’开关操作:
    software-dl.ti.com/.../index_how_to_guides.html

    2.我没有尝试在 A53内核上执行示例。 但问题是示例在 R5F 上正常工作、但仅在测试范围内工作。

    我没有尝试运行 EMAC 诊断测试、但我们在 A53上启动了 Linux 内核、Linux 能够通过 CPSW 端口和 ICSS-G 端口向以太网发送 ARP 数据包。 我可以通过主机 PC 上的 Wireshark 捕获数据包。 这就是为什么我可以意识到 EVM 板上的 AM6548 SoC 已正确连接到每个端口的 PHY 芯片,并且 HW 工作正常。

    Rahul、我的问题是我无法使用 TI EMAC 驱动程序设置任何端口、以向网络发送以太网数据包。

    EMAC_Cpsw_TestApp 是 CPSW 开关内部的环回测试、不会向端口6发送任何数据包。

    EMAC_Icssg_TestApp 仅将测试数据包从一个 ICSS-G 端口发送到其他 ICSS-G 端口。 开始时的测试等待端口4和端口5上的链路。 链路中断后、它会将测试数据包从端口4传输到端口5。 我试图欺骗在主机 PC 上捕获测试包的测试。 但尝试失败了。 我将端口5连接到端口6以使测试能够检测端口5上的链路、并将端口4 I 连接到主机 PC 以通过 Wireshark 捕获测试数据包。 因此、我无法赶上进度。 此外,测试的初始化会将‘rtc_test0_bin.h’和‘rtc_test1_bin.h’文件上载到 SoC RTU 上。 我无法向 ICSS-G 端口发送数据包的原因可能是 RTU 的固件仅用于测试?

    因此、使用测试设置、我无法设置 TI EMAC 驱动程序来向网络发送以太网数据包。 我想知道您是否有 EMAC 驱动程序的初始化序列以及相关外设、例如 UDMA、MDIO、PHY、PRU、RTU、 以初始化 SoC 以向外发送数据包? 它可以是 CPSW 或 ICSS-G 的任何端口

    请帮助我解决问题、或指明我必须做的事情。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    还有一些与外界通信的 Nimu 测试示例:
    \packages/ti\binary\Nimu_Cpsw_ExampleApp
    \packages/ti\binary\Nimu_Icssg_ExampleApp

    它们可以在 A53或 R5F 上运行。 可以试试吗? 此外、这些示例单独运行、这意味着您无法在 A53上运行 Linux。

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

    感谢您提供这些示例! 是的、当然、我要尝试一下。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有新消息吗?

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

    您好、Eric。

    很抱歉,尚无消息。 我们在俄罗斯度假,我无法检查测试。 此外,在假期过后,我生病了。 因此,我希望我星期一可以继续调查。 在任何情况下、我都会告知您结果。

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

    您好、Eric。

    感谢您参加 Nimu 测试。 它帮助我在电线上看到 ICMP 封装。 因此、我可以对电路板执行 Ping 操作并从中获取答复。 因此、我可以研究测试源代码、并可能为 TI EMAC 驱动程序进行配置。 但这将是下一个故事。 我明天要做这个。 再次感谢您的帮助!

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

    器件型号:AM6548

    工具/软件:TI-RTOS

    您好、TI。

    我仍在继续在 TMDX654IDKEVM AM65x 工业开发套件上设置 TI EMAC 驱动程序,但仍然无法接收以太网数据包或将其发送到网络。 在检查 CPSW 的 NIMU 测试后、我发现该测试可以与应答 ICMP 数据包的笔记本电脑通信。 此外、我研究了测试设置并配置了我的软件和软件使用的 TI EMAC 驱动程序、这正是 Nimu 测试的工作方式。 但是、使用 TI EMAC 驱动程序没有帮助。

    我在调试器下运行了 NIMU 测试、并分配了所有 C 源文件、以便能够设置断点并逐步调试测试。 目前我有一个问题。 TI EMAC 驱动程序使用 TI UDMA 驱动程序、该驱动程序使用 TI INTA (中断聚合器)驱动程序。 因此、通过该序列、用于接收数据包的 TI EMAC 驱动程序会设置 TI UDMA 驱动程序、而 TI UDMA 驱动程序会在设置范围内向 TI INTA 驱动程序发送中断函数。 因此、当接收到以太网数据包时、会调用 TI UDMA 驱动程序 ISR 函数、该函数会执行一些其他步骤来完成数据包接收。

    在调试中、我看到在 NIMU 测试中调用了 ISR 函数、但我无法在我的软件中重复此操作。 NIMU‘在 TI RTOS 下执行,我的软件使用由 TI PDK 提供并在裸机上执行的“非 os”源代码。 不同之处吗? 我‘初始化更多内容,以确保使用“nonos”源代码在裸机上调用 ISR 函数? TI RTOS 是否可以为 TI EMAC 驱动程序执行一些额外的硬件初始化?

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

    如果 NDK 在您的设置中正常工作、但您不想在不使用 TI 网络堆栈(NDK)的情况下使用非操作系统 CPSW 驱动程序、您还可以参阅 AM65x 的电路板诊断、代码位于:pdk_am65xx_1_0_3\packages/ti\board\diag\emac 下。 用户指南为 :software-dl.ti.com/.../index_board.html

    说明 EMAC 测试:3.3.2.11。 EMAC 测试。 这是使用以太网环回电缆在 PHY 级进行的外部环回。 首先对其进行测试、以确保其按预期工作。 我相信,如果您用主机 PC 替换回送电缆,您也应该能够交换数据包。

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

    您好、Eric。

    谢谢! 是的、我看到了诊断测试的源代码、并且还尝试了它为我的项目提供的 TI EMAC 驱动程序的设置。 这些设置不会强制驾驶员也工作。 但我没有执行测试。 好的、我将执行测试、并在调试器下查看测试、以逐步实现测试的功能。 请给我一点时间、我将向您提供答案。

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

    您好、Eric!

    我很抱歉,由于我还有其他一些紧急任务,我拖延了一个答复。 但我‘m了诊断测试,“ake am65xx_EVM”命令仅针对 ARMv8架构构建了测试。 因此、我无法执行 R5F MCU 下的测试程序。

    但无论如何、我的项目重点几乎没有什么变化、目前我正在等待 TI 的 PRU 和 RTU RISC 控制器编程指南、以便有机会对 ICSS-G 以太网进行编程。

    感谢您的回答和帮助!