我在使用AM437x进行以太网通讯测试,端口为EMAC,开发包为pdk_am437x_1_0_4和ndk_2_24_03_35;
基于NIMU_BasicExample_idkAM437x,在该例程上添加了netOpenHook和netCloseHook钩子函数,在netOpenHook使用DaemonNew创建了TCP Server:
tcpHandle = DaemonNew( SOCK_STREAMNC, 0, 502, dtask_tcp_502,OS_TASKPRINORM, OS_TASKSTKNORM, 0, 3 );
在dtask_tcp_502任务中添加了数据收发处理代码(socket超时按照5s设置),客户端连接上可以正常进行数据收发。
现在遇到的的问题是:如果客户端在连接上后,不发送任何数据,在超时5s内主动断开连接,Server马上进入死机状态,ip地址无法ping通,其他Task执行也出现问题。
使用wireshark抓包后发现,Server只发送了ACT,没有发送FIN,没有完成正常tcp断开连接的四次握手。
请问如何找到问题所在???