采用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);//释放内存
}
}
|