Pbuf.c:这可是个硬骨头,在栈的应用中缓存是非常重要的,所有要发送的包和接受的包都得先到缓存里。不得不提出的是:有三种格式:pbuf_pool,pbuf_ram,pbuf_ref或pbuf_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_ROM或PBUF_RAM类型。
这句话我现在才明白:就是因为pbuf_pool类型分配快,所以给os用来接受包所以进入;而离开的当然是那俩了。
总结2:就是在分配pbuf时,在pbuf数据结构后面是头接着是内容。尤其是计算头的大小的程序段太妙了,没有break使得size不停的加。妙啊
至于函数我不想说太多,还行没什么难理解的了