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/TMS320C6670:NDK 丢失 UDP 封包

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/706724/rtos-tms320c6670-ndk-loses-udp-packet

器件型号:TMS320C6670

工具/软件:TI-RTOS

您好!

我从 C6670 EVM 向主机 PC 发送了1000个 UDP 数据包(1个数据包大小:1316字节)。

我的代码如下所示

for (i=0;i<1000;i++)

Sendto (udp_send_socket、movi_test+i*1316、BUF_SIZE1、0、(PSA)&sin1、send_adr_size);

问题是主机 PC 仅接收50个数据包。

主机 PC 中第0到第20个数据包与 DSP 中的数据包相同

 但主机 PC 中的第21个数据包是 DSP 中的第22个数据包、

主机 PC 中的第22个数据包是 DSP 中的第28个数据包、

主机 PC 中的第23个数据包是 DSP 中的第34个数据包...

将1000 UDP 封包从 PC 发送到 PC 时。

接收1000个 UDP 封包没有任何问题。

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

    我想、您创建的这个项目不是常规方法。 请根据以下路径查看 NDK 示例项目、
    mcsdk_2_01_02_06\examples\NDK\HelloWorld
    在这里、您可以找到 HelloWorld.c 和 udpHello .c 文件。
    网络堆栈线程(StackTest)位于 HelloWorld.c 中、这将保护网络的打开。
    即使该文件也具有在 StackTest 线程中打开(NC_SystemOpen)和启动(NC_NetStart)网络的顺序。
    还可以在 NetworkOpen 中找到 UDP 任务创建、您可以根据实现方式修改 dtask_udp_hello (udpHello。c)。
    请告诉我们有关 UDP 发送和接收的任何进一步支持。 您可以根据需要为 UDP 发送和 UDP 接收创建两个不同的任务。

    此致、
    Kim。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    对于实验、我会在环路中施加足够大的延迟、以确保您的 PC 接收缓冲区不会溢出。 当 DSP 刚刚通过千兆位链路向接收 PC 供电时、我们就有过这方面的经验。 我们通过增加接收套接字缓冲器来解决该问题。 但是、为了确保这种情况、我会首先以较低的速率传输数据包数量、也就是在传输之间存在一定的延迟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、太棒了

    我向我的实时系统应用了两个参数(延迟、速率较低的数据包)。

    正如您提到的,我在 sendto ()之后使用 TaskSleep ()放置一个延迟。

    我最终可以得到整个数据包(1000个数据包)!!!!

    由于我在主机 PC 中使用 VLC 流式传输 Vedio 数据、因此无法以较低的速率传输 UDP 数据包。

    当我将数据包数量设置得更低时、Vidio 的播放效果不好。

    感谢你的帮助。

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

    您好!

    您的实验只是证实、在数据包供应方面、DSP 比在数据包消耗方面的 PC 好得多。 您可以使用 PC 做的一件事是使用类似的方法来增加其套接字上的接收器缓冲器

    setsockopt (socket、SOL_socket、SO_RCVBUF、... 

    同样、您可能会看到从 PC 到 DSP 的吞吐量较差、在这种情况下、您可能希望在传出套接字上调整 SO_SNDBUF 选项。