[发明专利]一种基于全局字节数组的嵌入式内存管理方法及装置在审
申请号: | 202110302248.3 | 申请日: | 2021-03-22 |
公开(公告)号: | CN112685188A | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 任文龙;刘嵩义;温奎;罗勇 | 申请(专利权)人: | 四川九洲电器集团有限责任公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 林菲菲 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 全局 字节 数组 嵌入式 内存 管理 方法 装置 | ||
本发明公开了一种基于全局字节数组的嵌入式内存管理方法及装置,本发明的装置包括一个内存池和一个内存管理器;所述内存池是通过在嵌入式系统中定义一个全局字节数组创建,所述内存池划分为多个固定大小的内存块;所述内存管理器包括内存池使用状态和一个单向链表,所述内存池使用状态用于指示内存块的使用情况,所述单向链表用于挂接内存池中空闲的内存块;所述内存管理器用于对外提供动态内存管理。本发明在全局字节数组的基础上实现高效可靠的内存管理,支持复杂数据结构在嵌入式软件设计中的使用。
技术领域
本发明属于嵌入式技术和物联网技术领域,具体涉及一种基于全局字节数组的嵌入式内存管理方法及装置。
背景技术
随着智能技术和物联网技术的快速发展,各种设备互联互通,嵌入式设备开始承担越来越多的功能,需要集成的模块越来越多,嵌入式软件开发的规模和复杂度也越来越高。为了应对软件功能的高复杂度,目前嵌入式软件都是基于嵌入式操作系统(如FreeRTOS、DSP BIOS等)进行开发以实现各种并发功能,于是嵌入式操作系统的内存管理成为了嵌入式软件开发中的一个重要方面,内存管理的实时性和稳定性对嵌入式软件的性能影响至关重要。
嵌入式系统内存管理机制一般有静态分配和动态分配两种,静态分配在软件编译阶段将可执行程序所需的内存空间分配好,例如软件中的全局变量即是此种分配方法,此种方法缺点是不够灵活,不能动态支持内存申请与释放;动态分配一般是采用堆内存管理,嵌入式系统在初始化时要分配好系统堆的内存空间,该机制的管脚是要处理好内存碎片和内存回收,在内存频繁动态变化的场景下其性能对程序是一个潜在风险点。另外软件工程师在使用动态分配时容易遗忘内存释放造成内存泄露,该问题难以发现,是软件设计中一个痛点,故此在实际的嵌入式软件设计中都要求采用全局变量以避免内存泄露问题。
嵌入式软件一般是面向专业领域,应用场景具有专一性,故而在制定需求的时候都会对各项功能规划好技术指标,进而选用合适的硬件以减少成本,由此内存的总体使用量是可以进行预先估算的,内存动态分配的使用场景是少量且可控的。因此现有在嵌入式系统的软件开发中大量使用基于全局变量的静态分配法,极力避免动态内存申请释放时引发内存不足或泄漏或潜在的性能问题,从而提高软件的可靠性,由此造成的后果是难以在软件设计中使用复杂的数据结构(如链表和哈希表),软件设计实现的复杂度和冗余度较高,可读性较差。
发明内容
为了解决现有基于全局变量的静态分配法存在复杂度和冗余度较高等技术问题,本发明提供了解决上述问题的一种基于全局字节数组的嵌入式内存管理装置,用于避开嵌入式操作系统的内存动态管理器,在全局字节数组的基础上实现高效可靠的内存管理,支持复杂数据结构在嵌入式软件设计中的使用。
本发明通过下述技术方案实现:
一种基于全局字节数组的嵌入式内存管理装置,包括一个内存池和一个内存管理器;
所述内存池是通过在嵌入式系统中定义一个全局字节数组创建,所述内存池划分为多个固定大小的内存块;
所述内存管理器包括内存池使用状态和一个单向链表,所述内存池使用状态用于指示内存块的使用情况,所述单向链表用于挂接内存池中空闲的内存块;
所述内存管理器用于对外提供动态内存管理。
优选的,本发明的内存池使用状态包括但不限于内存池首地址、内存池的大小、每个内存块的大小、内存块的总数量、内存块的使用数量和内存块的空闲数量。
优选的,本发明的单向链表是通过定义数组创建,数组大小和内存池中内存块总数量相同;所述单向链表的结点包括内存块的首地址或内存块相对于内存池首地址的偏移量。
另一方面,本发明还提出了基于本发明上述提出的一种基于全局字节数组的嵌入式内存管理装置的方法,包括以下步骤:
初始化所述内存管理器;
基于初始化后的内存管理器对外提供动态内存管理。
优选的,本发明的初始化过程包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川九洲电器集团有限责任公司,未经四川九洲电器集团有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110302248.3/2.html,转载请声明来源钻瓜专利网。