[发明专利]一种基于可重定位ELF文件的软件快速加载方法在审
申请号: | 201611167417.2 | 申请日: | 2016-12-16 |
公开(公告)号: | CN106598674A | 公开(公告)日: | 2017-04-26 |
发明(设计)人: | 张尧学;胡俊英;任炬;刘亚萍;陈娅芳;李政军 | 申请(专利权)人: | 中南大学;湖南提奥信息技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 赵洪,蒋维特 |
地址: | 410083 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 定位 elf 文件 软件 快速 加载 方法 | ||
技术领域
本发明涉及软件动态加载技术领域,尤其涉及一种基于可重定位ELF文件的软件快速加载方法。
背景技术
目前极为流行的智能手表、手环等智能设备多以ARM内核处理器为核心,适配市面上广泛使用的RTOS等微内核,再辅以软件重定位技术来实现软件的动态加载,以提供更加广泛的服务。
此类嵌入式设备的软件主要由ELF文件与资源文件俩部分组成。该ELF文件(代码文件)并非设备可以直接执行的机器代码,而是一种可重定位对象文件(Relocatable file)。这种ELF文件需要经过系统链接器链接加载后,才能形成可以被设备直接执行的机器码。
此类设备运行软件的方式有以下俩种:
1、软件加载域位于ROM,运行域位于RAM。软件在每次运行同一个动态软件的过程中,都需要将软件中的ELF部分拷贝到RAM中,进行link、load处理,然后才能生成可执行文件。所以,每次运行软件都需要耗费大量的时间,造成CPU资源的浪费。同时,此过程也消耗大量的电能,为原本容量就极小的电池带来更大的负担。但在这种方式中,由于软件运行域位于RAM中,需要在运行时再拷贝与链接,所以软件可以任意改变其存储位置。
2、软件加载域位于ROM,运行域也位于ROM中。这种方式下,软件在第一次运行时,需将ROM中的数据先拷贝到RAM中进行链接操作,然后写回原ROM地址,这个过程也被称为软件安装。这种方式优点是,软件只需要对软件代码段(.text)与只读数据段(.rodata)进行一次链接操作,以后每次运行时只需要加载软件的RAM部分即可,加载时间短,响应速度快,更为节能。这种方式缺点是,软件一次运行后,不能随意更改其存储位置。
目前这俩种方式都有一定的应用,但是由于目前智能手表、手环等低端智能设备配置低,所以上述俩种方式都会带来不利的影响。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种仅仅在软件第一次加载时需要完整的执行解析、链接等重定位步骤,并构建链接索引表,在第二次加载该软件时,即可根据现有的链接索引表,直接通过链接索引表执行链接过程,完成软件的重定位工作,生成可执行文件,可加快软件的加载速度,降低软件加载过程中功耗的基于可重定位ELF文件的软件快速加载方法。
为解决上述技术问题,本发明提出的技术方案为:一种基于可重定位ELF文件的软件快速加载方法,包括如下步骤:
S1.确定要加载的软件,获取所述软件的软件包并进行解析,得到所述软件的代码文件,并将所述代码文件装载至运行空间;所述代码文件包括.text段、.rodata段、.data段和.bss段;
S2.判断是否存在所述软件的链接索引表,不存在则跳转到步骤S3,存在则跳转至步骤S4;
S3.对所述代码文件进行重定位,生成可执行文件和包含所述重定位信息的链接索引表,完成软件加载,并将保存所述链接索引表;
S4.获取所述链接索引表,并根据所述链接索引表对所述代码文件进行快速重定位,生成可执行文件,完成软件加载。
作为本发明的进一步改进,所述代码文件装载至运行空间的加载方式包括:将所述代码文件装载至RAM空间;或者,将所述代码文件的.data段和.bss段装载至RAM空间,将所述代码文件的其余各段装载至ROM空间。
作为本发明的进一步改进,所述链接索引表包括索引表基本信息和重定位条目信息,所述索引表基本信息包括:代码文件唯一标识、.text段地址索引、.rodata段地址索引、.data段地址索引、.bss段地址索引;所述重定位条目信息包括:重定位条目的地址偏移量索引、重定位条目类型索引、重定位条目的实际地址索引;
所述.text段地址索引、.rodata段地址索引、.data段地址索引、.bss段地址索引分别为生成所述链接索引表时.text段、.rodata段、.data段、.bss段装载至运行空间中的首地址;所述重定位条目的地址偏移量索引为重定位条目在.text段中的地址偏移量,所述重定位条目类型索引为重定位条目类型,所述重定位条目的实际地址索引为生成所述链接索引表时重定位条目在运行空间中的实际地址。
作为本发明的进一步改进,所述重定位条目信息还包括所述.text段地址索引。
作为本发明的进一步改进,所述步骤S3的具体步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学;湖南提奥信息技术有限公司,未经中南大学;湖南提奥信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611167417.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用程序升级方法及系统
- 下一篇:一种卸载的方法及装置