Advertisement

LiteOS内存管理模块 LiteOS内存管理模块

阅读量:

LiteOS在内存管理中采用了静态与动态存储策略以满足不同的应用需求。其中BOX类似于固定大小的字节块而DLINK则类似于可变大小的字节池两者在内存组织上存在显著区别。具体而言,在静态存储策略下所有存储区域均具有相同的容量而在动态存储策略中允许存储空间容量进行调节以适应程序运行时的需求变化。

一、BOX分配方式

BOX算法中内存块的大小取决于初始化时刻,并且是恒定的。该系统采用了magic赋值法来实现内存保护功能,在每个内存块申请时预先设置一个固定字作为标记。

1、使用结构体

LOS_MEMBOX_INFO只是在连续存储空间开始作为头信息

复制代码
 typedef struct

    
 {
    
    UINT32           uwBlkSize;                            /**<Block size*/         块大小
    
    UINT32           uwBlkNum;                             /**<Block number*/ 块个数
    
    LOS_MEMBOX_NODE  stFreeList;                 /**<Free list*/        维护可申请空闲内存的地址链表
    
 } LOS_MEMBOX_IN

全部评论 (0)

还没有任何评论哟~