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.

[参考译文] TCP-AM243X:如何通过两个内核之间的共享 RAM 激活 MCU-PLUS-SDK。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1479676/mcu-plus-sdk-am243x-how-to-activate-tcp-over-shared-ram-between-two-cores

器件型号:MCU-PLUS-SDK AM243X

工具与软件:

您好!

我已成功在内核0和内核1上同时运行 FreeRTOS "Hello World"。

我想在两个内核上激活"tcp_server"、以通过 MSRAM 或 TCM 中的共享 RAM 进行通信。

我知道我不需要使用"phy",而是使用 RAM 读写数据包。

是否有 TI 示例?

这样做的最好方法是什么?

谢谢!

Eli

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

    Eli、您好!

    我们启用处理器间通信(IPC)的默认方式是使用 IPC_Notify 和 IPC_RPMsg。

    请参阅
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/10_00_00_20/exports/docs/api_guide_am243x/IPC_GUIDE.html
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/10_00_00_20/exports/docs/api_guide_am243x/DRIVERS_IPC_NOTIFY_PAGE.html
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/10_00_00_20/exports/docs/api_guide_am243x/DRIVERS_IPC_RPMESSAGE_PAGE.html
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/10_00_00_20/exports/docs/api_guide_am243x/EXAMPLES_DRIVERS_IPC_NOTIFY_ECHO.html
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/10_00_00_20/exports/docs/api_guide_am243x/EXAMPLES_DRIVERS_IPC_RPMESSAGE_ECHO.html

    我不确定是否有任何示例可以定义一个 TCP 服务器、以便在内核之间进行通信、而不是通过以太网接口进行通信。 我正在将您的主题重新分配给另一位团队成员进行评论。

    此致、

    Nick

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

    您好、Nick。

    谢谢!

    此致、

    Eli

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

    您好、Eli、很遗憾、我们没有示例来 说明如何在通过 MSRAM 或 TCM 进行通信的两个内核上设置 TCP 服务器/客户端

    通过代码检查、如果要绕过 PHY 而使用共享 RAM 进行通信、我认为需要将 LwIP 协议栈(lwipif)的网络接口层直接修改为来自共享 RAM 的 RD/WR 数据包。 这似乎是一项微不足道的任务。  

    我建议您在实施过程中如果遇到任何特定问题、或者如果您对我们的 LwIP 有任何疑问、我们可以在单独的 E2E 线程中解答这些问题

    谢谢!

    Paula.

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

    尊敬的 Paula:

    是的、我愿意帮忙。

    谢谢!

    此致、

    Eli

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

    尊敬的 Paula:

    您能建议如何通过 syscfg 为 CORE-1配置 ENET 吗?

    谢谢!

    此致、

    Eli

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

    尊敬的 Paula:

    因为我试图通过共享的 RAM 进行通信,也许我可以直接使用 tcp_init (),但我仍然更喜欢通过 syscfg 正确的方式来实现它。  

    我正在寻找一种特殊的配置、以便可以绕过 DMA 和 MDIO。

    谢谢!

    此致、

    Eli

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

    尊敬的 Paula:

    lwip 软件包中的共享 RAM 上是否有"虚拟"以太网驱动程序?

    谢谢!

    此致、

    Eli

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

    您好、Eli、请打开一个新的 E2E、以便更轻松地将其发送给正确的专家。 如果您认为此主题有助于提供上下文、则可以从新主题中引用该主题

    谢谢!

    Paula.

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

    Eli、您好!

    您正尝试通过 IPC 实现什么目标? IPC Notify、IPC RPMSg 或用于通知的共享存储器实现是否有特定原因不适合您的系统?

    请记住、我们无法支持有关修改 TI 驱动程序的问题、因为我们尚未对其进行验证。 因此、如果您确实希望深入修改 Enet 驱动程序、则主要是自己动手。 我们 提供的支持将受到限制。

    此致、

    Nick

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

    您好、Nick。

    我正在尝试使用两个内核上的 TCP 协议来激活 LwIP、而不使用驱动程序。 我希望所有数据包都可以写入共享 RAM 以及从共享 RAM 中读取。

    我在tcpip_init()使用 FreeRTOS 时遇到困难。

    您能指导我如何操作吗?

    谢谢。

    此致、
    Eli

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

    Eli、您好!

    据我所知、LwIP 旨在通过以太网进行处理器内通信(例如、如果您有 AM243x 和 AM263x、它们通过以太网进行通信)。 它不适用于同一处理器内核之间的处理器间通信。

    我可以让您回答我的上一个问题吗?

    "您正尝试通过 IPC 实现什么目标? IPC Notify、IPC RPMSg 或用于通知的共享存储器实现是否有特定的原因不适合您的系统?"

    如果您能向我们提供更多信息、我们可以为您提供更多关于我们为您的设计建议的 IPC 方法的指导。

    *一次要发送多少数据?
    *对于数据从一个内核传输到另一个内核需要多长时间,您是否有延迟要求?
    *您有吞吐量要求吗?
    *等

    此致、

    Nick

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

    您好、Nick。

    理念是使用可靠的标准协议作为内核之间的 IPC。

    我们在 AM57xx 项目的各内核之间已经有了一个基于 TCP/IP 的 IPC。

    我的任务是在 AM243x 项目中为 LwIP 实现低级层。

    我想、根据 TCP 服务器示例、或许 TI 的人员可以为我提供最佳的方法。

    这需要绕过所有硬件并仅使用 RAM 中的 LwIP 协议栈。

    谢谢!
    此致、
    Eli

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

    您好、Nick。

    关于您的问题:

    *一次要发送多少数据?
    *对于数据从一个内核传输到另一个内核需要多长时间,您是否有延迟要求?
    *您有吞吐量要求吗?

    这并不是硬性实时 IPC。  

    我想我们大约每16ms 发送100字节

    延迟不应超出1、2毫秒

    吞吐量为~625字节/秒

    谢谢!

    此致、

    Eli

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

    Eli、您好!

    我建议您在该情况下首先评估 RPMSg。 您的开发流程将更加简单、我们实际上能够在您需要时回答问题并提供支持。 RPMSG 是标准化的(如果您需要将 Linux 添加到自己的设计并转移到 AM64x、RPMSG 和邮箱实际上是 Linux 和 R5F/M4内核之间默认使用的通信方法)。

    您可以在 MCU+ SDK 中找到默认的 ipc_rpmsg_echo 示例、如下所示:
    https://github.com/TexasInstruments/mcupsdk-core-k3/tree/k3_main/examples/drivers/ipc/ipc_rpmsg_echo

    此致、

    Nick

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

    您好、Nick。

    谢谢!

    此致、

    Eli

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

    您好、Nick。

    是否有办法通过 syscfg 添加另一个 IP 接口?

    谢谢!

    此致、

    Eli