目录
1 为什么要封装
封装通常会降低效率,但能够带来诸如通用性提升等好处,idf在tlsf
的基础上增加封装,其作用可以概括为以下两点:
- 上下层接口分离,上层接口和底层实际使用的内存管理算法无关,这样,以后有更优秀的算法,也可以很方便移植
- 单纯的
tlsf
没办法满足idf的需要,比如不支持内存的caps
,没有堆调试特性,因而增加上层封装以提供更多的功能
2 先看结构
还是从结构来看上层封装的具体设计与实现。上层封装更具体的说,有两层,分别是multi heap
层和更上层的heap caps
层(不妨就这么称呼吧)。其实现分别位于multi_heap.c
以及heap_caps.c
。先看multi heap
层,这一层提供了可选的堆调试配置项,这里仅介绍不含堆调试的部分(堆调试以及上层的堆初始化会在后面的博客中专门介绍)。