2 xiaohau86 xiaohau86 于 2016.04.14 22:35 提问

嵌入式设备网络通讯稳定性开发

环境与现象:
STM32F207系列MCU,搭配LAN8710网卡芯片做网络服务器。协议栈使用LWIP,服务器提供一个TCP/IP的SOCKET接口供客户端调用。访问方式为,单线程、短连接、高吞吐。除正常访问外,客户端每10分钟向服务器发送一条报文,以检测服务器的健康状态。目前的情况是:在客户端与服务器共同运行15天左右的时候就会出现服务器无法访问的情况,具体表现为TCP/IP无法访问,PING指令无法联通,此时若关机重启则服务器故障消失,可以正常访问,但15天左右故障会再次发生。
现招募对此方面技术精通的电子工程师或嵌入式工程师,有意者请联系13331015258。

3个回答

devmiao
devmiao   Ds   Rxr 2016.04.14 23:32
u011195662
u011195662   2016.10.14 10:49

1、检查内存是否存在溢出,可以增大客户端向服务器发送报文的频率,如一分钟20条,看是否会提前出现挂掉的情况;
2、跟军ping指令无法连通,可定位为LWIP协议没有在运行,若未在1中检测出内存溢出的问题,可以加入看门狗代码,出现异常时自动重启恢复;
3、建议先查出内存上访问越界或溢出的程序崩溃的问题,虽然说一般加看门狗也能解决这种问题,但是治标不治本。此外,即使问题解决了,这种网关还是要加看门狗的。

caihjf
caihjf   2017.03.30 12:09

这种现象就是lwip内核线程已经崩溃啦,可以检查内存溢出问题,还有STM32自带看门狗,程序崩溃,会自动跳入硬件错误中断中,只需再错误中断中重启系统即可

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!