RT-THREAD版本:5.0.2,LWIP2.0.3网络通信异常,可以PING通,网络通信异常。
MCU端为服务端:
UDP方式:可以接收到PC的数据,发送数据时提示no route to PC的IP地址。
TCP方式: 无法建立连接,可以接收到客户端的连接请求。
TCP调试信息如下:
tcp_input: packed for LISTENing connection.
00> TCP connection request 50125 -> 19422.
00> tcp_parseopt: MSS
00> tcp_parseopt: NOP
00> tcp_parseopt: other
00> tcp_parseopt: NOP
00> tcp_parseopt: NOP
00> tcp_parseopt: other
00> tcp_enqueue_flags: queueing 6510:6511 (0x12)
另一块板子用的AT32F407+RTT4.1.0+LWIP2.0.3+DM9000通信正常
通信正常的TCP建立连接调试信息如下:
00> TCP connection request 50163 -> 19422.
00> TCP connection established 50163 -> 19422.
00> lwip_accept(1)...
00> lwip_accept(1) returning new sock=2 addr=192.168.3.99 port=50163
00> lwip_ioctl(2, FIONBIO, 1)
不知道如何查找问题,请教各位大神。
我刚把finsh和ifconfig功能加入了,这是调试信息。
应该是这个
LINK_DOWN
的原因,正确更新为LINK_UP
就行了。不明白,我先去尝试下,能详细说一下更好,谢谢答复。
谢谢大神,可以了。 请教下rtt4.1.0为什么不用手动去设置下up,直接就可以正常使用了。@xiaorui
我查了下4.1.0中也没看到调用eth_device_linkchange(dev, RT_TRUE);但可以正常使用。
5.0.2根据你的提示调用下eth_device_linkchange(dev, RT_TRUE);就可以正常使用了。
感谢大神的打赏😅😅😅
您可以对比检查下代码中,应该有对
LINK_DOWN/UP
这个FLAG的检查。