主题中讨论的其他器件:SysConfig
工具与软件:
您好、TI 支持团队:
发送分段 UDP/TCP 数据包时遇到问题。 当我们将要发送的数据大小增加到超过软件中的最大 MTU 大小(1500字节)时,我们会在 UART 输出中得到以下错误消息(assert):
@行:xxx/mcu_plus_sdk_am243x_09_02_00_50/source/networking/enet/core/lwipif/lwipif/lwip2lwipif.c 中的241 src:失败!!
我已经使用 TI 示例(Relase 和 debug build)和这些版本复制了此问题
TI 示例:enet_lwip_cpsw_am243x-evm_r5fss0-0_freertos_ti-arm-clang
TI CCS :12.7.0
SysConfig :1.20.0
适用于 AM243x 的 MCU+ SDK:9.2.0.50
为此、我在 test.c 中插入了两个简单的 UDP 发送函数(参见附加的源文件)
e2e.ti.com/.../7840.test.c
IRET = sendto (iSocket、aBuf、1000、0、(sockaddr*)&dstAddr、 sizeof (sockaddr_in);
IRET = sendto (iSocket、aBuf、4000、0、(sockaddr*)&dstAddr、 sizeof (sockaddr_in);
可以发送1000字节而不会出现任何问题。 如果发送的数据超过1500字节、则显示上述断言。
如果我注释掉 lwip2lwipif.c:241中的相应行、
// Lwip2Enet_assert (p->len >=(sizeof (struct ip_HDR)+ sizeof (struct eth_HDR)+ sizeof (struct udp_HDR));
然后还支持超过1500字节的数据包大小(请参阅 Wireshark 屏幕截图)。
我的问题是、我在使用 lwip 库时遇到了问题、还是驱动程序出现了问题?
此致、
Thomas