开发指导
使用场景
当用户需要使用固定长度的内存时,可以通过静态内存分配的方式获取内存,一旦使用完毕,通过静态内存释放函数归还所占用内存,使之可以重复使用。
功能
Huawei LiteOS的静态内存管理主要为用户提供以下功能,接口详细信息可以查看API参考。
功能分类 |
接口名 |
描述 |
---|---|---|
初始化静态内存池 |
LOS_MemboxInit |
初始化一个静态内存池,根据入参设定其起始地址、总大小及每个内存块大小 |
清除静态内存块内容 |
LOS_MemboxClr |
清零指定静态内存块的内容 |
申请、释放静态内存 |
LOS_MemboxAlloc |
从指定的静态内存池中申请一块静态内存块 |
LOS_MemboxFree |
释放指定的一块静态内存块 |
|
获取、打印静态内存池信息 |
LOS_MemboxStatisticsGet |
获取指定静态内存池的信息,包括内存池中总内存块数量、已经分配出去的内存块数量、每个内存块的大小 |
LOS_ShowBox |
打印指定静态内存池所有节点信息(打印等级是LOS_INFO_LEVEL),包括内存池起始地址、内存块大小、总内存块数量、每个空闲内存块的起始地址、所有内存块的起始地址 |
开发流程
本节介绍使用静态内存的典型场景开发流程。
- 执行make menuconfig命令,进入Kernel ---> Memory Management菜单,完成静态内存管理模块的配置。
配置项
含义
取值范围
默认值
依赖
LOSCFG_KERNEL_MEMBOX
使能membox内存管理
YES/NO
YES
无
LOSCFG_KERNEL_MEMBOX_STATIC
选择静态内存方式实现membox
YES/NO
YES
LOSCFG_KERNEL_MEMBOX
LOSCFG_KERNEL_MEMBOX_DYNAMIC
选择动态内存方式实现membox
YES/NO
NO
LOSCFG_KERNEL_MEMBOX
平台差异性
无。