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.

[参考译文] TMS320C6678:C6678以太网连接

Guru**** 2584865 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592529/tms320c6678-c6678-ethernet-connectivity

器件型号:TMS320C6678

大家好、

我们希望通过以太网连接将 C6678 DSP 连接到 PC、并通过 UDP 发送简单消息。 我们在论坛中搜索了解决方案、并找到了众所周知的 NDK Hello World 示例。 经过几次尝试后、我们肯定会卡住:我们无法在 Wireshark 中看到来自 DSP 的任何数据包、我们无法识别 DSP IP、我们无法设置静态 DSP IP。 我们尝试从空项目开始创建示例、但无法创建套接字。 我们得到套接字描述=-1、错误号=无错误。 我们对此有点困惑。

为了使示例发挥作用、是否需要采用特定的开关配置?

是否有方法唯一地配置 DSP 的静态 IP 地址?

是否有办法创建有效的套接字?

是否有任何工作示例可通过 UDP 协议通过以太网从 DSP 向 PC 发送简单消息?

提前感谢

Giovambattista Astorino

我的设置:

Code Composer 6.2.0

NDK 2.25.0.09

PDK 2.0.4

SYS/BIOS 6.46.1.38

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

    我已通知 RTOS 团队。 他们的反馈将直接发布在此处。

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

    是否使用 TI C6678 EVM? 有两种方法可以将 UDP 数据包发送到 PC:

    1) 1)使用 Nimu hello world 示例:pdk_c667x_2_0_x\packages/ti\transport \NDK\Nimu。 这个可以使用 DHCP 或静态 IP。 只需在 EVM 上构建并运行而无需进行任何更改、您就应该能够从 PC ping EVM。 然后您可以更改发送 UDP 数据的方式。

    2) 2)使用 PA-EMAC 示例 pdk_c667x_2_0_x\packages/ti\drv\pa\examples\emacExample。 默认情况下、这处于环回模式、请更改为 cpswLpbkMode = CPSW_loopback_none 并重新生成。 您应该会看到从 RJ-45中发出并由 Wireshark 捕获的10个数据包。 数据包由 uint8_t pktMatch[]定义、您可以在其中更改 UDP 内容。

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

    我们使用的是 EVM。

    1) 1)我们构建并运行了建议的示例、但它根本不起作用。 在网络上未检测到 EVM、我们无法验证其 IP。

    2) 2) PA-EMAC 示例也不起作用。

    我们开始认为这可能是一个与驱动程序相关的问题、但我们不确定。

    此致、

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

    这两个例子的作用是没有变化的。 如果您还有6678evm,则可以尝试它是否与硬件相关。 此外、您在连接 DSP 内核时是否运行了 GEL 文件?

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

    您能不能更具体一些、并逐步指导我们? "按原样"示例对我们不起作用、此外、我们不知道 GEL 文件在哪里、也不知道如何运行它。

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

    NDK 需要 NIMU 驱动器来执行一些低级传输工作和一些硬件初始化。
    处理器 SDK 为 C6678提供了一个版本的 NIMU。 我不记得尼姆代码的确切路径。 您可以检查名为 pdk_的目录 和 processor_sdk_c667x_ 。
    请注意,提供的 NIMU 驱动程序只能为 netcp 应用一个实例。 不能将两个不同的 IP 连接到两个不同的端口。
    CCS 为 c6678提供 GEL 文件。 您可以使用一些资源管理器工具在 ccsv6文件夹中找到它的一些快速功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们设法解决了这个问题。 本指南的以下部分: processors.wiki.ti.com/.../Target_Configuration_-_Custom_Configurations 、我们能够加载.gel 文件。 我们发现了一个奇怪的问题:每次运行该示例都需要硬件复位、否则网络协处理器不会启动。 我们没有对这种行为的解释。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们可以运行 NDK Hello World 示例、但我们在自定义该示例时发现了一些困难。 在运行该示例时、DSP 正在等待来自网络的数据包、然后、一旦数据包到达、它就会将消息写回源。 我们无法成功地对其进行自定义、从而允许 DSP 自由地发送 UDP 消息、从而避免传入外部消息。

    问题似乎出在 NetworkOpen 中的 DemonStart 函数中,该函数在 NC_NetStart 之后调用。 此函数使 DSP 等待外部数据包。 我们尝试使用与 DemonStart 不同的功能、但控制台日志显示了 DSP IP;它似乎处于脱机状态、因此网络未打开。

    是否有人可以就初始化套接字和网络的过程向我们提供一些建议?