搜索
bottom↓
回复: 7

LWIP udp通讯未接收的端口造成阻塞的问题求教

[复制链接]

出0入22汤圆

发表于 2021-9-29 10:49:30 | 显示全部楼层 |阅读模式
各位大神,我遇到个lwip的问题,能否抽空帮看看
测试程序:socket方式。我单片机作为udp客户端使用随机分配的端口(实测4667)往电脑30000端口周期性发送数据,因为不关心应答,所以只发不接收。另外单片机还开了个udp服务器,端口为6000侦听别的消息。
遇到的问题:电脑如果往单片机4667回复报文8条后,lwip就塞死了,任何报文都进入不了单片机的应用层。

问题排查:走读代码后,我发现是recv_udp函数里会进行buf = (struct netbuf *)memp_malloc(MEMP_NETBUF);如果申请不到内存则会丢弃报文pbuf_free(p);申请到了则会最终发送收到报文的消息sys_mbox_trypost(&conn->recvmbox, buf)。这个buf空间最终正常释放是在lwip_recvfrom函数里netbuf_delete((struct netbuf *)buf);释放的。但是我既然不关心4667端口了,所以也就不会对这个socket里进行接收处理,这样就永远不会释放上面说的buf。
一旦不释放就所有进来的报文都到达不了应用层了。进来的报文因为在recv_udp里申请不到buf空间报文就被丢弃了。

尝试解决:我想自己加个代码,在buf申请不到内存时,自己释放最老的buf。但是遇到的问题是这个buf如果是给6000端口的,等到6000端口的接收处理时又会释放一次buf 这样就会导致乱套了。但是我又无法区分应用层哪个buf会被释放。感觉关联的东西挺多的。软件功力不行 ,改不动

出100入113汤圆

发表于 2021-9-29 13:21:40 | 显示全部楼层
内存不够吗?加大缓存啊,还有就是 LWIP 一些参数的配置,好好看看。

出100入113汤圆

发表于 2021-9-29 13:22:10 | 显示全部楼层
LWIP 底层不要轻易去改,除非你非常熟悉,有些问题修改配置能够解决,还是很稳定的。

出0入22汤圆

 楼主| 发表于 2021-9-29 14:35:32 | 显示全部楼层
saccapanna 发表于 2021-9-29 13:22
LWIP 底层不要轻易去改,除非你非常熟悉,有些问题修改配置能够解决,还是很稳定的。 ...

不是内存不够  是他的机制在这  不做recv的话总有耗尽的时候
看了半天 实在改不动  最后变通的解决了  监测快耗尽的时候,让最低优先级的任务去recv所有socket释放他

出100入113汤圆

发表于 2021-9-30 16:31:15 | 显示全部楼层
你用的那个版本的 LWIP ?

出0入22汤圆

 楼主| 发表于 2021-9-30 16:33:22 | 显示全部楼层
saccapanna 发表于 2021-9-30 16:31
你用的那个版本的 LWIP ?

用的2.0.2 我看了下后续版本的升级记录 没有关于此问题的升级

出100入113汤圆

发表于 2021-9-30 16:57:30 | 显示全部楼层
我使用的 V2.0.3 感觉很稳定,至少 TCP 是非常稳定的,所以可以试试这个版本。

出0入0汤圆

发表于 2023-12-26 09:32:24 | 显示全部楼层
saccapanna 发表于 2021-9-30 16:57
我使用的 V2.0.3 感觉很稳定,至少 TCP 是非常稳定的,所以可以试试这个版本。 ...
(引用自7楼)

请教一下,如果是单片机和电脑网线直连,可以很稳定的在4-5ms内定时发送数据吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 06:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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