LiteOS的内存支持静态分配、动态分配两种,亦即BOX和DLINK算法,类似字节块和字节池的差异,静态分配方式中存储空间大小一致,而动态分配可以使用变化大小的存储空间。
一、BOX分配方式
BOX算法中内存块的大小是由初始化的时刻固定的。提供magic赋值方式用于内存检查,即在每块申请空间前一个word用于填写固定值的方式检查内存破坏情况。
1、使用结构体
LOS_MEMBOX_INFO只是在连续存储空间开始作为头信息
typedef struct
{
UINT32 uwBlkSize; /**<Block size*/ 块大小
UINT32 uwBlkNum; /**<Block number*/ 块个数
LOS_MEMBOX_NOD

本文详细介绍了LiteOS操作系统中的内存管理机制,主要包括BOX算法和DLINK算法。BOX算法适用于静态内存分配,内存块大小在初始化时固定,通过内存检查防止破坏。DLINK算法则支持动态分配,能根据需求分配不同大小的内存,通过链表结构管理,允许更灵活的内存使用,但在释放时需要复杂的合并操作。
最低0.47元/天 解锁文章

1029

被折叠的 条评论
为什么被折叠?



