- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
4.4.3动态管理接口及应用
通过本节学习,您可以:了解动态管理接口说明及应用
动态管理接口及应用OpenHarmonyLiteOS-M内核的动态内存模块提供了初始化内存池、申请释放动态内存、获取内存池信息、获取内存块信息等几种功能。1.动态内存管理接口功能分类接口名描述初始化和删除内存池LOS_MemInit初始化一块指定的动态内存池,大小为sizeLOS_MemDeInit删除指定内存池,仅打开编译控制开关LOSCFG_MEM_MUL_POOL时有效申请、释放动态内存LOS_MemAlloc从指定动态内存池中申请size长度的内存LOS_MemFree释放从指定动态内存中申请的内存LOS_MemRealloc按size大小重新分配内存块,并将原内存块内容拷贝到新内存块。如果新内存块申请成功,则释放原内存块
动态管理接口及应用功能分类接口名描述获取内存池信息LOS_MemPoolSizeGet获取指定动态内存池的总大小LOS_MemTotalUsedGet获取指定动态内存池的总使用量大小LOS_MemInfoGet获取指定内存池的内存结构信息,包括空闲内存大小、已使用内存大小、空闲内存块数量、已使用的内存块数量、最大的空闲内存块大小LOS_MemPoolList打印系统中已初始化的所有内存池,包括内存池的起始地址、内存池大小、空闲内存总大小、已使用内存总大小、最大的空闲内存块大小、空闲内存块数量、已使用的内存块数量。仅打开编译控制开关LOSCFG_MEM_MUL_POOL时有效。
动态管理接口及应用功能分类接口名描述获取内存块信息LOS_MemFreeNodeShow打印指定内存池的空闲内存块的大小及数量LOS_MemUsedNodeShow打印指定内存池的已使用内存块的大小及数量检查指定内存池的完整性LOS_MemIntegrityCheck对指定内存池做完整性检查,仅打开LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK时有效。增加非连续性内存区域LOS_MemRegionsAdd支持多段非连续性内存区域,把非连续性内存区域逻辑上整合为一个统一的内存池。仅打开LOSCFG_MEM_MUL_REGIONS时有效。
动态管理接口及应用动态内存管理的一般开发流程:初始化LOS_MemInit。初始一个内存池后生成一个内存池控制头、尾节点EndNode,剩余的内存被标记为FreeNode内存节点。EndNode作为内存池末尾的节点,size为0。申请任意大小的动态内存LOS_MemAlloc。判断动态内存池中是否存在大于申请量大小的空闲内存块空间,若存在,则划出一块内存块,以指针形式返回,若不存在,返回NULL。如果空闲内存块大于申请量,需要对内存块进行分割,剩余的部分作为空闲内存块挂载到空闲内存链表上。释放动态内存LOS_MemFree。回收内存块,供下一次使用。调用LOS_MemFree释放内存块,则会回收内存块,并且将其标记为FreeNode。在回收内存块时,相邻的FreeNode会自动合并。
动态管理接口及应用动态内存管理应用:初始化一个动态内存池:LOS_MemInit()从动态内存池中申请一个内存块:LOS_MemAlloc()在内存块中存放一个数据打印出内存块中的数据:printf()释放该内存块:LOS_MemFree()
动态管理接口及应用具体代码如下:#includestdio.h#includelos_memory.h#includeohos_init.h#includeohos_types.h/*内存管理函数*/voidMemory_hi(void){UINT32*mem=NULL;UINT32POOL_SIZE=1024;//内存池大小UINT32oryMem[POOL_SIZE];//内存池地址UINT8test_ohos[10]={hiohos};//测试数组/*初始化内存池*/if(LOS_MemInit(oryMem,POOL_SIZE)!=LOS_OK){printf(Meminitfailed!\r\n);return;}
动态管理接口及应用/**申请内存块**/mem=(UINT32*)LOS_MemAlloc(oryMem,10);if(mem==NULL){printf(Memallocfailed!\r\n);return;
您可能关注的文档
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.1.2 鸿蒙设备开发软件环境要求.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.1.3 鸿蒙设备开发环境的搭建.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.2 鸿蒙系统构建工具链.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.2.1 鸿蒙构建工具链介绍.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.2.2 Ninja构建工具介绍.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.2.3 Ninja常用语法.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 2.2.4 GN常用语法.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 3.1.1 鸿蒙系统源码框架.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 3.1.2 鸿蒙系统源码下载.pptx
- 《鸿蒙智能互联设备开发(微课版)》 课件 3.2.1 编写 HelloWorld 程序.pptx
- 中老年常见疾病.doc
- 驾校考试科目一知识点整理.docx
- 2024年新疆阿克苏地区企业人力资源管理师之一级人力资源管理师考试精品题库附答案【模拟题】.docx
- 2024年新疆哈密地区企业人力资源管理师之一级人力资源管理师考试含答案(夺分金卷).docx
- 2024年新疆博尔塔拉蒙古自治州企业人力资源管理师之四级人力资源管理师考试大全附答案【能力提升】.docx
- 2024年新疆克拉玛依市企业人力资源管理师之一级人力资源管理师考试优选题库【含答案】.docx
- 2024年新疆乌鲁木齐市企业人力资源管理师之一级人力资源管理师考试王牌题库带答案(完整版).docx
- 2024年新疆巴音郭楞蒙古自治州企业人力资源管理师之四级人力资源管理师考试题库大全含答案(精练).docx
- 2024年新疆阿勒泰地区企业人力资源管理师之一级人力资源管理师考试精品题库附答案【A卷】.docx
- 2024年新疆阿勒泰地区企业人力资源管理师之一级人力资源管理师考试优选题库【全国通用】.docx
最近下载
- 智慧大厅指挥中心整体建设方案.pptx
- 2.1六上科学《我们的地球模型》教学课件.ppt VIP
- 职业生涯发展展示 (修改版).pptx
- 建筑工程承包施工合同纠纷代理词(原告方).docx
- 电力拖动自动控制系统——运动控制系统第5版阮毅、陈伯时课后习题解答答案.docx
- (2024更新)国开电大《小学语文教学研究》形考任务1答案.pdf VIP
- 2023年华北电力大学(北京)计算机科学与技术专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 大学思政课件中国梦.pptx
- 部编版小学道德与法治五年级上册第四单元测试卷含答案(共2套).pdf VIP
- 落实全面从严治党方面存在的问题及整改措施【10篇】.docx VIP
文档评论(0)