主题中讨论的其他器件:C2000WARE
您好!
为了在 controlCARD 板(TMDCNCD28388D)和我的笔记本电脑之间实现 UDP 通信、我在板上的单独线程中创建了一个新任务。 然后,我在“tcpEchoF2838X”示例中修改了“tcpHandler”和“tcpWorker”函数,如下所示:
"tcpWorker"函数:

"tcpHandler"函数:


在此实现中、controlCARD 板将 UDP 服务器和我的笔记本电脑设置为其 UDP 客户端。 在上面的代码中、我首先打开 UDP 套接字并将服务器(我们的板)分配给该套接字。 然后,我使用“recvfrom”和“sendto”函数实现了环回 UDP 通信。
为了测试通信,我使用了“Hercules”应用程序打开了 PC 上的 UDP 端口。 但是,当我运行该示例时,代码会停留在函数“recvfrom”中,该函数在“tcpWorker”函数中用于从 UDP 端口上的客户端接收数据。 下图显示了函数回溯的详细信息。

根据我的理解,“tcpHandler”是一个回调函数,它已在 NDK 库的源代码的较低层中用于实现 TCP 功能。 关于这一点、我认为 UDP 通信应该有一个单独的回调函数。 但是、我在 NDK 库及其文档的源代码中找不到任何 UDP 回调函数。 因此,我修改了“tcpHandler”回调函数以实现 UDP 连接。 我认为这可能是我们项目中的错误来源。 我想知道您能否指导我如何解决这个问题。
软件源和依赖项
在此项目中,我使用了以下来源来运行“tcpEchoF2838X”示例。
- F2838xD 的"tcpEchoF2838X"示例(版本:C2000Ware_3_04_00_00)
- 网络开发套件(NDK)(版本:3_61_01_01)
- 网络服务(NS)(版本:2_60_01_06)
- SYS/BIOS (版本:6_83_00_18)
- XDC 工具(版本:3_61_02_27)