硬汉嵌入式论坛

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

[LwIP] FREERTOS+LWIP 使用LAN8720芯片,能够正常启动,正常收发一段时间后程序卡死

[复制链接]

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2024-3-17 11:14:58 | 显示全部楼层 |阅读模式
我使用的是STM32CUBEIDE生成的工程,freertos 使用的最新版,lwip版本是V 2.1.2,驱动程序使用的LAN8742的版本,程序上电运行正常,运行一段时间后卡死在信号量获取失败


经过测试是测试分析可能是LWIP内部进程数据收发时传入参数错误,导致断言。
使用全局搜索查看了调用该函数的地方有如下几个


上电开始数据收发都是正常的,运行一段时间后感觉LIWP内核就卡死了,不知道是什么原因,时间比较随机
还有就是LAN8720运行时,芯片表面温度偏高,不知道是否是电路设计的原因导致芯片工作状态异常,芯片工作异常工作状态触发保护机制,导致通信故障
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-3-17 13:45:07 | 显示全部楼层
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-3-17 13:45:46 | 显示全部楼层
这里是两篇我在网上找到的有相似问题的帖子,https://community.st.com/t5/stm3 ... k/td-p/83219/page/3
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-3-17 13:46:03 | 显示全部楼层
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-18 08:17:56 | 显示全部楼层
1、先什么应用都不要创建,看看最快速百万ping包能通过不。用于排查你的移植问题

ThreadX NetX的百万连续ping包测试通过,无丢包,耗时4小时25分钟
https://www.armbbs.cn/forum.php? ... 9151&fromuid=58
(出处: 硬汉嵌入式论坛)

2、正常。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-3-19 22:31:31 | 显示全部楼层
eric2013 发表于 2024-3-18 08:17
1、先什么应用都不要创建,看看最快速百万ping包能通过不。用于排查你的移植问题

ThreadX NetX的百万连 ...

感谢硬汉哥回复,我试过了,只创建了一个TCP收发任务,将收到的数据原封不动的发回来,程序能正常启动,能正常运行,但是运行一段时间后就卡死,经过调试发现是low_level_output函数获取信号量时传入的参数有问题,但是不知道为什么出问题了,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-3-20 09:30:48 | 显示全部楼层
麦籽小立 发表于 2024-3-19 22:31
感谢硬汉哥回复,我试过了,只创建了一个TCP收发任务,将收到的数据原封不动的发回来,程序能正常启动, ...

TCP任务也不开,仅测试大批量PING,是否正常。
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2024-3-20 18:02:49 | 显示全部楼层
eric2013 发表于 2024-3-20 09:30
TCP任务也不开,仅测试大批量PING,是否正常。

感谢硬汉哥指导,ping没有通过

ping结果

ping结果



ping一段时间后就进入了错误状态,卡在这里了

信号量验证不通过

信号量验证不通过

这个宏验证传入的参数是否是一个信号量,这个函数的调用路径如左边,
信号量的作用就是控制pbuff发送数据,
在下面这个函数中调用,

等待信号量

等待信号量

调用中断发送函数完成一次数据发送后等待发送信号量清空发送描述符数据,中断发送完成后通过回调函数释放信号量,

信号量全局搜索

信号量全局搜索

1:定义了信号量指针
2:分配信号量地址
3:调用中断,等待信号量,等待发送完成
4:中断发送完成,回调函数释放信号量

就这么个流程,但是在程序运行的过程中有一定的概率,很随机,等待信号量时传入的参数有问题,导致无法获取信号量,触发断言,

请硬汉哥帮忙分析一下为什么会造成这种情况
ping的过程中,也会随机出现这种问题。导致超时

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 19:27 , Processed in 0.260104 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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