硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1679|回复: 3
收起左侧

[LwIP] stm32H743+lwip+freeRTOS 运行tcp server,长时工作网络异常

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2021-11-1 10:41:16 | 显示全部楼层 |阅读模式
本帖最后由 AresInAFL 于 2021-11-2 09:49 编辑

硬件资源:stm32H743IIT6,  LAN8720A。软件资源:lwip V2.1.2, freeRTOS V10.3.1
工程移植:在安富莱lwip示例工程上修改而来,V7-2001_LwIP V2.X实验_工程移植模板(FreeRTOS)V1.1。

问题现象:两块板子,一块板子跑的netconn接口,运行tcp server, 另一块板子跑的 tcp client,两块板子网络互联,长时间运行(时间不定,有时四五小时,有时一两小时),server的板子网络就会挂掉,ping也ping不通。但若是server板子和电脑上的网络调试助手上位机连接,连续跑两三天,都不会有问题。

工程细节:
tcp server板子:100ms,连续发送5包128byte数据,copy;2000ms,发送一包128byte数据。网络发送函数调用均在同一线程。
tcp client板子:单纯网络接收,串口打印网络接收长度。


问题排查:
1. 通过打印server板子的 tcpip_thread 线程状态,知道正常工作时的状态是 blocked,异常时的状态是 suspended。
2. server网络异常时,stm32 ETH isr还是能进的,能一直进到 函数 tcpip_inpket(), 在其中为 tcpip_msg 申请内存的时候,会失败,从而无法将消息更进一步上传。
2.1. 具体函数位置见下图,另,通过查阅该部分 MEMP_TCPIP_MSG_INPKT 内存池引用情况,是在 tcpip_thread 中进行释放的,理论而言不应存在泄露或二次释放,为什么实际会出现问题?


问题总结:
1.  stm32+lwip+OS 运行tcp server与同为stm32+lwip+OS运行tcp client 连接,长时工作将导致 server板子的网络服务异常,该如何解决或有何思路?
2.  stm32+lwip+OS 运行tcp server与PC端网络调试助手连接,能稳定长时(两三天)工作,与另一块板子就无法稳定长时工作?

End:
1. 已将 server板子的工程上传,望各位大牛能协助一二,提前感谢。

Emmmm, 初次使用论坛发帖,不知为何附件上传不了,文件大小25MB,上传小窗口一开始显示文件上传中,过一会文件就不见了,不见了。。。
放置百度云链接。
链接:https://pan.baidu.com/s/1aBGM7AfEB73oOf43YLHxUw
提取码:ir6o

捕获14.PNG
回复

使用道具 举报

4

主题

20

回帖

32

积分

新手上路

积分
32
发表于 2021-11-1 14:50:11 | 显示全部楼层
我不能帮你解决问题,因为我是个菜比。但是我可以提醒你,工程在哪里?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106826
QQ
发表于 2021-11-2 10:17:39 | 显示全部楼层
这个得实际测试下才好解决。
回复

使用道具 举报

44

主题

562

回帖

699

积分

金牌会员

积分
699
发表于 2021-11-4 22:19:58 | 显示全部楼层
猜想长时间运行后出问题,有没有可能是内存泄漏了呢,或是什么内存碎片之类的~~~~
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 05:56 , Processed in 0.275572 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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