wunihaoo
wunihaoo
这家伙很懒,什么也没写!

注册于 15年前

回答
5
文章
0
关注者
0

发布于12年前

额 看了下 确实是中文字库的问题

发布于12年前

细看了下屏幕,主要是大部分lable控件显示的文字模糊,其他控件都清晰的

发布于14年前

最后出了问题,设备还能ping通吗?如果不能ping通,那么基本上就是驱动的问题了。


ping不通了,基本每次死掉都是出现这个错误,而且lwip_close(sock)之后重新连接也连不上。我也觉得是驱动问题,因为用DM9000a就不会出现这样的问题。那是驱动什么地方问题呢?

发布于14年前

现在把程序修改了下,接收线程是用select判断是否有接收的数据。
打开LWIP的TCP_OUTPUT_DEBUG调试发现每次卡死的时候,是这种情况,是说发送队列太长了:
tcp_write(pcb=200071fc, data=20008aac, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=20008aac, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1061250:1062274 (0x0)
tcp_enqueue: queueing 1062274:1063298 (0x0)
tcp_output_segment: 1061250:1062274
tcp_output_segment: 1062274:1063298
tcp_write(pcb=200071fc, data=200092ac, len=44, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=200092ac, len=44, flags=0, apiflags=0)
tcp_enqueue: queueing 1063298:1063342 (0x0)
tcp_output_segment: 1063298:1063342
tcp_output: nothing to send (00000000)
tcp_output: sending ACK for 426865333
tcp_write(pcb=200071fc, data=200092e4, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=200092e4, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1063342:1064366 (0x0)
tcp_enqueue: queueing 1064366:1065390 (0x0)
tcp_output_segment: 1063342:1064366
tcp_output_segment: 1064366:1065390
tcp_write(pcb=200071fc, data=20009ae4, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=20009ae4, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1065390:1066414 (0x0)
tcp_enqueue: queueing 1066414:1067438 (0x0)
tcp_output_segment: 1065390:1066414
tcp_output_segment: 1066414:1067438
tcp_write(pcb=200071fc, data=2000a2e4, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000a2e4, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1067438:1068462 (0x0)
tcp_enqueue: queueing 1068462:1069486 (0x0)
tcp_output_segment: 1067438:1068462
tcp_output_segment: 1068462:1069486
tcp_write(pcb=200071fc, data=2000aae4, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000aae4, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1069486:1070510 (0x0)
tcp_enqueue: queueing 1070510:1071534 (0x0)
tcp_output_segment: 1069486:1070510
tcp_output_segment: 1070510:1071534
tcp_write(pcb=200071fc, data=2000b2e4, len=44, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b2e4, len=44, flags=0, apiflags=0)
tcp_enqueue: queueing 1071534:1071578 (0x0)
tcp_output_segment: 1071534:1071578
tcp_output: nothing to send (00000000)
tcp_write(pcb=200071fc, data=2000b31c, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b31c, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1071578:1072602 (0x0)
tcp_enqueue: queueing 1072602:1073626 (0x0)
tcp_output_segment: 1071578:1072602
tcp_output_segment: 1072602:1073626
tcp_write(pcb=200071fc, data=2000bb1c, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000bb1c, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1073626:1074650 (0x0)
tcp_enqueue: queueing 1074650:1075674 (0x0)
tcp_output_segment: 1073626:1074650
tcp_output_segment: 1074650:1075674
tcp_write(pcb=200071fc, data=2000c31c, len=1024, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000c31c, len=1024, flags=0, apiflags=0)
tcp_enqueue: queueing 1075674:1076698 (0x0)
tcp_output_segment: 1075674:1076698
tcp_output: nothing to send (00000000)
tcp_output_segment: 1074650:1075674
tcp_write(pcb=200071fc, data=2000c71c, len=0, apiflags=0)
tcp_write(pcb=200071fc, data=2000c71c, len=2048, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000c71c, len=2048, flags=0, apiflags=0)
tcp_enqueue: queueing 1076698:1077722 (0x0)
tcp_enqueue: queueing 1077722:1078746 (0x0)
tcp_output_segment: 1076698:1077722
tcp_output_segment: 1077722:1078746
tcp_write(pcb=200071fc, data=2000cf1c, len=1068, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000cf1c, len=1068, flags=0, apiflags=0)
tcp_enqueue: queueing 1078746:1079770 (0x0)
tcp_enqueue: queueing 1079770:1079814 (0x0)
tcp_output_segment: 1078746:1079770
tcp_output_segment: 1079770:1079814
TCP thread miss segnumb: 130 31. Time: 201210
tcp_write(pcb=200071fc, data=2000b31c, len=980, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b31c, len=980, flags=0, apiflags=0)
tcp_enqueue: too long queue 4 (max 4)
tcp_output: nothing to send (00000000)
tcp_write(pcb=200071fc, data=2000b31c, len=2004, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b31c, len=2004, flags=0, apiflags=0)
tcp_enqueue: queueing 1079814:1080838 (0x0)
tcp_enqueue: queue too long 6 (4)
tcp_output: nothing to send (00000000)
tcp_output_segment: 1079770:1079814
tcp_write(pcb=200071fc, data=2000b31c, len=2004, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b31c, len=2004, flags=0, apiflags=0)
tcp_enqueue: queueing 1079814:1080838 (0x0)
tcp_enqueue: queue too long 6 (4)
tcp_output: nothing to send (00000000)
tcp_output: nothing to send (00000000)
tcp_write(pcb=200071fc, data=2000b31c, len=2004, apiflags=0)
tcp_enqueue(pcb=200071fc, arg=2000b31c, len=2004, flags=0, apiflags=0)
tcp_enqueue: queueing 1079814:1080838 (0x0)
tcp_enqueue: queue too long 6 (4)

发布于15年前

这样还有一个问题,多个线程同时在多个连接上面发送的时候可能会因为其中一个阻塞而导致所有连接全部阻塞,因为netconn_write还是阻塞的。


遇到类似的问题,不知道怎么解决。。。

回到
顶部

发布
问题

投诉
建议