工具与软件:
尊敬的专家:
我已经基于 TI_RTOS 和 NDK 开发了套接字应用。
TI SDK 的版本为:
CCS12.8.0.00012 (Ubuntu)
BIOS_6_33_06_50
NDK_2_21_02_43
PDK_C6678_1_2_6
mcsdk_2_01_02_06
xdctools_3_23_04_60
该应用程序实现的功能是:通过 GigE Vision (基于 UDP)接收摄像头的图像数据流、然后通过 TCP 将其发送到 PC。 PC、6678和摄像头位于交换机上。
测试后、摄像头会在生成图像时以千兆位速度进行传输(即使帧速率设置为仅1fps、当生成该图像数据帧时、摄像头会以千兆位速度进行传输、然后在生成下一个图像帧之前长时间不发送数据)、6678会缓存图像并通过 TCP 将其发送到 PC。 此时将打印"TCP: Retransmit Timeout"。 通过 Wireshark 查看网络数据、6678只发送了1k 或8k 数据、然后重新传输数据、但 PC 实际上发送了 ACK 消息。
TCP 缓存也已配置完毕,但只能改善一点,例如能够发送60k 数据,但随后它将继续打印"TCP :重新传输超时"
使用另一个工作站而不是相机。 当工作站以仅几十 Mbps 的速度发送数据时、没有问题。 但是、一旦以大约千兆位的速度发送、就会触发这个问题。