在成都zlg买了easyARM8962的开发套件,我使用ucos+lwIP来实现tcp的数据收发,遇到的问题一大堆,不过之前的问题都解决的差不多了,现在遇到几个大问题,如下:
1.PC作服务端,8962做客户端,假如,服务端先不开启,而这时候客户端运行(这种情况非常普遍,作为监控端的设备会一直上电,而pc端会经常关机)经过一段时间以后,再开启服务器,这时候客户端的tcp任务早于进入一个死循环(也就是faultISR),跟踪的结果是,在调用netconn_connect()这个函数的时候,如果不成功,既不会一直阻塞进程,也不会返回任何的错误,而是直接进入一个死循环,现在的问题是,如何才能让我能控制客户端能一直处于连接请求状态,不要进入死循环,返回错误也行啊,
2. 同样问题,假如在建立好连接后,正常的收发数据,这时候断开服务器的连接,这时候的客户端能检测到错误,但是在重新连接的时候有时候根本连接不上,而一旦连接失败,结果都是和上面一样进入一个死循环,
3.连接正常的情况下,如果拔掉网线,8962不能检测到断线,如何解决?
以上问题集中在断线重新连接,如果不成功会进入死循环(faultISR) 请指导如何解决这个问题,我希望能实现调用netconn_connect()的时候要么就一直阻塞直到成功建立连接,要么就一段时间后返回错误代码,我能进行处理,最好是返回错误!
麻烦广州的zlg的技术支持能尽快帮我解决这个问题,我们这个项目就卡在这里了,成都的技术支持对LWip也不太熟悉,服务还是很好的,没办法,我只有论坛求助了,
icepnt,您好!
你这个问题我们仔细分析了一下,应该是LwIP协议栈自身的缺陷,所以暂时还不能给你一个很明确的解决方法,我们的工程师正在处理这个问题,看看能不能改动一下LwIP弥补这个缺陷,一旦有结果我们将第一时间回复你。
能留下个联系方式么?我一直卡在这里,项目很急的,本来元旦就该验收了,希望你们能尽快帮助我解决上述问题,你们广州zlg的技术支持一定能轻易解决这个问题的
icepnt,你好!
你可以联系020-28267818,找任工,他会给你解决的。
希望尽快给我解答这个问题吧,客户都在催着去安装了,现在卡在这里,其他的调试都还没进行下去!!
另外再次说明下情况,上述第二种情况,服务器端开后,8962能检测到断线,之后再次重新连接,往往连接不上,这时候调用netconn_connect()后有三种情况出现:
1.进入faultISR 死循环,不知何故
2.进入OS_TaskIdle 死循环,还是没有从netconn_connect()返回
3.服务端能监测到8962发起的连接并显示连接成功,不过端口并不是8962重新连接的时候指定的那个端口,而是随机的端口,经常是跳到4097端口,重点是,这时候的客户端其实并没有连接成功,也就是还是没从netconn_connect()返回!!
icepnt,您好!
这个问题现在正在测试中,一旦通过会及时联系您的。
问题已经修正,请联系销售!
|