一种基于重定位的多制式应用程序的动态加载方法和装置制造方法及图纸

技术编号:8078766 阅读:140 留言:0更新日期:2012-12-13 21:28
本发明专利技术公开了一种基于重定位的多制式应用程序的动态加载方法和装置,该方法包括:把RTOS加载至操作系统专区,把各制式应用程序的动态库DLL加载至存储器的副本区,把用于配置各制式单独或组合运行的脚本文件加载至链接脚本区,并填写当前运行的单独或组合制式应用程序的配置;根据配置字解析脚本文件,从副本区中加载对应的DLL至运行区;根据重定位表对DLL中的符号在运行区进行重定位;启动运行区的应用程序。本发明专利技术采用在代码加载阶段完成各制式的任意组合,编译时仅需要建立单个制式的工程项目,用较少的代码量实现了一个基站对多制式的支持。

【技术实现步骤摘要】
一种基于重定位的多制式应用程序的动态加载方法和装置
本专利技术涉及嵌入式软件系统的动态加载技术,特别涉及一种基于重定位的多制式应用程序的动态加载方法和装置。
技术介绍
在成本战略的今日,人们总希望以最少的硬件实现最多的应用,这种场景的需求越来越多。比如,随着移动通信技术的飞速发展,呈现出了越来越多的协议标准,包括UMTS,CDMA2000,TD-SCDMA,WiMAX,LTE等等,对基站的设计也提出了更高的要求。在2G时代一个基站只需要满足一种制式,因为用户的移动通讯终端只支持GSM、CDMA其中一种制式,但随着3G时代的到来,带来了更多的制式,可供用户选择的移动通讯终端随着制式的不同呈现差异化,一个小区内会出现多种制式的终端,在同一个小区内建立多个不同制式的基站的形式成本太高,为了满足不同用户的差异化需求,就要求每一个基站同时可以支持多种制式。采用传统方式,各制式的应用软件与嵌入式RTOS(Real-timeoperatingsystem,实时操作系统)是一起编译的。基站要支持多制式,就意味着每种制式可以单独运行,其任意组合也可以同时运行,这就需要为每一种场景建立其相应的工程项目,进行独立编译。多制式运行时,后台主机根据不同的制式设置,加载相应工程项目的可执行文件到存储器,然后启动运行。当制式需要切换时,就必须断电,后台主机重新加载相应工程项目的代码,因为我们不可能把所有可能运行的制式及其组合的工程代码全部放在DDR中,这样代码量太大。这种方式虽然也能实现一个基站对多制式的支持,但是,这样势必导致工程项目繁多,各个工程项目之间存在大量的重复代码,使得耦合性紧密,为操作维护带来了不便。
技术实现思路
本专利技术的目的在于提供一种基于重定位的多制式应用程序的动态加载方法和装置,用于解决用较少的代码量实现一个基站对多制式的支持的问题。根据本专利技术的一个方面,提供了一种基于重定位的多制式应用程序的动态加载方法,包括以下步骤:A、把RTOS加载至操作系统专区,把各制式应用程序的动态库DLL(DynamicLinkLibrary,动态链接库)加载至存储器的副本区,把用于配置各制式单独或组合运行的脚本文件加载至链接脚本区,并填写当前运行的单独或组合各制式应用程序的配置字;B、根据配置字解析脚本文件,从副本区中加载对应的DLL至运行区;C、根据重定位表对DLL中的符号在运行区进行重定位;D、启动运行区的应用程序。优选的,在步骤A之前,包括:把存储器分成副本区、链接脚本区和运行区。优选的,脚本文件是各制式单独或组合运行的DLL在存储器中的分布信息,分布信息包括各制式的字段名、占用的空间,及其在副本区中的首地址和运行区的加载地址。优选的,重定位表存储了DLL需要重定位的符号、引用所述符号的地址信息及重定位类型。优选的,重定位是根据重定位表中的符号,遍历全局符号表找出符号的存储地址,并根据重定位类型对引用符号的存储地址进行修改。优选的,全局符号表是模块加载时收集的所有符号的信息。根据本专利技术的另一方面,提供了一种基于重定位的多制式应用程序的动态加载装置,包括:初始化单元,用于把RTOS加载至操作系统专区,把各制式应用程序的DLL加载至存储器的副本区,把用于配置各制式单独或组合的脚本文件加载至链接脚本区,并填写当前运行的单独或组合各制式应用程序的配置字;加载单元,用于根据配置字解析脚本文件,从副本区中加载对应的DLL至运行区;重定位单元,用于根据重定位表对DLL中的符号在运行区进行重定位;程序运行单元,启动运行区的应用程序。优选的,重定位表存储了DDL需要重定位的符号、引用符号的存储地址及重定位类型。优选的,重定位单元还用于根据重定位表中的符号,遍历全局符号表找出符号的存储地址,并根据重定位类型对引用符号的存储地址进行修改,全局符号表是模块加载时收集的所有符号的信息。与现有技术相比较,本专利技术的有益效果在于:本专利技术采用在代码加载阶段完成各制式的任意组合,编译时仅需要建立单个制式的工程项目,用较少的代码量实现了一个基站对多制式的支持。附图说明图1是本专利技术实施例提供的基于重定位的多制式应用程序的动态加载方法的流程示意图;图2是本专利技术实施例提供的基于重定位的多制式应用程序的动态加载装置的示意图;图3是本专利技术实施例提供的实现多制式应用程序的动态加载的代码分布示意图;图4是本专利技术实施例提供的实现基于重定位的动态加载的流程图。具体实施方式以下结合附图对本专利技术的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。图1显示了本专利技术实施例提供的基于重定位的多制式应用程序的动态加载方法的流程示意,如图1所示:步骤S101,把存储器分成三个区,分别为副本区,链接脚本区和运行区,副本区用于存放所有制式的应用层应用程序,链接脚本区用于描述各个制式单独运行及其组合时相关应用程序在内存中的分布,运行区是应用程序执行的空间区域。并且,对RTOS进行编译,其中,传递给RTOS的存储地址是操作系统专区的存储地址。把RTOS加载至操作系统专区,把各制式应用程序加载至副本区,把用于进行各制式单独或组合的脚本文件加载至链接脚本区,并填写当前运行的单独或组合各制式应用程序的配置字,放在固定地址中。步骤S102,启动加载器,并根据配置字解析脚本文件,从副本区中加载对应的DLL至运行区。脚本文件描述了各制式单独或组合时应用程序在存储器中的分布信息,加载器根据脚本文件从副本区中加载相应的DLL到运行区。其中,分布信息包括各制式的字段名、占用的空间,及其在副本区中的首地址和运行区的加载地址。步骤S103,根据重定位表对DLL中的符号在运行区进行重定位。重定位表存储了DLL需要重定位的符号、引用符号的地址信息及重定位类型。重定位是根据重定位表中的符号,遍历全局符号表找出符号的存储地址,并根据重定位类型对引用符号的存储地址进行修改。全局符号表是模块加载时收集的所有符号的信息。步骤S104,在完成DLL的所有符号的重定位后,跳出加载器,启动运行区的应用程序。如果进行制式切换,后台主机重新填写配置字,以中断的方式通知RTOS,加载器提取配置字并重新运行脚本文件,加载相应的DLL到运行区,然后遍历DLL中的重定位表,对所有符号进行重定位。图2显示了本专利技术提供的基于重定位的多制式应用程序的动态加载装置的示意,如图2所示,初始化单元把存储器分成三个区,分别为副本区,链接脚本区和运行区,副本区用于存放所有制式的应用层应用程序,链接脚本区用于描述各个制式单独运行及其组合时相关应用程序在内存中的分布,运行区是应用程序执行的空间区域。并且,对RTOS进行编译,其中,传递给RTOS的存储地址是操作系统专区的存储地址。初始化单元把RTOS加载至操作系统专区,把各制式应用程序加载至副本区,把用于进行各制式单独或组合的脚本文件加载至链接脚本区,并填写当前运行的单独或组合各制式应用程序的配置字,放在固定地址中。其中,脚本文件是各制式单独或组合的应用程序在存储器中的分布信息,分布信息包括各制式的字段名、占用的空间,及其在副本区中的首地址和运行区的加载地址。加载单元根据配置字解析脚本文件,从副本区中加载对应的DLL至运行区。重定位单元根据重定位表对DLL中的符号在运本文档来自技高网
...
一种基于重定位的多制式应用程序的动态加载方法和装置

【技术保护点】
一种基于重定位的多制式应用程序的动态加载方法,其特征在于,包括以下步骤:A、把实时操作系统RTOS加载至操作系统专区,把各制式应用程序的动态库DLL加载至存储器的副本区,把用于配置各制式单独或组合运行的脚本文件加载至链接脚本区,并填写当前运行的单独或组合制式应用程序的配置字;B、根据所述配置字解析脚本文件,从副本区中加载对应的DLL至运行区;C、根据重定位表对所述DLL中的符号在运行区进行重定位;以及D、启动运行区的应用程序。

【技术特征摘要】
1.一种基于重定位的多制式应用程序的动态加载方法,其特征在于,包括以下步骤:把存储器分成副本区、链接脚本区和运行区;把实时操作系统RTOS加载至操作系统专区,把各制式应用程序的动态库DLL加载至所述存储器的副本区,把用于配置各制式单独或组合运行的脚本文件加载至所述存储器的链接脚本区,并填写当前运行的单独或组合制式应用程序的配置字;根据所述配置字解析脚本文件,从所述存储器的副本区中加载对应的DLL至所述存储器的运行区;根据重定位表对所述DLL中的符号在所述存储器的运行区进行重定位;以及启动所述存储器的运行区的应用程序。2.根据权利要求1所述的方法,其特征在于,所述脚本文件是各制式单独或组合运行的DLL在存储器中的分布信息,所述分布信息包括各制式的字段名、占用的空间,及其在副本区中的首地址和运行区的加载地址。3.根据权利要求1至2任意一项所述的方法,其特征在于,所述重定位表存储了所述DLL需要重定位的符号、引用所述符号的地址信息及重定位类型。4.根据权利要求3所述的方法,其特征在于,所述重定位是根据重定位表中的符号,遍历全局符号表找出所述符号的存储地址,并根据所述重定位类型对引用所...

【专利技术属性】
技术研发人员:张团余中云
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1