[发明专利]一种嵌入式系统中内存管理的方法和装置有效
申请号: | 201010280788.8 | 申请日: | 2010-09-10 |
公开(公告)号: | CN101950272A | 公开(公告)日: | 2011-01-19 |
发明(设计)人: | 李健;张连毅;武卫东 | 申请(专利权)人: | 北京捷通华声语音技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 100193 北京市海淀区东北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 内存 管理 方法 装置 | ||
技术领域
本发明涉及嵌入式技术领域,特别是涉及一种嵌入式系统中内存管理的方法和装置。
背景技术
由于内存空间配置与嵌入式系统成本紧密相关,故嵌入式系统中内存管理是非常重要的一环。
不同的嵌入式系统,往往有不同的内存管理机制,由于不同的内存管理机制会存在不同的内存限制,其中,所述内存限制主要包括:应用申请堆空间的次数、每次申请的大小、申请空间的内存位置与方式等。因此,一套封闭的内存管理机制不可能适用于市场上各种各样的嵌入式系统。这样,一套引擎若要在一个新的嵌入式系统上正常运行,就不得不根据这个嵌入式系统的内存限制做一些调整,这就是所谓的平台适配。
根据嵌入式系统的不同,具体的平台适配工作也会有所区别,具体可以概括为如下几点:修改内存申请API(应用程序编程接口,Application Programming Interface);修改内存申请的空间大小;修改内存申请的次数,等等。
但是,平台适配工作是一项消耗大量的人力资源与时间成本的工作;另外,由于牵扯到代码修改,每一次平台适配工作都有可能会引入一些程序漏洞(bug),这无疑增加了研发的风险成本。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够降低平台适配所消耗的人力和时间成本。
发明内容
本发明所要解决的技术问题是提供一种嵌入式系统中内存管理的方法和装置,用以省去引擎的平台适配工作,并且,能够减小引擎在内存空间开辟方面的工作量。
为了解决上述问题,本发明公开了一种嵌入式系统中内存管理的方法,包括:
在嵌入式系统的应用模块存在针对引擎的任务需求时,向该引擎发送查询信息;
该引擎根据所述查询信息,反馈需要的内存大小;
所述应用模块向嵌入式系统申请与所述内存大小相应的内存空间,并在申请成功后,将所述内存空间首地址传送给该引擎;
该引擎利用所述内存空间,处理来自所述应用模块的任务。
优选的,所述该引擎利用所述内存空间,处理来自所述应用模块的任务的步骤,包括:
在接收到引擎内各模块的内存申请请求时,依据内存控制信息,返回相应申请内存的首地址,并调整所述内存控制信息;
在接收到引擎内各模块的内存释放请求时,释放相应的申请内存,并调整所述内存控制信息。
优选的,所述该引擎利用所述内存空间,处理来自所述应用模块的任务的步骤,还包括:
按照后进先出原则利用所述内存空间。
优选的,所述内存控制信息包括地址偏移,所述地址偏移的初始值为0;
所述内存申请请求包括有申请内存大小;
所述内存申请请求处理步骤包括:
将所述内存空间首地址+地址偏移作为申请内存的首地址,返回给所述引擎内各模块;
将地址偏移更新为地址偏移+申请内存大小;
和/或,
所述内存释放请求处理步骤包括:
根据所述内存释放请求,释放相应的申请内存;
将地址偏移更新为地址偏移-申请内存大小。
优选的,所述方法还包括:
在任务处理完毕时,该引擎向所述应用模块发送内存空间释放通知。
优选的,依据如下步骤统计所述内存大小:
在调试阶段,所述应用模块向嵌入式系统申请调试内存空间,并在申请成功后,将所述调试内存空间首地址传送给该引擎;
该引擎利用调试内存空间,统计处理任务所需消耗的内存,所述统计过程包括:
设置累计内存消耗值和内存消耗峰值,并赋初始值为0;
在为引擎内各模块分配内存时,将所述累计内存消耗值更新为累计内存消耗+分配内存大小;
若当前累计内存消耗大于内存消耗峰值,则将内存消耗峰值赋为当前累计内存消耗值;
在释放分配内存时,将所述累计内存消耗更新为累计内存消耗值-分配内存大小;
在任务处理完毕时,以所述内存消耗峰值作为所述内存大小。
依据另一实施例,本发明还公开了一种嵌入式系统中内存管理的装置,包括:
应用模块,位于嵌入式系统中,包括:
发送模块,用于在存在针对引擎的任务需求时,向引擎发送查询信息;及
申请传送模块,用于向嵌入式系统申请与所述内存大小相应的内存空间,并在申请成功后,将所述内存空间首地址传送给该引擎;及
引擎,包括:
反馈模块,用于根据所述查询信息,反馈需要的内存大小;及
任务处理模块,用于利用所述内存空间,处理来自所述应用模块的任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京捷通华声语音技术有限公司,未经北京捷通华声语音技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010280788.8/2.html,转载请声明来源钻瓜专利网。