排行榜 创业指南

扫一扫关注有惊喜

TOP

浅析ARM9平台KVM移植微电子论文范文
内容摘要:浅析ARM9平台KVM移植微电子论文范文

  摘要:ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。文章发表在《网络新媒体技术》上,是微电子论文范文,供同行参考。

  关键词:移动应用开发,J2ME,CLDC,KVM移植

  ARM微处理器是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码相机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。

  0 引言

  目前移动手机上运行的操作系统种类繁多,包括Linux、Windows Mobile、Palm OS、Symbian OS、Google Android等。Java和J2ME技术克服了手机平台多样性造成的应用程序移植困难的问题,为移动应用程序的跨平台开发和运行提供了可能。

  J2ME是Sun公司面向具有有限硬件资源的设备的Java版本,这些资源受限的设备包括PDA、手机、机顶盒和其它消费电子设备与嵌入式设备[1]。CLDC[2]和MIDP[3]已经成为用于移动手机应用开发的J2ME标准。

  J2ME/CLDC技术的核心是Sun公司的KVM(Kilobyte Virtual Machine)[4]。KVM最初设计是用于资源受限的低端移动设备的JVM(Java virtual machine)。正是JVM的存在才使得Java具有“一次编译,处处运行”的特征[5,6],因此,KVM的移植便成为J2ME应用于移动开发的首要前提。

  1 KVM的代码执行机制

  为了更好地理解KVM的移植过程,我们需要对KVM的代码执行机制作一些研究。

  在图1中,文本格式的Java源程序(文件后缀名为.java)由Java编译器编译为Java字节码文件(文件后缀名为.class),且每一个Java类对应一个.class文件。

  在运行阶段,Java虚拟机先装入或加载指定的“.class”文件,进行必要的校验,然后找到指定的入口方法(例如main),由interpreter翻译运行“.class”文件中的字节码[7]。虚拟机在执行过程中根据需要(如创建新对象等)动态加载用户程序的其他“.class”文件或者系统类库的“.class”文件并校验和运行[8]。Java API类库(一个大型的现成软件组件(类)集合)是一些为用户程序运行提供支持或起辅助作用的“.class”格式的标准的Java类,它是Java语言的一个标准组成部分。加载过程通常都是被推迟到必要的时候才进行。   JVM中的interpreter一般采用解释的方式执行字节码。它按照程序执行的顺序逐条取出指令字节码,翻译成一段等效的本地代码序列来执行,这个解释执行过程一直重复到程序的最后一条指令执行完为止[7]。

  下面我们再来看一下KVM的代码执行机制(如图2所示)。

  图2 KVM的代码执行机制

  我们知道,KVM需要运行在硬件资源受限的嵌入式设备上,因此有必要对虚拟机的功能进行简化,提高其运行效率,并减小其体积。为此,将虚拟机原本复杂而耗资源的大部分校验工作移出虚拟机,交由PC开发平台上一个工具软件preverify来进行预验证或预校验,从而减轻移动设备的负担,而在KVM中只留下一个简单的轻量级的校验器[6,9]。

  因此,我们在编译和预验证用于KVM的Java代码时,需要将-classpath选项指定为CLDC类库的路径,然后将预验证过的class文件下载到目标设备由KVM来执行。

  2 CLDC参考实现

  移植所用的KVM源码是来自SUN公司的CLDC 1.1参考实现。表1中描述了该CLDC 1.1参考实现源码包中的目录结构[4]。

  [[子目录\&说明\&api\&CLDC需要的核心Java类库源代码\&bin\&包含kvm等所有二进制执行文件和已编译好的核心Java类库的class文件\&build\&用于编译生成面向不同操作系统平台的KVM的makefile\&doc\&相关的说明文档\&jam\&KVM的可选组件JAM(Java Application Manager)的源码\&kvm\&面向不同平台的KVM的源码\&tools\&一些需要用到的工具软件的源码,如JavaCodeCompact,preverifier,KDWP Debug Proxy\&]]

  3 CLDC参考实现的build过程

  KVM移植主要是采用合适的编译工具对CLDC 1.1参考实现中的源码进行编译,以生成运行在目标平台上的kvm可执行文件。

  用于源码build的Makefile文件根据源码目录的层次结构相应地被组织成一个层次结构。主Makefile文件放在build目录中,由这里跳转去执行其它Makefile文件。在build目录中,根据目标平台上操作系统的不同类型分别对应有不同的主Makefile文件。

  在主Makefile文件中可以确定要参与build的代码段,api部分是必选的,kdp和jcc都是可选的。因为要应用于嵌入式系统,故未选择kdp。对于JAM(Java Application Management),为简化起见没有选择该部分。所有的选择可以通过修改Makefile文件中的相关开关选择项值进行,也可在命令行中用参数覆盖。

  以ARM+Linux为目标平台对CLDC参考实现进行build的操作很简单,只需进入build/linux目录,通过make命令执行那个主Makefile文件,就开始build过程了。下面的图3描述了其build过程。

  4 CLDC参考实现的源码编译

  KVM移植所采用的编译环境为:Java编译器Javac 1.6.0_22,(Fedora9自带)X86平台Gcc 4.3.0编译器和交叉编译器Arm-Linux-Gcc 4.3.2。

  首先,KVM的运行平台是ARM+Linux平台,所以需要在KVM\VmUnix\build目录中将用于编译KVM的Makefile文件中的编译器设置为交叉编译器Arm-Linux-Gcc[10],即:

  象所采用的编译器。

  其次,在最终对KVM源码进行编译之前,需要先对所需工具软件和API类库进行编译。因此,CLDC源码编译过程包括以下四个阶段:编译生成preverify工具,编译和预验证API类库,编译生成JCC工具,编译和连接生成KVM。

  电子期刊论文投稿:《网络新媒体技术》原刊名为《微计算机应用》,是由中国科学院声学研究所主办的公开发行的科技刊物,创刊于1980年,系月刊。主要刊登有关计算机科学研究与应用方面的研究论文和研究报告, 在科学试验和现代化管理中计算机应用方面所取得的新进展、新成果、新技术、新方法。邮发代号:2-304。

责任编辑:中宾科技

标签云: 名人百科网,品牌百科网 辅导班开课通知家长群 美术培训班搬迁通知 少儿美术开课通知 艺术培训班开课通知范文 美术班复课通知 培训班开课通知话术 画室开课通知 美术培训班开课通知模板 培训机构上课温馨提示 奶茶店成功营销方案 美容院顾客裂变方法 老客户转介绍激励方案 转介绍的方案和思路 美容院如何快速裂变 美容院如何玩裂变 裂变客户的十种方法 小型餐饮业营销计划方案 餐饮全年营销方案计划表 餐饮行业营销策划的特点 我开早餐店的真实经历做早餐生意的窍门开早餐店的惨痛经历未来早 线下宣传推广策划方案 产品线下推广活动方案 完整的婚礼策划方案 地推的60种方法 电商平台促销活动方案 线上推广的渠道有哪些 推广品牌的策划方案 地推活动策划方案创意 旅游景区营销推广方案
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇探究计算机病毒与防治电子工程师.. 下一篇如何改革电工电子实训教学体系电..

相关阅读:

相关栏目

安全提示

最新文章

热门信息

siteMap.txt