OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5500|回复: 12

关于lwip 1.4.1 tcp server 长时间工作 协议栈死机

[复制链接]

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
发表于 2019-7-16 17:48:28 | 显示全部楼层 |阅读模式
1金钱
我使用的开发板是探索者  F407  ucos3  emwin   lwip1.4   使用tcp服务器模式工作,我用的pc电脑tcp连接和ping数据,工作1-4小时很正常,但是到了4小时过后就会出现协议栈死掉,ping不通,tcp也不通了,ucos其他任务正常。我跟踪协议发现是中断数据接收后,在ethernetif.c  --> ethernetif_inpiut -->  tcpip_input()函数的memp_malloc(MEMP_TCPIP_MSG_INPKT)   内存申请为空。也就是说内存溢出了。  但是为什么会出现内存溢出呢,  数据接收---- 内存申请后--发送消息邮箱--内核接收处理--释放memp内存。是这样吧。但是我不知道下一步应该怎样分析判断出的问题在哪里????我用正电原子的源码  修改到我的工程里面也是一样的问题。请高手出招救我。   谢谢了!!!

最佳答案

查看完整内容[请看2#楼]

终于搞好了,更换了原有的例程,现在已经连续测试了三天三晚,还没有出现问题,ping tcp 连接都正常了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2019-7-16 17:48:29 | 显示全部楼层
终于搞好了,更换了原有的例程,现在已经连续测试了三天三晚,还没有出现问题,ping tcp 连接都正常了。
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2019-7-16 17:54:52 | 显示全部楼层
我跟踪看了默认为8个确实内存满了,为什么没有释放,什么原因?怎么检查判断解决咧
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-7-17 02:00:19 | 显示全部楼层
帮顶
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2019-7-23 08:24:18 | 显示全部楼层
自己顶一下,这个问题简直把我搞疯了。哪位高手帮忙一下!
回复

使用道具 举报

48

主题

135

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2017-8-29
在线时间
89 小时
发表于 2019-7-23 16:10:01 | 显示全部楼层
我也是出现这方面的原因,也没有找到根本的原因。现在临时处理方案,就是掉线后(加了保活),重新连接。
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2019-7-24 21:43:59 | 显示全部楼层
我也加了保活机制   只能系统重启   能不能重启只是复位网络啊
回复

使用道具 举报

31

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2013-9-23
在线时间
44 小时
 楼主| 发表于 2019-8-5 10:54:35 | 显示全部楼层
终于搞定了,原来我找的例程有问题,更换了例程后就好的,但是还是没有找到原因。现在工作三天三夜协议栈工作正常。再也没有出现死机问题了
回复

使用道具 举报

28

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2018-2-23
在线时间
37 小时
发表于 2019-8-21 11:59:00 | 显示全部楼层
需要W5500的相关例程可以到www.w5500.cn上下载

电话:18998936327
QQ:2429075983
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-7-27
在线时间
4 小时
发表于 2019-9-8 20:54:19 | 显示全部楼层
大神!我遇到了和你相同的问题,长时间不定期的ping就不通了,最后跟踪也是进到memp_malloc每次都是空,搞了很久不能搞定。您能不能把例程给我发一下,谢谢!  34554408@qq.com
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2017-4-24
在线时间
36 小时
发表于 2020-2-17 10:41:03 | 显示全部楼层
楼主,啥问题,不分享一下,大家学习学习吗
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
79
金钱
79
注册时间
2018-11-26
在线时间
21 小时
发表于 2020-2-17 22:26:38 | 显示全部楼层
有可能是以太网接收的数据包太多了,处理不过来,导致内存释放不及时而分配失败,你试试出现问题的时候把网线拔掉,过几分钟再接回去,如果网络又能ping通了,就可能是这个问题,处理的方法就是提高处理速度,或者加大PBUF_POOL的数量
回复

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-2-11
在线时间
36 小时
发表于 2020-6-17 14:37:03 | 显示全部楼层
jztvlxp 发表于 2019-7-16 17:48
终于搞好了,更换了原有的例程,现在已经连续测试了三天三晚,还没有出现问题,ping tcp 连接都正常了。

你好 替换了什么历程解决的呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 17:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表