LWIP_pbuf.c

Pbuf.c:这可是个硬骨头,在栈的应用中缓存是非常重要的,所有要发送的包和接受的包都得先到缓存里。不得不提出的是:有三种格式:pbuf_pool,pbuf_ram,pbuf_refpbuf_rom.

我下面就说说这几个结构。

Pbuf_pool:它是重新分配的内存和前面的mem.c中分配的内存不是一马事,在初始化函数中就是对它初始化。当然一个包用它分配最快了,应为它已经初始化了。它的len = 128,可能得用很多表示一个包。

Pbuf_ram:它就是个pbuf头加上在前面说的mem.c中分配的内存,主要还是用的mem.c中的内存。

Pbuf_ref,pbuf_rom:在用得时候主要是一些以前保存的不变的包,如网页等,用于它的内容已经有了,所以只是分配个pbuf的结构体,等以后在用payload指向rom中内容,在用的时候前面还得有个pbuf_ram.

总结1:实质上,进入pbufs的是PBUF_POOL类型,离开pbufs的是PBUF_ROMPBUF_RAM类型。

这句话我现在才明白:就是因为pbuf_pool类型分配快,所以给os用来接受包所以进入;而离开的当然是那俩了。

总结2:就是在分配pbuf时,在pbuf数据结构后面是头接着是内容。尤其是计算头的大小的程序段太妙了,没有break使得size不停的加。妙啊

至于函数我不想说太多,还行没什么难理解的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值