MCU内存分配与管理(3)

简单的内存管理,我们一般使用固定大小的块进行分配。如我使用64字节块进行分配,如果使用中要求分配的内存小64字节,我们就分配出一块,如果要求分配的内存大于64字节,则多块联合分配。因此我们就要引入一个内存管理块的概念。

typedef struct _MemCtrl

{

       void *     prevElementP;

       void *     nextElementP;

       void *     userSpaceP;

       uint16_t  userLen;

       uint16_t useFlag;

}MemCtrl;

使内存控制块形成一个双向链表。其中userSpaceP指向可以给用户使用的内存。userLen保存本次分配出去的空间大小,它只能是64字节的整数倍。useFlag保存改内存块是否已经被分配出去。

转载于:https://my.oschina.net/u/2544280/blog/872907

你可能感兴趣的:(内存管理,嵌入式,数据结构与算法)