[STM32F4] stm32F429 lwip tcp客户端,使用cubmx生成的代码,接收数据报错,报错几次就会彻底不能收发数据了

[复制链接]
 楼主| laocuo1142 发表于 2024-7-1 16:33 | 显示全部楼层 |阅读模式
主控芯片为SMT32F429,使用RMII,外面接LAN8742,无系统(裸系统)。

直接使用CubeMx生成代码,堆栈设置都是0x800。其它代码很少。ping和发送都没有问题,但是每次接收数据时会报错:

Assertion "pbuf_free: p->ref > 0" failed at line 753 in ../Middlewares/Third_Party/LwIP/src/core/pbuf.c

频繁接收数据之后,发送会报错ERR_MEM(-1),后面就再也不能正常收发数据了。请问这是什么原因导致的?或者如何能避免啊?
elephant00 发表于 2024-7-4 14:43 | 显示全部楼层
检查lwIP堆栈配置是否符合项目需求
两只袜子 发表于 2024-7-4 19:42 | 显示全部楼层
使用lwIP提供的调试功能(如设置LWIP_DEBUG)来跟踪TCP连接的状态和错误。检查是否有TCP连接被异常关闭或重置,以及是否有未处理的错误导致连接状态不正确。
jcky001 发表于 2024-7-4 20:23 | 显示全部楼层
检查网络驱动和中断处理是否有误
cr315 发表于 2024-7-4 22:00 | 显示全部楼层
在接收数据时,检查lwIP的返回值,特别是错误代码。对于任何错误,都应该有相应的错误处理逻辑,比如重试接收、关闭连接或重置TCP状态。
检查是否有内存泄漏或溢出的问题,这可能会导致系统资源耗尽,进而影响网络通信。
hehhehee 发表于 2024-7-26 14:55 | 显示全部楼层
pbuf_free 断言失败表明 pbuf 的引用计数有问题。检查代码中是否有重复释放或不正确管理 pbuf 的情况。
610u 发表于 2024-7-30 23:40 | 显示全部楼层
检查是否有TCP连接被异常关闭或重置
jzzllv 发表于 2024-8-31 12:56 | 显示全部楼层
这是什么原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1296

主题

6236

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部