主题中讨论的其他器件:AM2432
我在 AM2432上工作、在 定制板上安装了 SDK MCU_PLUS_SDK_am243x_08_05_00_24
我正在尝试解决简单 TFTP 服务器的问题。
当服务器在 UDP 端口69上接收到请求并从不是69的 UDP 端口回复客户端端口时、UDP 流量就会产生此问题。
ACK 消息应仅包含4个字节、其中 ACK 操作码和块编号为0、但服务器将发送 UDP 报头正确且 UDP 有效载荷仅为零的回复。
我已经测试过传递给 lwip_sendto 的静态缓冲器的指针是否已正确填充。
深入了解 LwIP 代码、我发现为我的4个字节分配了一个 pbuf、然后分配并连接了另一个 pbuf 以添加 UDP 报头。
很明显,DMA 只是将 pbuf 与 UDP 报头一起传输,而丢弃了连接的 pbuf (我想... )。
以前的 SDK 08.04.00.17和08.03.00.18不会发生这种情况
我使用的 TFTP 客户端是: https://tftpd64.software.informer.com/download/
我的示例代码发布在 GitHub 上: https://github.com/atessadri/lwip_cpsw_example
下面是 TFTPCLient 接口的屏幕截图、其中我设置了纯文本文件的传输:
下面是 TFTP 客户端的 TFTP 写入请求的 Wireshark 屏幕截图:
下面是从 boiard 到 TFTP 客户端的回复:

