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.

[参考译文] TCI6638K2K:NDK 停止响应来自外部 PC 的 ping

Guru**** 2585275 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/630918/tci6638k2k-ndk-stops-responding-to-ping-from-external-pc

器件型号:TCI6638K2K

为了测试在 SYS/BIOS 下的2个 DSP 内核上运行的 TCI6638K2K DSP 软件、我们在通过 TCP/IP 与 PC 交换消息的第三个内核上运行 NDK 任务。 第三个内核使用 QMSS 与其他内核交换消息。

NDK 任务是基于 NDK 'HelloWorld'示例的 TCP/IP 服务器(但使用 TCP/IP 而不是 UDP)。   

我们使用以下组件:

  • EVM: XTCIEVMK2K 版本3.0
  • XDC 工具3.25.5.94

  • NDK 2.24.2.31

  • SYS/BIOS 6.37.2.27

  • Keystone2 PDK 3.0.3.15

  • CCS 5.

如果我按原样运行 NDK 的"HelloWorld"、则该示例运行良好、并无限期响应来自远程 PC 的 ping 命令。

如果我运行 TCP 服务器的调整,它最坏的情况是从不响应 ping,最好是响应数百个 ping,然后停止响应。

我已成功构建 NDK 并添加了 ARP 数据包监控功能(挂钩)。  现在、我可以检测 NDK 堆栈何时处理 ARP 请求。

我观察到了特定的故障模式。  该应用程序配置为使用 DHCP。  当我启动应用程序并使用 Wireshark 观察网络流量时,有时我会看到预期的 DHCP 交换(发现/提供/请求/确认)后跟一个免费的 ARP,然后 调用我们的 NetworkIPAddr (),其指定方式为:  

  RC = NC_NetStart( hCfg、NetworkOpen、NetworkClose、NetworkIPAddr );
但是,有时在启动时,我看到 DHCP 交换,但没有 免费的 ARP 和 NetworkIPAddr()。  在这种情况下,ping 永远不会成功。 可能堆栈已损毁。
请您建议一种调试此问题的策略吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已通知团队。 反馈将发布在此处。

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

    我会试图遏制失败。  您能否将 QMSS 通信与其他内核解除挂钩、并自行无限期地运行您调整后的 NDK 内核?  这将告诉您问题是否在网络端。  一旦工作正常、您就可以添加其中一个 DSP 内核、然后添加这两个内核。

     Dave