heap_1:用于任务、消息队列、列表建立后不再删除。
八字节对齐:申请的内存大小为8的倍数,不够的会对齐为8的倍数。
内存堆的可用起始地址会八字节对齐。
heap_2:在heap_1的基础上增加了内存清理,可以用于任务多次创建、删除。
缺点:没有内存碎片处理机制。
每申请一个内存块,前面都会在前面增加一个8字节的结构体,记录内存头和内存尾及内存大小。
需要找到合适大小的内存块,并且返回的内存地址会跳过结构体。
会分割大的内存堆。分割出来的内存返回给空闲内存堆列表。
heap_3:通过Heap_Size来设置内存堆大小
利用malloc 和 free来申请内存
configTOTLA_HEAP_SIZE不起作用
heap_4:有内存碎片处理机制。(最优)
通过链表管理空闲内存块,分配内存是相连内存块会合并。
片内RAM、SRAM、SDRAM三选一。
heap_5:可以片内RAM、SRAM、SDRAM同时使用。