修改时间 02-25-2019 02:32 PM
项目中,板卡端采用Xilinx Zynq7z015芯片,通过phy芯片连接网口与PC机进行网络通讯。在正常网络传输中过程中突然出现传输数据卡住的情况,使用wireshark抓包分析,发现板卡端有300毫秒应答延迟。即每一个MTU数据,都会出现一次应答超时(300ms),在pc端重发后才得到应答,并继续下一包数据传输。速率从正常的50Mbyte/s下降到10Kbyte/s以下。此时,PC端主动断开tcpip连接并重新与板卡建立连接后,速度恢复正常。而在继续通讯一段时间(几十分钟到几个小时随机)后,又出现同样的速度变慢情况。
希望供应商技术支持提供帮助,共同分析解决此问题。
PS:从Xilinx官网搜索到一个比较相似的帖子:https://forums.xilinx.com/t5/Embedded-Processor-System-Design/LWIP-echo-server-example-drops-delays-TX-packets-on-Zedboard/td-p/703732
但采用他的解决方法(代码如下),并不能解决我的问题。
It is possible to effect the required change without making a local copy of the BSP source files. I added this code after calling xemac_add in my application:
{
// Fix delayed Ethernet transmission problem
extern u8_t bd_space[0x100000];
Xil_SetTlbAttributes((s32_t)bd_space, STRONG_ORDERED );
}
And at the top of the file:
#include "xil_mmu.h"
Now ping reliably responds within a millisecond or so.
修改时间 02-25-2019 06:29 PM
你用的lwip是什么版本?
你提到的那个帖子里的问题,应该在2016.3的时候修复了.
下面这个链接,应该也是类似的问题,你可以试试。
https://forums.xilinx.com/t5/Evaluation-Boards/ZXC706-network-operations-very-slow/td-p/715745
Regards,
Longley