[发明专利]嵌入式系统存储空间的优化方法有效
申请号: | 200610138496.4 | 申请日: | 2006-11-17 |
公开(公告)号: | CN101187899A | 公开(公告)日: | 2008-05-28 |
发明(设计)人: | 程圣宇;马力;缪敬;李翌;傅启洪;田珂 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/45;G06F9/445 |
代理公司: | 北京中博世达专利商标代理有限公司 | 代理人: | 申健 |
地址: | 518057广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 存储空间 优化 方法 | ||
技术领域
本发明涉及共享库和应用程序所需存储空间的优化方法,特别涉及嵌入式系统存储空间的优化方法。
背景技术
随着计算机技术的发展,嵌入式计算机系统(以下简称嵌入式系统)已成为计算机领域的一个重要组成部分,广泛应用到生产生活的各个领域,例如工业控制、航空航天、医疗仪器、消费电子等等。并且使用者(或消费者)对嵌入式系统的需求不断提高,例如界面友好、功能丰富、智能化、实时性等等。但是,嵌入式系统毕竟不是通用计算机,它是针对具体应用的专用系统,是完成目标功能的最小系统,因此,一般对成本敏感,硬件和软件都必须高效率地设计,量体裁衣、去除冗余。特别地,绝大多数嵌入式系统的内存和外存空间十分有限。如何在有限的硬件资源上,提供尽可能丰富的服务,是嵌入式系统的设计开发人员面临的重要挑战。
在维持嵌入式系统现有功能和性能的情况下,尽量压缩软件,是解决上述问题的一种可行途径。嵌入式系统中的软件,主要包含共享库和应用程序的可执行文件两类,优化嵌入式系统中存储空间的主要途径是对这两类文件进行裁剪或压缩,目前主要有以下三类方法:
1.裁剪共享库中冗余代码:
这类方法首先分析目标文件系统中共享库和应用程序可执行文件之间的依赖关系,通过这些依赖关系对应用程序所需要的符号进行分析,从而确定共享库中哪些部分是应用程序和其它共享库所必需的;然后重建共享库文件,重建的共享库中仅保留必需的部分。例如HardHat Linux的LOT(Library Optimization Tool)就属于这类工具。
用这种方法优化共享库,必须首先要获得该共享库的详细符号索引信息,实现很复杂;该方法仅适用于裁剪共享库,不能对应用程序进行裁剪,因此能够节省的存储空间有限;如果修改应用程序或共享库,引用了原来没有用到的库函数时,必须重新构建它们所依赖的共享库,因此不易扩展。
2.压缩可执行文件:
目前,嵌入式系统中采用的数据压缩方式,主要有以下两种:
1)使用支持数据压缩的文件系统:这是普遍采用的方式。使用本发明所述的优化方法优化后的嵌入式系统,仍然可以使用支持数据压缩的文件系统;
2)直接压缩可执行文件:使用压缩算法直接对可执行文件进行压缩处理,并在可执行文件中添加一个段来标识这是压缩文件,加载压缩的文件时,则首先解压,然后加载。这种方法需要修改可执行文件的格式和家再起的处理流程,实现比较复杂;所能节省的存储空间大小与采用的压缩/解压算法有关,一般而言,算法的压缩比越高,节省的存储空间就越多,但加载时解压缩代价更大,系统效率更低,在实时性要求高的系统中,这种效率的降低往往不能忽略。
3.直接优化源代码:
使用一些特殊编程技巧来优化代码大小,例如以移位运算代替乘除运算、将浮点数的运算转化成整型数的运算、查表代替数学函数调,以及根据所使用处理器和编译器的特点,结合具体程序采用一些特定的优化措施等等。
一般情况下,这是一种代价最大的空间优化方法,需要优化者对被优化系统有较深了解,并且优化效果往往取决于优化者个人的编程技巧。
综上所述,现有方法存在明显不足:要么实现复杂、只能对共享库进行优化,要么会降低系统运行效率,要么代价太大,有待改进。
发明内容
为了克服现有技术的缺陷和不足,本发明的目的在于提供一种能够降低系统成本,并且提高系统运行效率的嵌入式系统存储空间的优化方法。
为了达到上述目的,本发明一种嵌入式系统存储空间的优化方法,包括以下步骤:
(1)在应用程序虚拟地址空间中为共享库预留虚拟地址空间槽;
(2)将应用程序所依赖的共享库全部映射到预留的虚拟地址空间槽中;
(3)对共享库和应用程序的源文件以及库映射文件进行编译处理,并去掉该应用程序和共享库中的冗余信息;
(4)运行该应用程序的执行文件。
优选地,所述步骤(1)具体为:
(11)编写应用程序连接脚本文件,将应用程序的虚拟地址从0xVADDR单元开始预留字节空间给需要映射的共享库;
(12)统计需要映射的共享库的个数,并将该预留的字节空间划分为相应个数的虚拟地址空间槽;
(13)编写共享库连接脚本文件,设置共享库虚拟地址的起点为其槽位的起始单元。优选地,所述步骤(2)具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610138496.4/2.html,转载请声明来源钻瓜专利网。