硬汉嵌入式论坛

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

LWIP 内存配置问题

[复制链接]

15

主题

57

回帖

102

积分

初级会员

积分
102
发表于 2025-3-18 09:13:51 | 显示全部楼层 |阅读模式
采用lwip udp组播通信时发送死机,调试发现申请内存使用PBUF_POOL导致,改为PBUF_RAM后问题解决。请教下这是什么原因,两者用法有什么区别。

[C] 纯文本查看 复制代码
void PTU_UDP_Send(u8 *sendbuf, u16 size)
{
	struct pbuf *ptr;
	ptr=pbuf_alloc(PBUF_TRANSPORT,size,PBUF_RAM); //申请内存
	if(ptr)
	{
		ptr->payload=(void*)sendbuf; 
		udp_sendto(PTU_pcb, ptr,(const ip_addr_t *) (&ipgroup_ptusend),30328);
		pbuf_free(ptr);//释放内存
	} 
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115650
QQ
发表于 2025-3-19 06:01:49 | 显示全部楼层
可以判断下返回值,应该是申请失败了。
回复

使用道具 举报

15

主题

57

回帖

102

积分

初级会员

积分
102
 楼主| 发表于 2025-3-20 16:31:22 | 显示全部楼层
eric2013 发表于 2025-3-19 06:01
可以判断下返回值,应该是申请失败了。

调试了下,申请成功了,死在发送了udp_sendto(PTU_pcb, ptr,(const ip_addr_t *) (&ipgroup_ptusend),30328);
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115650
QQ
发表于 2025-3-21 09:37:02 | 显示全部楼层
lishang4650 发表于 2025-3-20 16:31
调试了下,申请成功了,死在发送了udp_sendto(PTU_pcb, ptr,(const ip_addr_t *) (&ipgroup_ptusend),303 ...

这样的话,就不清楚了。
回复

使用道具 举报

15

主题

57

回帖

102

积分

初级会员

积分
102
 楼主| 发表于 2025-3-21 11:50:56 | 显示全部楼层
eric2013 发表于 2025-3-21 09:37
这样的话,就不清楚了。

我再找找原因
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-9 14:47 , Processed in 1.172414 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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