CN1971515A - 基于arm的二进制执行环境平台及利用它的加载方法 - Google Patents
基于arm的二进制执行环境平台及利用它的加载方法 Download PDFInfo
- Publication number
- CN1971515A CN1971515A CNA2006101491330A CN200610149133A CN1971515A CN 1971515 A CN1971515 A CN 1971515A CN A2006101491330 A CNA2006101491330 A CN A2006101491330A CN 200610149133 A CN200610149133 A CN 200610149133A CN 1971515 A CN1971515 A CN 1971515A
- Authority
- CN
- China
- Prior art keywords
- application program
- interface layer
- system end
- platform
- end interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了基于ARM将应用程序加载到系统端的二进制执行环境平台,它包括:系统端为应用程序提供的系统端接口层(101);应用程序为系统端提供的应用程序端接口层(102);用于开发应用程序的应用程序开发包(103)以及用于将应用程序加载到系统端的应用程序加载单元(104),其中,所应用程序加载单元(104)将应用程序的运行域定位到系统端的预留内存以将应用程序加载到系统端的上述预留内存中。由此,能够以低成本在嵌入式系统上实现应用程序的下载、加载执行。
Description
技术领域
本发明涉及加载应用程序的平台及加载方法,尤其涉及用于移动通信终端的加载应用程序的平台及加载方法。
背景技术
关于移动终端的数据可下载是指,当移动终端如手机在卖给用户之后,允许终端用户自行通过数据线或某种无线网络协议途径,将图片、铃声、电话簿等信息载入手机。
关于移动通信的应用程序可下载是指,手机能支持将某些独立的可选择可替换的软件模块并且将其下载到手机中以实现不同的扩展功能。相比之下,应用程序可下载的下载对象已经从某种固定格式的纯数据扩展成由指令集构成的运算代码,因而,它具更灵活的可扩展性。目前,这种功能可扩展性已被看作是“智能手机”的重要功能之一。
由于硬件条件的限制,移动终端对应用程序的下载还有很大的局限性,但它作为移动终端增值服务的一个重要组成部分一直存在于高端产品中。当前,较多采用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平台的终端上,只要加载不同的二进制应用程序就可以实现运行不同的应用。
如上所述,利用本发明,可以提供一种低成本的并且能够在嵌入式系统上实现应用程序下载、加载执行等的二进制执行平台。
以上,参照附图对本发明的具体实施方式作了具体描述,然而,本领域中的普通技术人员应当理解,在不偏离本发明的精神和由权利要求书所限定的保护范围的情况下,本领域中的普通技术人员还可以对具体实施方式中所给出的情况作各种修改。因此,参照上述附图对本发明所作的具体实施方式描述不应当被看作是对本发明的限定。
Claims (10)
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将应用程序加载到系统端的方法,所述应用程序包含接口层、应用程序代码以及数据,其特征在于,在该方法中,
在加载应用程序之前,所述接口层包括:应用程序为系统端提供的一个虚拟的系统端接口层和一个真实的应用程序端接口层;以及系统端为应用程序提供的一个虚拟的应用程序端接口层和一个真实的系统端接口层。
在加载应用程序之时,上述虚拟的系统端接口层和上述虚拟的应用程序端接口层分别被上述真实的系统端接口层和上述真实的应用程序端接口层替代而组成两个真实的系统端接口层和的应用程序端接口层,同时,将所述应用程序代码和数据复制到系统端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101491330A CN100464300C (zh) | 2006-11-15 | 2006-11-15 | 基于arm的二进制执行环境平台及利用它的加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101491330A CN100464300C (zh) | 2006-11-15 | 2006-11-15 | 基于arm的二进制执行环境平台及利用它的加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1971515A true CN1971515A (zh) | 2007-05-30 |
CN100464300C CN100464300C (zh) | 2009-02-25 |
Family
ID=38112355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101491330A Expired - Fee Related CN100464300C (zh) | 2006-11-15 | 2006-11-15 | 基于arm的二进制执行环境平台及利用它的加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100464300C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458629A (zh) * | 2008-12-31 | 2009-06-17 | 北京中星微电子有限公司 | 嵌入式实时操作系统中实现动态加载的方法和装置 |
CN101673204A (zh) * | 2009-08-13 | 2010-03-17 | 上海酷吧信息技术有限公司 | 一种基于arm的手机应用程序动态加载方法 |
CN101739530B (zh) * | 2009-12-28 | 2011-11-02 | 深圳奥士达电子有限公司 | Arm系统启动过程中的加密方法 |
CN101582040B (zh) * | 2009-06-08 | 2013-01-02 | 深圳市五巨科技有限公司 | 一种基于arm体系的应用程序加载系统及加载方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002182910A (ja) * | 2000-12-11 | 2002-06-28 | Sharp Corp | アプリケーション開発方法及びアプリケーション開発環境システム |
US20040015960A1 (en) * | 2001-03-16 | 2004-01-22 | Sanjay Wanchoo | Method for loading and executing an application in an embedded environment |
JP2006065857A (ja) * | 2004-08-24 | 2006-03-09 | Lg Electronics Inc | 移動通信端末機のプログラム強制ダウンロード方法及び装置 |
-
2006
- 2006-11-15 CN CNB2006101491330A patent/CN100464300C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458629A (zh) * | 2008-12-31 | 2009-06-17 | 北京中星微电子有限公司 | 嵌入式实时操作系统中实现动态加载的方法和装置 |
CN101458629B (zh) * | 2008-12-31 | 2014-05-07 | 无锡中星微电子有限公司 | 嵌入式实时操作系统中实现动态加载的方法和装置 |
CN101582040B (zh) * | 2009-06-08 | 2013-01-02 | 深圳市五巨科技有限公司 | 一种基于arm体系的应用程序加载系统及加载方法 |
CN101673204A (zh) * | 2009-08-13 | 2010-03-17 | 上海酷吧信息技术有限公司 | 一种基于arm的手机应用程序动态加载方法 |
CN101739530B (zh) * | 2009-12-28 | 2011-11-02 | 深圳奥士达电子有限公司 | Arm系统启动过程中的加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100464300C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105100191B (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
JP5295379B2 (ja) | 組み込みプラットフォームにおけるプログラムの動的リンキング方法および組み込みプラットフォーム | |
US6029000A (en) | Mobile communication system with cross compiler and cross linker | |
CA2768752C (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
US6219787B1 (en) | Method and apparatus for extending security model to native code | |
CN103262057B (zh) | 跨环境通信框架 | |
US9021427B2 (en) | Conversion methods of applications of mobile devices and mobile devices and systems using the same | |
EP0924611A2 (en) | Method and apparatus for a coprocessor | |
CN102760080B (zh) | 一种内存管理的方法和装置 | |
CN107045438B (zh) | 一种应用顶层视图处理方法、装置及组件 | |
CN102411506A (zh) | Java系统业务单元插件式管理系统及业务功能动态变更方法 | |
CN109062617A (zh) | 一种支持多类型设备的平台的应用方法、移动终端 | |
Wu et al. | Porting mobile web application engine to the android platform | |
CN101937356B (zh) | 一种编译WebKit浏览器的方法及装置 | |
CN100464300C (zh) | 基于arm的二进制执行环境平台及利用它的加载方法 | |
CN115629971A (zh) | 一种应用的开发系统和开发方法 | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
US8489860B1 (en) | Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device | |
CN102520957A (zh) | 一种嵌入式系统的软件分离设计的方法 | |
CN113360440A (zh) | 处理器通信控制方法及相关产品 | |
CN100470481C (zh) | 用于在虚拟机中进行延续传递的方法和设备 | |
CN106527979B (zh) | 数据迁移方法及装置 | |
JP5621191B2 (ja) | 情報通信処理装置、情報通信端末、情報通信システム、機能切替方法及び機能切替プログラム | |
KR20130020135A (ko) | 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법 | |
CN105893031A (zh) | 一种缓存操作实现方法、业务层方法的调用方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090225 Termination date: 20151115 |
|
EXPY | Termination of patent right or utility model |