多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[5.3:动态内存堆](第5章:LwIP的内存管理/5.3:动态内存堆.md) * [5.3.1:内存堆的组织结构](第5章:LwIP的内存管理/5.3:动态内存堆/5.3.1:内存堆的组织结构.md) * [5.3.2:内存堆初始化](第5章:LwIP的内存管理/5.3:动态内存堆/5.3.2:内存堆初始化.md) * [5.3.3:内存分配](第5章:LwIP的内存管理/5.3:动态内存堆/5.3.3:内存分配.md) * [5.3.4:内存释放](第5章:LwIP的内存管理/5.3:动态内存堆/5.3.4:内存释放.md) 在嵌入式开发中,内存管理以及使用是至关重要的,内存使用的多少、内存泄漏等时刻需要注意。合理的内存管理策略将从根本上决定内存分配和回收效率,最终决定系统的整体性能。LwIP为了能够灵活的使用内存,为使用者提供两种简单却又高效的动态内存管理策略:动态内存堆管理(heap)、动态内存池管理(pool),而内存池管理策略在前面的章节已经讲解,那么现在就来看看内存堆的管理。 其中,动态内存池管理(heap)又可以分为两种:一种是 C 标准库自带的内存管理策略,另一种是LwIP自身实现的内存堆管理策略。这两者的选择需要通过宏值MEM_LIBC_MALLOC来选择,且二者只能选择其一。 其次,LwIP在自身内存堆和内存池的实现上设计得非常灵活。内存池可由内存堆实现,反之,内存堆也可以由内存池实现。通过MEM_USE_POOLS和MEMP_MEM_MALLOC这两个宏定义来选择,且二者只能选择其一。