如图所示、对于超过2243字节的帧、我无法使巨型帧正常工作。 最后、我要发送负载约为5200字节的巨型帧。 因此、我已将 MTU 大小增加到5632字节。 巨型数据包使能位和 Jabber 禁用位都在 MAC_Configuration 寄存器中设置。 Lwip 堆已增加到34k、我需要填充并发送3个5200字节的数据包、然后在传输这些数据包时填充另外3个帧(((5200 * 3)* 2)= 31200字节。
会发生以下情况:
有效载荷为2201字节的发送帧不会出现任何问题。 数据包由 Wireshark 接收并填充正确的数据。
向有效载荷添加额外的18字节、尝试发送具有2219字节有效载荷的新帧-> Wireshark 未接收到任何内容。
我已经调试了我的软件、一直按照代码一直到堆栈、看起来一切都正常工作。
我不确定 RAM 中是否存在任何边界问题、无论如何 、pbuf 中的有效载荷缓冲器从地址0x20001840开始、几乎位于 S0 RAM 的中间。
还尝试将 ETHTYPE 更改为 ETHTYPE_Jumbo。 这只更改了标头中的信息、限制是相同的。
有人能弄清楚问题是什么吗? 为什么大约2243-2261字节?
此致
Henrik Omberg