多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[5.2:动态内存池(POOL)](第5章:LwIP的内存管理/5.1:几种内存分配策略/5.2:动态内存池(POOL).md) * [5.2.1:内存池的预处理](第5章:LwIP的内存管理/5.1:几种内存分配策略/5.2:动态内存池(POOL)/5.2.1:内存池的预处理.md) * [5.2.2:内存池的初始化](第5章:LwIP的内存管理/5.1:几种内存分配策略/5.2:动态内存池(POOL)/5.2.2:内存池的初始化.md) * [5.2.3:内存分配](第5章:LwIP的内存管理/5.1:几种内存分配策略/5.2:动态内存池(POOL)/5.2.3:内存分配.md) * [5.2.4:内存释放](第5章:LwIP的内存管理/5.1:几种内存分配策略/5.2:动态内存池(POOL)/5.2.4:内存释放.md) 申请大小必须是指定固定大小字节的值(如4、8、16等等),系统将所有可用区域以固定大小的字节单位进行划分,然后用单链表将所有空闲内存块连接起来。链表中所有节点大小相同,分配,释放都非常简单。。 LwIP源文件中memp.c和memp.h就是动态内存池分配策略,为什么LWIP需要有POOL?因为协议栈里面有大量的协议首部,这些协议首部长度都是固定不变的,所以我们可以首先分配固定内存,给这些固定长度的协议首部,以后每次需要处理协议首部的时候,都直接使用这些已经分配的内存,不需要重新分配内存区域,这样子就达到一个地方分配,多个地方使用的方便与效率。