基于arm的二进制执行环境平台及利用它的加载方法

文档序号:6563079阅读:108来源:国知局
专利名称:基于arm的二进制执行环境平台及利用它的加载方法
技术领域
本发明涉及加载应用程序的平台及加载方法,尤其涉及用于移动通信终端的加载应用程序的平台及加载方法。
背景技术
关于移动终端的数据可下载是指,当移动终端如手机在卖给用户之后,允许终端用户自行通过数据线或某种无线网络协议途径,将图片、铃声、电话簿等信息载入手机。
关于移动通信的应用程序可下载是指,手机能支持将某些独立的可选择可替换的软件模块并且将其下载到手机中以实现不同的扩展功能。相比之下,应用程序可下载的下载对象已经从某种固定格式的纯数据扩展成由指令集构成的运算代码,因而,它具更灵活的可扩展性。目前,这种功能可扩展性已被看作是“智能手机”的重要功能之一。
由于硬件条件的限制,移动终端对应用程序的下载还有很大的局限性,但它作为移动终端增值服务的一个重要组成部分一直存在于高端产品中。当前,较多采用J2ME来下载应用程序。虽然,J2ME有丰富的应用程序的支持,但它也存在以下的不足之处(1)空间上JAVA虚拟机本身的体积还是过大,尽管其声称可裁减,但动辄几百k字节的消耗仍然让低端手机望而却步。(2)时间上JAVA虚拟机解释执行的时间消耗是巨大的,运行速度非常受限。(3)开发和费用上J2ME解决方案由国际知名的大公司提出,起步早,功能稳定强大,有丰富的第三方扩展库和应用程序的支持,目前是业界的主流解决方案之一。但采用这种解决方案的代价也是非常昂贵的,从硬件到操作系统,开发商无一不要为此承担高额成本,且技术门槛高,开发和维护成本大,因此不易进入低端手机市场。

发明内容
本发明鉴于上述问题,旨在提供一种不依赖于操作系统和软件构架的基于ARM(Adanced RISC Machines,是处理器内核设计公司的名称,也是其所设计的处理器的通称)的二进制执行环境平台(BinaryExecution Environment,简称BEE)以及利用该二进制执行平台加载应用程序的加载方法。
本发明的二进制执行环境平台是基于ARM将应用程序加载到系统端的二进制执行环境平台,其特征在于,包括由系统端为应用程序提供的系统端接口层;由应用程序为系统端提供的应用程序端接口层;用于开发应用程序的应用程序开发包;以及用于将应用程序加载到系统端的应用程序加载单元,其中,所述应用程序加载单元将应用程序的运行域定位到系统端的预留内存以将应用程序加载到系统端的上述预留内存中。
最好,所述二进制执行环境平台在生成应用程序映象时指定一个分散加载文件,所述分散加载文件用于在系统端的上述预留内存中指定系统端接口层和应用程序端接口层的地址。
最好,所述应用程序端接口层的地址在所述系统端接口层之后。
最好,所述二进制执行环境平台的处理CPU为ARM核32位处理器。
最好,所述系统端是移动终端。
最好,所述移动终端可以是PHS、GSM、CDMA2000、WCDMA、TD-SCDMA、WiFi,但不局限于这些移动终端。
最好,所述应用程序可以存储在任何存储介质上。
最好,所述应用程序采用用于防止伪造或窜改的签名技术。
最好,所述应用程序采用用于防止复制传播的DRM技术。
本发明的利用二进制执行环境平台加载应用程序的方法是基于ARM将应用程序加载到系统端的方法,所述应用程序包含接口层、应用程序代码以及数据,其特征在于,在该方法中,在加载应用程序之前,所述接口层包括应用程序为系统端提供一个虚拟的系统端接口层和一个真实的应用程序端接口层、以及系统端为应用程序提供一个虚拟的应用程序端接口层和一个真实的系统端接口层,在加载应用程序之时,上述虚拟的系统端接口层和上述虚拟的应用程序端接口层分别被上述真实的系统端接口层和上述真实的应用程序端接口层替代而组成两个真实的系统端接口层和的应用程序端接口层,同时,将所述应用程序代码和数据复制到系统端。
本发明的上述技术方案是依赖于在嵌入式领域应用最广、性价比最高的ARM核芯片,解决的技术问题在于在嵌入式系统上实现应用程序下载、加载执行、安全和存储等问题。
本发明的二进制执行环境平台(即BEE)是基于ARM下加载域与运行域分离的思想,利用了分散加载(Scatter loading)技术。
在ARM平台下,应用程序的代码或数据的加载域和运行域可以是分开的,因此可以在移动终端(BEE的系统端)预留一块内存,对应用程序通过ARM核的编译器ADS(ARM Developer Suite)来进行独立的编译链接,把应用程序的运行域定位到BEE系统端预留指定的内存上,然后把应用程序加载到这块内存空间中,内存开始部分放BEE系统端和BEE应用之间的接口函数地址向量表(在文中也称作为接口层),通过函数地址向量表可以完成两部分的相互调用,由于编译已经保证了映像内部符号地址的映射关系,所以BEE应用本身的内部调用可以不用考虑而自动完成。


图1是用于说明本发明的二进制执行环境平台的构架图。
图2是用于说明利用本发明的二进制执行环境平台加载应用程序的过程示意图。
具体实施例方式
通过结合附图对较佳实施例所作的详细描述,本发明的上述和其它特征和优点将变得显而易见。详细描述和附图对本发明仅是示意性质的,并非用来限制其范围的,本发明的范围由所附权利要求及其等同含义限定。
以下,参照图1以及图2对于本发明的具体实施方式
进行说明。
图1是用于说明本发明的二进制执行环境平台的构架图。
首先,参照图1,说明本发明的二进制执行环境平台的基本构架。
如图1所示,本发明的二进制执行环境平台100是用于将应用程序200加载到系统端300的平台。该二进制执行环境平台100主要包括由系统端为应用程序提供的系统端接口层101;由应用程序为系统端提供的应用程序端接口层102;用于开发应用程序的应用程序开发包103以及用于将应用程序加载到系统端的应用程序加载单元104。
本发明的二进制执行环境平台是将应用程序的运行域定位到系统端的预留内存以将应用程序加载到系统端的上述预留内存中。这是通过下述来实现的在生成应用程序映象时指定一个分散加载文件,,该分散加载文件用于在系统端的上述预留内存中指定系统端接口层101和应用程序端接口层102的地址,然后,应用程序加载单元104将应用程序加载到系统端,即复制代码、数据等到指定位置。其中,所述应用程序端接口层102的地址在系统端接口层101之后这里,二进制执行环境平台的处理CPU是采用ARM核32位处理器。
这里的系统端可以是移动终端,而这里所提到的移动终端包括但不限于PHS、GSM、CDMA2000、WCDMA、TD-SCDMA、WiFi。
另外,上述所述应用程序可以存储在任何存储介质上。并且,应用程序可以采用用于防止伪造或窜改的签名技术,以及用于防止复制传播的DRM技术。
这里,如上所述,上述二进制执行环境(BEE)平台是利用了ARM平台下加载域与运行域分离的思想,并且利用了分散加载(Scatterloading)技术。在ARM平台下,应用程序的代码或数据的加载域和运行域可以是分开的,因此可以在移动终端(BEE系统端)预留一块内存,对应用程序通过ARM核的编译器ADS(ARM Developer Suite)来进行独立的编译链接,把应用程序的运行域定位到BEE系统端预留指定的内存上,然后把应用程序加载这块内存空间。
简单来讲,BEE在系统端提供一个软件接口层,位于终端系统软件和应用程序之间的设备上。BEE在应用程序端也提供一个软件接口层,和应用程序在一起,应用程序的开发必须遵守接口规范,开发好的应用程序可以放到终端的存储设备上,然后加载应用程序时把二进制的应用程序从存储设备拷贝到终端的内存中运行。
下面,将从下述几个方面来具体描写本发明的二进制执行环境以及利用它加载应用程序的方法。
(1)关于应用程序和系统端接口定义如果实现应用程序和系统端相互完成调用,则需要接口层,也就是在两端分别存在一些接口给对方调用。为简便起见,本发明中把应用程序和系统端之间的接口定义统一为两个接口,即应用程序为系统端提供一个接口(即上述的应用程序端接口层102),系统端也为应用程序提供一个接口(即上述的系统端接口层101)。而不同的应用程序通过一个接口实现调用,靠传递不同的命令来区分,而其他的参数附加其后传递。
需要注意的是,在本发明中这两个接口层在系统端和终端都存在,只是在系统端来看,在加载应用程序前系统所调用应用程序端接口层是虚拟的,加载后被实际的应用程序端接口层替代才真正能完成调用,从应用程序端来看,加载前系统端的接口层是虚拟的,加载过后应用程序才能真正调用到实际的系统端接口层函数。
(2)应用程序开发和生成应用程序通过利用BEE提供的应用程序开发包开发,开发包里面模拟了系统端的的接口层,应用程序遵守接口规范利用这些接口来开发具体应用。
开发好的应用程序包含系统端接口层101和应用程序端接口层102,需要通过ARM核的编译器ADS(ARM Developer Suite)来编译。在链接的时候需要指定一个分散加载文件(Scatter File),这个文件用于指定系统端和应用程序端接口层地址在系统端指定的地址(即运行域),应用程序端接口层在系统端接口层之后。编译连接后生成的二进制实体就是生成的应用程序,应用程序映象里面的系统端接口层是虚拟的。
(3)系统端(终端系统软件)生成系统端也需要集成系统端接口层101和应用程序端接口层102,集成好的系统软件编译也是用ADS(ARM Developer Suite)来完成。同样道理,系统端在链接的时候需要指定一个分散加载文件,这个文件用于指定系统端接口层101和应用程序端接口层102的运行域,同应用程序编译类似,系统端接口层在应用程序端接口层之前,同时文件也会指定预留一部分内存空间作为后面加载的应用程序的运行空间。运行空间一般设计定位到静态内存中,运行空间要大于所运行的应用程序大小,用于存放运行的应用程序代码和数据。系统端生成的映象里面应用程序端接口层是虚拟的。
(4)应用程序加载应用程序加载过程就是加载存储设备上的应用程序到内存,加载过程由应用程序加载单元104来完成,本质是复制应用程序代码、数据等到内存,类似PC上的操作。
在图2中表示了利用本发明的二进制执行环境平台加载应用程序的方法的过程示意图。
在图2中,从左至右依次表示,应用程序端映象K、系统端映象L以及经过加载应用程序后的系统端映象M。
其中,在图2中,应用程序映象K包含接口层(K1+K2)、应用程序代码和数据。系统端映象L的整个大小就是运行空间的大小,这个空间包含接口层,并且该空间大小应该大于应用程序映象的大小。
如图2可知,应用程序端存在两个接口层,一个是虚拟的系统端接口层K1,一个是被系统调用的应用程序端接口层(即真实的应用程序端接口层)K2,并且系统端接口层K1在上。
同样,在系统端也存在这样的两个接口层,一个真实的系统端接口层L1、以及一个虚拟的应用程序端接口层L2加载应用程序的过程本质就是拷贝的过程,在加载之后,上述四个接口层中的两个真实的接口层被保留下来,即虚拟的接口层被真实的接口层替代而组成经过加载应用程序后的系统端映象M的上方两个真实的接口层,记作为系统端接口层M1、以及应用程序端接口层M2。
并且,其中,应用程序的其他部分(即,代码和数据)被原封不动的搬移到系统端接口层M1以及应用程序端接口层M2的下方。
(5)应用程序运行加载之后,应用程序映像和系统映像有机的结合在一起,相互之间可以完成所有的调用。由于编译器已经保证了映像内部符号地址的映射关系,所以应用程序本身的内部调用可以自动完成。这样,一个二进制的应用程序就可以运行在一个存在BEE平台的终端上,只要加载不同的二进制应用程序就可以实现运行不同的应用。
如上所述,利用本发明,可以提供一种低成本的并且能够在嵌入式系统上实现应用程序下载、加载执行等的二进制执行平台。
以上,参照附图对本发明的具体实施方式
作了具体描述,然而,本领域中的普通技术人员应当理解,在不偏离本发明的精神和由权利要求书所限定的保护范围的情况下,本领域中的普通技术人员还可以对具体实施方式
中所给出的情况作各种修改。因此,参照上述附图对本发明所作的具体实施方式
描述不应当被看作是对本发明的限定。
权利要求
1.一种二进制执行环境平台,基于ARM将应用程序加载到系统端的二进制执行环境平台,其特征在于,包括由系统端为应用程序提供的系统端接口层(101);由应用程序为系统端提供的应用程序端接口层(102);用于开发应用程序的应用程序开发包(103)以及用于将应用程序加载到系统端的应用程序加载单元(104),其中,所述应用程序加载单元(104)将应用程序的运行域定位到系统端的预留内存,以将应用程序加载到上述预留内存中。
2.如权利要求1所述的二进制执行环境平台,其特征在于,在生成应用程序映象时指定一个分散加载文件,所述分散加载文件用于在系统端的上述预留内存中指定系统端接口层(101)和应用程序端接口层(102)的地址。
3.如权利要求2所述的二进制执行环境平台,其特征在于,所述应用程序端接口层(102)的地址在所述系统端接口层(101)之后。
4.如权利要求1所述的二进制执行环境平台,其特征在于,所述二进制执行环境平台的处理CPU为ARM核32位处理器。
5.如权利要求1所述的二进制执行环境平台,其特征在于,所述系统端是移动终端。
6.如权利要求5所述的二进制执行环境平台,其特征在于,所述移动终端可以是PHS、GSM、CDMA2000、WCDMA、TD-SCDMA、WiFi。
7.如权利要求1所述的二进制执行环境平台,其特征在于,所述应用程序可以存储在任何存储介质上。
8.如权利压要求1所述的二进制执行环境平台,其特征在于,所述应用程序采用用于防止伪造或窜改的签名技术。
9.如权利压要求1所述的二进制执行环境平台,其特征在于,所述应用程序采用用于防止复制传播的DRM技术。
10.一种利用二进制执行环境平台加载应用程序的方法,它是基于ARM将应用程序加载到系统端的方法,所述应用程序包含接口层、应用程序代码以及数据,其特征在于,在该方法中,在加载应用程序之前,所述接口层包括应用程序为系统端提供的一个虚拟的系统端接口层和一个真实的应用程序端接口层;以及系统端为应用程序提供的一个虚拟的应用程序端接口层和一个真实的系统端接口层。在加载应用程序之时,上述虚拟的系统端接口层和上述虚拟的应用程序端接口层分别被上述真实的系统端接口层和上述真实的应用程序端接口层替代而组成两个真实的系统端接口层和的应用程序端接口层,同时,将所述应用程序代码和数据复制到系统端。
全文摘要
本发明提供了基于ARM将应用程序加载到系统端的二进制执行环境平台,它包括系统端为应用程序提供的系统端接口层(101);应用程序为系统端提供的应用程序端接口层(102);用于开发应用程序的应用程序开发包(103)以及用于将应用程序加载到系统端的应用程序加载单元(104),其中,所应用程序加载单元(104)将应用程序的运行域定位到系统端的预留内存以将应用程序加载到系统端的上述预留内存中。由此,能够以低成本在嵌入式系统上实现应用程序的下载、加载执行。
文档编号G06F21/00GK1971515SQ20061014913
公开日2007年5月30日 申请日期2006年11月15日 优先权日2006年11月15日
发明者李玉忠, 殷鹏, 杨晓亮 申请人:Ut斯达康通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1