




已阅读5页,还剩56页未读, 继续免费阅读
(计算机系统结构专业论文)嵌入式系统java平台的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
76 5 2 4 6 3 摘要 随着后p c 时代的到来,作为后p c 时代中主导产品的嵌入式系统设备,正越 来越受到人们的重视和关注,它的发展也正以前所未有的速度进行着。 人们对嵌入式系统的需求和要求与日 俱增。 就在前几年,能拥有一个仅能拨 打电话的手机就已 经是很好了。 但如今的移动电 话, 无论在功能和性能上都要比 以 前的手机强的多, 而且在发达城市几乎是人手一部。 随着宽带网的普及, 各种 基于嵌入式技术的信息家电也正逐步走进千家万户。 但是这种快速增涨的需求与嵌入式系统的软件开发形成了鲜明的反差。 嵌入 式系统由于硬件平台及其繁多,传统的开发一般都是采用汇编、c或c + + 这些与 硬件平台关系密切的语言进行开发。 这就造成了同一功能的软件仅仅因为平台不 同,就要重新开发一次,这严重阻碍了嵌入式系统行业的发展。 为了 解决这一问题, s u n 公司 把j a v a 引入到嵌入式系统中来, 推出了j 2 m e 和j a v a c a r d 这两大嵌入式j a v a 平台。 j a v a 的平台无关性使得它非常适合于嵌入式软件开发。使用 j a v a 开发的嵌 入式软件,能在所有支持j a v a的嵌入式平台上运行,这极大地加快了嵌入式软 件的开发。 在本文中,我们研究了j 2 m e 和j a v a c a r d 技术, 就如何将s u n 公司参考实现 中的k v m 和m i d p 移植到特定的硬件平台提出了一些观点和建议。并且就如何实 现一个j a v a c a r d 平台提出了一个切实可行的方案。 关键字: 嵌入式系统,j a v a , j 2 m e , k v m , m i d p , j a v a c a r d , j c r e a b s t r a c t a l o n g w i t h t h e p o s t - p c t i m e a r r i v a l , t h e e m b e d d e d s y s t e m e q u i p m e n t , w h i c h i s l e a d i n g p r o d u c t i n t h e p o s t - p c t i m e , i s g e t t i n g p e o p l e s a t t e n t i o n m o r e a n d m o r e . i t s d e v e l o p m e n t a l s o i s c a r r y i n g o n b y t h e u n p r e c e d e n t e d s p e e d . d e m a n d a n d r e q u e s t t o e m b e d d e d s y s t e m i n c r e a s e m o r e a n d m o r e . i n m o s t r e c e n t s e v e r a l y e a r s , h a v i n g a m o b i l e p h o n e w h i c h i s o n l y u s e d t o d i a l t h e t e l e p h o n e i s v e r y g o o d . b u t p r e s e n t m o b i l e p h o n e s a r e m o r e a d v a n c e d i n f u n c t i o n a n d p e r f o r m a n c e c o m p a r e d w i t h o l d o n e s . a n d i n t h e d e v e l o p e d c i t y , a l m o s t e v e r y p e o p l e h a v e a m o b i l e p h o n e . a l o n g w i t h b r o a d w i d e b a n d n e t p o p u l a r i z a t i o n , m a n y k i n d s o f i n f o r m a t i o n e q u i p m e n t s b a s e d o n e m b e d d e d s y s t e m a r e c o m i n g i n t o m i l l i o n s o f h o m e - b u t t h e r e i s a b r i g h t c o n t r a s t b e t w e e n t h i s k i n d o f d e m a n d t o e m b e d d e d s y s t e m a n d t h e e m b e d d e d s o f t w a r e d e v e l o p m e n t . b e c a u s e t h e r e a r e s o m a n y e m b e d d e d s y s t e m h a r d w a r e p l a t f o r m s a n d a s s e m b l y l a n g u a g e . c / c + + a r e u s e d t o d e v e l o p e m b e d d e d s y s t e m s o f t w a r e , t h e s o f t w a r e b a s e d o n o n e e m b e d d e d s y s t e m p l a t f o r m s h o u l d b e d e v e l o p e d a g a i n w h e n w e w a n t i t t o b e r u n a t a n o t h e r e m b e d d e d s y s t e m p l a t f o r m . t h i s s i t u a t i o n h i n d e r s t h e e m b e d d e d s y s t e m p r o d u c t d e v e l o p m e n t t o s o l v e t h i s p r o b l e m , s u n i m p o r t j a v a t e c h n o l o g y i n t o e m b e d d e d s y s t e m , a n d d e v e l o p j 2 m e a n d j a v a c a r d e m b e d d e d j a v a p l a t f o r m . j a v a s p l a t f o r m i n d e p e n d e n t c a u s e s i t e x t r e m e l y a p p r o p r i a t e t o u s e i t i n t h e e m b e d d e d s y s t e m s o f t w a r e d e v e l o p m e n t . t h e s o f t w a r e d e v e l o p e d b a s e d o n j a v a t e c h n o l o g y c a n r u n a t a n y e m b e d d e d p l a t f o r m w h i c h s u p p o r t s e m b e d d e d j a v a . t h i s e n o r m o u s l y s p e e d s u p t h e s o f t w a r e d e v e l o p m e n t . t h e a r t i c l e r e s e a r c h e s t h e j 2 m e a n d j a v a c a r d t e c h n o l o g y , a n d i n t r o d u c e s s o m e v i e w p o i n t s o n h o w t o p o r t t h e k v m a n d m i d p o f s u n s r e f e r e n c e i m p l e m e n t a t i o n t o s p e c i f i c a l l y h a r d w a r e p l a t f o r m . i n t h e a r t i c l e , i p u t f o r e w o r d a n i m p l e m e n t a t i o n a b o u t j a v a c a r d p l a t f o r m s p o r t i n g p r o j e c t . k e y w o r d s : e m b e d d e d s y s t e m , j a v a , j 2 m e , k v m , m i d p , j a v a c a r d , j c r e 前 1一 口 计算机应用的普及、 互联网技术的实用以及纳米微电子技术的突破, 正有力 推动着 2 1 世纪工业生产、商业活动、科学实验和家庭生活等领域自 动化和信息 化进程。 全过程自 动化产品制造、 大范围电 子商务活动、 高度协同科学实验以及 现代化家庭起居, 为嵌入式产品造就了崭新而巨大的商机。 除了沟通信息高速公 路的交换机、路由 器和m o d e m ,构建c 工 m s 所需的d c s 和机器人以及规模较大的 家用汽车电子系统之外,最有产量效益和时代特征的嵌入式产品应该就是 i n t e r n e t 上的信息家电( i n t e r n e t a p p l i a n c e s ) , 如w e b 可视电 话、 w e b 游戏机、 w e b p d a 、 手机,以及多媒体产品, 如s t b ( 电视机顶盒) 、d v d 播放机、电子阅读 机等。 在最近几年中, 可用于嵌入式系统的处理器的数目 增长很快。当今, 可以得 到8 位、1 6 位和3 2 位的微控制器、微处理器和数字信号处理器,每种都满足市 场的不同需求。 另外, 存储器成本持续下降, 为嵌入强大的操作系统铺平了道路。 现在, 很多可用的商用实时和嵌入式操作系统对存储器要求很低, 与以前开发人 员自己编写操作系统内核相比,使得软件开发更加容易。 直到不久以前, 嵌入式软件开发主要使用汇编语言来完成。 随着交叉编译器 的发展, c 成为主要的开发语言。尽管c 仍是嵌入式软件的重要编程语言,但现 在像c + + 这样的面向对象编程语言也用得很广泛。 面向对象编程语言的主要吸引 力是可重用性- - 一 被用来减少开发时间。 c + + 的面向对象特性虽然可以在一定程 度减少开发时间, 但是它是平台相关的语言, 面对众多的嵌入式硬件和嵌入式操 作系统环境, 开发人员必须做大量的移植工作。 在过去的几年中, 因为用于嵌入 式编程的嵌入式j a v a 的发展, j a v a已经成为嵌入式软件开发中不可缺少的一种 语言。因为在嵌入式系统中使用了各种各样的处理器和操作系统,所以j a v a 的 主要吸引力即平台无关性使得它最适合于嵌入式软件开发。 由于嵌入式j a v a 在嵌入式软件领域中的重要地位和作用,在嵌入式设备中 增加对j a v a 的支持己成为一种趋势, 所以我们对如何在嵌入式系统上建立j a v a 平台作了一定的研究。 第一章 嵌入式系统概述 1 . 1 什么是嵌入式系统? 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适 用于应用系统对功能、 可靠性、 成本、 体积、 功耗有严格要求的专用计算机系统。 它一般由嵌入式微处理器、 外围硬件设备、 嵌入式操作系统以及用户的应用程序 等四 个部分组成, 用于实现对其他设备的控制、监视或管理等功能。 嵌入式系统一般指非 p c系统,它包括硬件和软件两部分。硬件包括处理器 / 微处理器、存储器及外设器件和 工 / 0 端口、图形控制器等。软件部分包括操 作系统软件 ( o s )( 要求实时和多任务操作)和应用程序。有时设计人员把这两 种软件组合在一起。 应用程序控制着系统的运作和行为; 而操作系统控制着应用 程序编程与硬件的交互作用。 1 . 2 嵌入式系统的特点 1 .嵌入式系统通常是面向特定应用的。嵌入式c p u 与通用型c p u的最大不同就 是嵌入式c p u 大多工作在为特定用户群设计的系统中, 它通常都具有低功耗、 体积小、集成度高等特点,能够把通用c p u中许多由板卡完成的任务集成在 芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强, 跟 网络的祸合也越来越紧密。 2 .嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具 体应用相结合后的产物。 这一点就决定了它必然是一个技术密集、 资金密集、 高度分散、不断创新的知识集成系统。 3 .嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争 在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选 择更具有竞争力 4 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同 步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 5 .为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器 芯片或单片机本身中,而不是存贮于磁盘等硬件中。 6 .嵌入式系统本身不具备自 举开发能力,即使设计完成以 后用户通常也是不能 对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发 1 . 3 嵌入式软件技术的特点 以信息家电为代表的互联网时代嵌入式产品, 不仅为嵌入式市场展现了美好 前景, 注入了新的生命;同时也对嵌入式系统技术, 特别是软件技术提出新的挑 战。 这主要包括: 支持日 趋增长的功能需求、灵活的网络联接、 轻便的移动应用 和多媒体的信息处理,此外,当然还需对付更加激烈的市场竞争。 1 .嵌入式应用软件的开发需要强大的开发工具和操作系统的支持 随着因特网技术的成熟、带宽的提高,工 c p 和a s p 在网上提供的信息内容日 趋丰富、 应用项目 多种多样。 像电话手机、电话座机及电冰箱、 微波炉等嵌入式 电子设备的功能不再单一,电气结构也更为复杂。 为了满足应用功能的升级, 设 计师们一方面采用更强大的嵌入式处理器如 3 2 位、6 4位 r 工 s c芯片或信号处理 器d s p 增强处理能力; 同时还采用实时多任务编程技术和交叉开发工具技术来控 制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。 目 前, 国外商品化的嵌入式实时操作系统, 己进入我国市场的, 如w i n d r i v e r , m i c r o s o f t w i n c e , q n x 和 n u c l e a r 等产品。我国自 主开发的嵌入式系统软件产 品如科银( c o r e t e k ) 公司的嵌入式软件开发平台 d e l t a s y s t e m ,它不仅包括 d e l t a c o r e嵌入式实时操作系统,而且还包括 l a m d a t o o l s交叉开发工具套件, 测试工具,应用组件等:此外,中科院也推出了h o p e n 嵌入式操作系统。 2 .网络成为必然趋势 为适应嵌入式分布处理结构和应用上网需求,面向2 1 世纪的嵌入式系统要 求配备标准的一种或多种网络通信接口。 针对外部联网要求, 嵌入设备必需配有 通信接口,相应需要t c p / i p 协议簇软件支持;由于家用电器相互关联( 如防盗 报警,灯光能源控制,影视设备和信息终端交换信息) 及实验现场仪器的协调工 作 等 要 求, 新一 代嵌 入 式设 备 还需 具 备i e e e 1 3 9 4 , u s b , c a n , b l u e t o o t h 或i r d a 通信接口, 同时也需要提供相应的通信组网协议软件和物理层驱动软件。 为了支 持应用软件的特定编程模式, 如w e b 或无线w e b 编程模式, 还需要相应的浏览器, 如h t m l , w m l 等。 3 .支持小型电子设备实现小尺寸、微功耗和低成本 为满足这种特性, 要求嵌入式产品设计者相应降低处理器的性能, 限制内存 第二章 j a v a 平台概述 2 . 1 j a v a 平台的结构 1 9 9 2 年s u n m i c r o s y s t e m s i n 。 的绿色计划( g r e e n p r o j e c t ) 原本使用c / c + + 来开发消费性电子产品, 但后来发现这些语言的功能与效果, 无法达到程序设计 师们的理想目 标, 加上那个时候互联网开始蓬勃发展, 于是乎s u n 就与一群有志 之士开始着手设计一套完全面向对象, 而且不受平台限制的语言。 设计小组原本 以公司外面的一棵橡树为名, 把这一套全新发展的计算机语言称为o a k ,但是后 来发现这个名字已经为他人所使用, 最后设计小组突发奇想, 以开会时的咖啡厅 来为这一套新开发的计算机语言 来命名,这就是j a v a 的由 来,所以我们时常看 到其图标是一杯热滚滚的咖啡。 本质上, j a v a 其实是一种由美国s u n 计算机公司所研发的软拌技术, 整体平 台结构如图 2 - 1 所示: a p p l e t s a n d a p p l i c a t i o n j a v a b a s e a p ij a v a s t a n d a r d e x t e n s i o n a p i j a v a b a s e c l a s s e sj a v a s t a n d a r d e x t e n s i o n c l a s s e s j a v a v i r t u a l m a c h i n e 移植接口层 a d a p t e ra d a p t e ra d a p t e r j a v a o s浏览器 操作系统小型操作系统 操作系统 硬件硬件硬件硬件 图 2 - 1 由上图中我们可以看出, j a v a 的整体架构主要有两个部分所构成, 即虚拟机 ( v i r t u a l m a c h i n e ) 和应用程序接口( a p i ) 。 读者可以 把虚拟机看成是一套虚 拟的计算机, 有一个标准的规格可以 用软件或硬件来实现, s u n 开放其虚拟机的 源代码,其他的如i b m 也有自己编写的虚拟机。 而位于j a v a 虚拟机下层的移植接口 层和a d a p t e r 则是为了使j a v a 虚拟机能 够方便的移植到不同的操作系统之上而开发出来的。另外,位于j a v a虚拟机之 上的j a v a a p i 部分则包含了基本a p i 类与扩展a p i 类。前者如标准 工 / 0 ,网络 功能,g u i 等,后者则是除了前者之外,另外再加上去的应用类。 .j a v a 的运行时流程如图2 - 2 所示: 图 2 - 2 由上图我们可以看出,首先应用程序的源代码通过 j a v a编译器转换为特殊 的b y t e c o d e , 而b y t e c o d e 可通过网 络传送到任何计算机的j a v a 虚拟机上运 行。程序加载器在加载b y t e c o d e 时会做验证的工作,并从类库动态加载所需使 用的j a v a 类, 而后交给j a v a 虚拟机内 部的i n t e r p r e t e r 解释, 最后则交给j a v a 的运行环境去运行。 2 . 2 j a v a 的平台无关性 j a v a技术在嵌入式环境下非常有用,其中一个非常重要的原因是,j a v a是 平台无关的语言,用 j a v a 创建的可执行二进制程序,能够不加修改地运行于不 同的软硬件平台。 平台无关有两种: 源代码级和目 标代码级。 c和c + + 具有一定 程度的源代码级平台无关, 表明用c或c + + 写的应用程序不用修改或稍许修改就 能通过重新编译而在不同平台上运行。 j a v a 主要靠j a v a虚拟机 ( j v m ) 在目 标代码级实现平台无关性。j v m 是一 种抽象机器, 它附着在具体操作系统之上, 本身具有一套虚机器指令, 并有自己 的 栈、寄存器组等。 但j v m 通常是在软件上而不是在硬件上实现。( 目 前,s u n 系统公司己经设计实现了j a v a 芯片, 主要使用在网络计算机上。 另外, j a v a芯 片的出现也会使j a v a 更容易嵌入到家用电器中。 ) j v m是j a v a 平台无关的基础, 在j v m上,有一个j a v a 解释器用来解释j a v a 编译器编译后的程序。j a v a 编程 人员在编写完软件后, 通过j a v a 编译器将j a v a 源程序编译为j v m 的字节代 码。 任何一台机器只要配备了j a v a 解释器,就可以运行这个程序,而不管这种字节 码是在何种平台上生成的。另外, j a v a 采用的是基于工 e e e 标准的数据类型。 通 过j v m 保证数据类型的一致性,也确保了j a v a 的平台无关性。 j a v a 的平台无关性具有深远意义。 首先, 它使得编程人员所梦寐以求的事情 ( 开发一次软件, 在任意平台上运行) 变成事实, 这将大大加快和促进软件产品 的开发。 其次j a v a 的平台无关性正好迎合了“ 网络计算机”思想。如果大量常 用的应用软件 ( 如字处理软件等) 都用j a v a 重新编写,并且放在某个工 n t e r n e t 服务器上,那么用户将不需要占 用大量空间安装软件, 他们只需要一个j a v a 解 释 器,每当需要使用某种应用软件时,下载这个软件的字节代码即可,运行结 果也可以发回服务器。目 前, 己有数家公司开始使用这种新型的计算模式构筑自 己的企业信息系统。 对平台无关性的支持,是由整个 j a v a体系结构中的各个组成部分共同完成 的。所有的组成部分一一j a v a 语言、c l a s s 文件、a p i 以及虚拟机,都在对平台 无关性的支持方面扮演着重要角色。 2 . 2 . 1 j a v a 虚拟机 什么是j a v a 虚拟机?先看一下j a v a 程序的执行过程。 j a v a 源程序( . j a v a ) 经过编译器编译后生成由字节码组成的类文件( . c l a s s ) 。 执行时首先由类装载器 装入来自 类文件的字节码, 经过检验器安全验证后,由j a v a 虚拟机读取字节码, 转换为特定的平台指令,并在相应的c p u 中运行。 可见, j a v a 虚拟机( j a v a v i r t u a l m a c h i n e , j v m ) 是j a v a 程序运行的心脏。 j a v a 的许多优异特性都来源于j a v a 虚拟机的概念和实现。 可以认为, j a v a 虚拟 机是一种建立在实际处理器基础上的抽象的计算机。j a v a 虚拟机通常是在某种 硬件平台和操作系统上用软件实现的, 当然也可以用硬件方式实现。 无论何种实 现方式,都必须严格遵守j a v a 虚拟机规范。 j a v a 虚拟机运行的是从. c l a s s 类文件中读入的字节码, 所以j a v a 虚拟机也 可以看成是以j a v a 字节码为指令集的软件c p u 。 如此, 类文件( . c l a s s ) 称为j a v a 跨平台的核心结构,同一个. c l a s s 类文件可以运行在实现了j a v a 虚拟机的不同 平台上。 实际上, 可以用任何语言编写源程序, 只要编译器能够生成符合虚拟机 规范的字节码,生成类文件( . c l a s s ) ,就可以在虚拟机上运行。 2 . 2 . 2类文件格式 j a v a c l a s s 文件主要在平台无关性和网络移动性方面使 j a v a 更适应于嵌入 式系统与网络。他在平台无关性方面的任务是:为j a v a 程序提供独立于底层主 机平台的二进制形式的服务,这正是 j a v a 虚拟机所期望实现的。这种途径打破 了c 或者c + + 等语言所遵循的传统, 使用这些传统语言 写的程序通常首先被编译, 然后被连接成为单独的、 专门支持特定硬件平台和操作系统的二进制文件。 通常 情况下, 一个平台上的二进制可执行文件不能在其他平台上工作. 而j a v a c l a s s 文件是可以运行在任何支持 j a v a虚拟机的硬件平台和操作系统上的二进制文 件。 当编译和连接一个 c + + 程序的时候,所获得的可执行二进制文件只能在指定 的硬件平台和操作系统上运行, 因为这个二进制文件包含了目 标处理器的机器语 b。 而j a v a 编译器把j a v a 源文件的指令翻译成字节码,这种字节码就是j a v a 虚拟机的 “ 机器语言” 除了特定处理器的机器语言之外, 传统二进制可执行文件的另一个依赖于具 体平台的属性是整数的字节顺序。 比方说, 在支持x 8 6 系列处理器的二进制可执 行文件中,字节顺序是低位在前,而对于 p o w e r p c处理器,则是高位在前。在 j a v a c l a s s文件中字节顺序是高 位在前,这与使用何种平台产生这个文件和在 何种平台上使用这个文件都没有关系。 除了对于平台无关性的支持,j a v a c l a s s文件还在支持网络移动性的 j a v a 体系结构中担当了至关重要的角色。 首先,c l a s s 文件设计得紧凑,因此他们可 第三章 j 2 m e 平台的建立 3 . 1 j z m e 简介 j 2 m e 在设计其规格的时候,遵循着( 对于各种不同的设备而造出一个单一的 开发系统是没有意义的事) 这个基本原则。 于是j 2 m e 先将所有的嵌入式设备大体 上区分为两种: 一种是运算功能有限、 电力供应也有限的嵌入式设备( 比方说p d a , 手机) ;另外一种是运算能力相对较佳、并在电力供应上相对比较充足的嵌入式 设备( 比方说冷气机、电冰箱、机顶盒( s e t - t o p b o x ) ) 。因为这两种区分,所以 j a v a引 入了 一个叫做c o n f i g u r a t i o n的概念,然后把上述运算功能有限、电力 有限的嵌入式设备定义在 c o n n e c t e d l i m i t e d d e v i c e c o n f i g u r a t i o n ( c l d c ) 规 格之中; 而另外一种设备则规范为c o n n e c t e d d e v i c e c o n f i g u r a t i o n ( c d c ) 规格。 也就是说,j 2 m e先把所有的嵌入式设备利用 c o n f i g u r a t i o n的概念区隔成两种 抽象的类型,如图3 - 1 所示。 l 类 q_ v- 1 5 c 4 卜 一 熟 娜 蟀 粼 l一 m o p 盯 c d c,i _1 -7 1盯下x j 刃清琴若 月 下率匀 理 一奥 鸳囊缴廷 一 、 奏 颧蜘彝蓦矛 图 3 - 1 其实在这里可以 把 c o n f i g u r a t i o n当作是j 2 m e 对于两种类型嵌入式设备的 规格, 而这些规格之中定义了这些设备至少要符合的运算能力、 供电能力、内存 大小等规范,同时也定了一组在这些设备上执行的j a v a 程序所能使用的类函数 库、 这些规范之中 所定义的类函数库为j a v a 核心类别的子集合以 及与该类型设 备特性相符的扩充类别。就 c l d c的规范来说,可以支持的核心类别为 布了m i d p 2 . 0 。它对设备的内存资源和处理能力的要求较 1 . 0 要高,但m 工 d p 2 . 0 也为应用开发者提供了更方便、 更丰富多彩的软件包, 主要增加了游戏接口的实 现、声音输出接口的实现安全网络机制的实现。 m 工 d p 2 . 0的这些特性将使基于移 动设备的j a v a 应用具有更加广阔的前景,也必将使新一代的移动设备发生革命 性的变化并领导时尚潮流。m 工 d p 2 . 0 接口包如表 3 - 3 所列。 包功能 j a v a x . m i c r o e d i t i o n . l c d u i提供一系列用户界面接口 j a v a x . m i c r o e d i t i o n . l c d u i . g a m e专门用于游戏设计的接口 j a v a x . m i c r o e d i t i o n . r m s数据管理,用于保存数据记录 j a v a x . m i c r o e d i t i o n . m i d l e tj a v a 应用管理接口 j a v a x . m i c r o e d i t i o n . i o基本网络连接接口 j a v a x . m i c r o e d i t i o n . m e d i a媒体接口 规范 ( j s r - 1 3 5 )的实现包 j a v a x . m i c r o e d i t i o n . m e d i a . c o n t r o l媒体播放器的控制类 j a v a x . m i c r o e d i t i o n . p k i 数字签名规范的实现接口 ( 用于安全网 络) j a v a . i o j a v a 基本输入输出接口 j a v a . l a n g j a v a 基本数据类型接口 j a v a . u t i 1j a v a 基本应用接口 表3 - 3 m i d p 2 . 0 接口包及其功能 3 . 2 k v m 移植技术 如果想要在一个操作系统上面建立一个k v m , 首先第一步就是要对j a v a 的操 作流程很清楚。 最原始的k v m 就是配合p a l m o s 所开发的一个j a v a 虚拟机, 就实 际的使用来说, 虽然速度还不是很快, 但是己经到了可以接受的地步, 也许不久 的将来,就会有令人满意的成果。 k v m 主要是s u n 所提出在不同能力平台下的一个j a v a 解决方案, 这种技术的 应用平台主要是在比较便宜的移动设备, 在没有很好的硬件设备中, 还是要能够 运行基本的j a v a 技术,由于k v m 最小只要1 6 o k b 的内 存就可以运行,因此称为 k v i r t u a l m a c h i n e ,其中k 是表示k i l o b y t e 的 意思,其中 包含t 1 2 8 k b 用来 运行k v m 本身及其所必须具备的基本l i b r a r i e s . k v m 的主要设计理念是: ( 1 )要能够在具有比 较少内 存的移动设备上运行,所以希望整个核心能够 在 4 0 k b 到8 0 k b 左右。 ( 2 )具有高可移植性。 ( 3 ) 模块化( m o d u l a r ) 及可定制化( c u s t o m i z a b l e ) 。 ( 4 )能够尽量完整而且快速的运行j a v a 应用程序。 k v m本身可以在 1 6 / 3 2 - b i t r i s c / c 工 s c的处理器上运行,典型的例子是 p d a 或手机。它希望通过下载的方式, 将应用程序放置到目 标平台端,并通过v m 本 身的解释器( i n t e r p r e t e r ) 来直接运行应用程序,所以当程序设计人员在开发 j a v a 应用程序的时候, 可以 在p c 端通过j a v a 的开发程序, 例如工 b m 的v i s u a l a g e f o r j a v a , b o r l a n d 的j b u i l d e r 来开发j a v a 应用程序, 如图3 - 4 所示的开发 流程: l a v a ; 味 瑞石知户户 怒 幸 m y a p p x 1 w s s 身 餐 攀 蟒戮 群黔 才 冬 、 拼奋井鳍艇 魏 井旅擎扮 教 节 mt 八 p p 兰 必一譬夏 d 二 、 篇 图 3 - 4 从上图我们可以看到k v m 加载程序的时候, 只做了简单的验证工作( v e r i f i e r ) 就开始运行了, 在传统的j a v a 程序中,为了 安全上的考虑,任何进入运行环境 的 类文件( 不管该类文 件是来自 本机还是 远程机器) , 都 必须先经过b y t e c o d e 的 验证,以防止程序在传送途中遭到恶意的修改,而使得j a v a 程序在运行时,对 系统有不良的影响。 在经过验证之后, 该类文件才能开始被j a v a 虚拟机所运行。 如果这个验证的操作在一般的p c 上运行,速度倒是还能够接受,可是一旦放到 - 21 如p a l m 或是手机这些c p u 较慢、内存也比较少的机器上就显得十分吃力了。为 了节省宝贵的c p u 运算时间( 既能省电又能够加速程序运行) , 在程序设计师写出 能够让某些特定平台运行的类文件之前,程序设计师必须先在 p c上使用 p r e v e r i f i e r 工具做一些初级的验证工作, 预先验证器会在类文件中加入一些特 殊标记或符号。 如此一来,当这些程序放到目 标平台上运行时, 就可以大幅减少 在目 标平台上做验证的时间,从而加速程序的激活及运行速度。 第二个步骤就是把s u n 的参考实现下载下来, 可以直接从s u n 的网站上下载 k v m 参考实现。如果目 标平台有支持足够的底层a p i 的话,几乎可以不用作任何 修改, 就可以直接把整个k v m 移植到操作系统上面, 不过当然还是得依据底层操 作系统的特性来修改一下k v m 的程序。 第三个步骤是开始依据目 标平台的特性修改,因为这个地方和操作系统息息 相关,例如怎么样开启文件、如何动态取得内存、 如何将窗口系统移植上去、 如 何处理不同c p u 之间的特性、如何处理6 4 b i t s 运算等。在k v m中并没有定义如 何去处理6 4 b i t s 的运算, 如果目 标操作系统不支持这一部分的话, 就要自 己 动 手做; 另外一个比较麻烦的地方就是k v m内部的运作无法处理双位, 也就是说在 中文环境下使用会有问题, 例如无法显示中文、网络联机的处理等, 会碰到的问 题如下: ( 1 ) 文件对齐( d a t a a l i g n m e n t ) : 例如2 b i t s 或是4 b i t s 的文件对齐的 操作,对不同的c p u 平台来说,若是处理不慎,很容易就会死机。 ( 2 )对长整数( l o n g i n t e g e r s ,以w i t s为一个单位的整数) 的支持: j a v a的整数类型最大可以支持到6 4 b i t s 的长整数, 因此在虚拟机上 就必须做这方面的处理,一般的跨平台编译器不一定支持这个,所 以我们必须用软件的方式去仿真,若是处理不慎的话,一但超过 6 4 b i t s 长整数的极限, 就会o v e r f l o w了, 虽然可以找到一些处理长 整数的算法,但是在效率上的考虑就必须自己去处理,例如有关加 减乘除的部分,如何做才会最快又不会有o v e r f l o w 或是u n d e r f l o w 的状况发生? ( 3 ) 浮点数( f l o a t i n g p o i n t ) 的支持:有关浮点处理部分,很多嵌入式 系统的 c p u不包含浮点处理功能,必须自 行仿真,也就是自 行用整 数运算的方式做到浮点运算,一般的跨平台编译器都会提供这种数 据类型的算法,如果没有这部分的话,就要自 行处理了。 ( 4 ) e n d i a n n e s s 特性考虑:就是b i g e n d i a n 或是l i t t l e e n d i a n 的问题 了,基本上这是 c p u的特性问题, 一般只要稍微仔细一点都可以 避 免,不过特别在处理长整数的时候,大都使用两个整数合并在一起 做, 这时候可能会因为要将文件推入所定义的数据结构中时产生高 低位上的问题, 造成意想不到的情况发生,就必须要特别注意了。 ( 5 ) 多线程管理的时钟输入问题:k v m 本身具有仿真多线程的管理机制, 不过这时候它需要一个时间的标准单位作为参考,不过每一台嵌入 式后统的时间基本单位不一定一样,必须自 行仿真或是换算出一个 千分之一秒的单位给k v m 使用。 ( 6 ) 类路径的问题:包括所有 j a r的文件路径、所要加载的系统 c l a s s 路径等,有些嵌入式系统并没有文件系统的概念,我们必须要针对 这些情况做特别处理。 ( 7 ) 系统类的加载操作: 如何从r o m 里运行k v m , 这是嵌入式系统的基本 问题,不过在移植的操作上面,必须要依据每个不同的系统做设计。 ( 8 ) 内存管理支持:有些嵌入式系统根本没有内存的管理机制,可以在 一开始就利用一个很大的数组,指定给 k v m自己的内存管理机制来 作内 存管理,如果该平台本身支持这一部分的话,也可以使用该平 台的管理来作。 ( 9 ) 垃圾回收: 每一个j a v a 虚拟机的垃圾回收机制都不一样, 而且每次 有新版的j a v a 虚拟机出现时都会特别强调改善了垃圾回收的问题, 由此可以看出这部分的问题的确非常复杂和重要。 ( 1 0 )解释器:有许多解释器的选项可以设定和调整,可以发现 k v m的解 释器是一个很复杂的无限循环,可以根据要求来作最佳化的调整。 ( 1 1 )调试及追踪:在 k v m内,每一种调试的机制都不一样,可以 依据说 明来作调整的设定。 ( 1 2 )网络及存储设备设定;在嵌入式系统中,越来越多的系统己经开始 支持网络了, 特别是在 j a v a的世界里,网络很重要,所以 t c p / i p 最好要能够运行,另外 k v m本身针对短距离天线传送也有相关的处 理,因此红外线部分也要处理,存储设备的存取也必须要做处理, 因为每个嵌入式设备的存储设备不一, 也许只有r a m , 也许还可以扩 充c f ,这部分的选项及设计必须依据特定设备来作调整。 ( 1 3 )图形用户接口:这个部分是移植时耗费最多时间与精力的地方,其 中要注意的是操作环境所提供的a p i 最好是支持c l i p p i n g 的 功能, 因为有很多必须移植的类都是支持c l i p p i n g 的。 此外对于事件的对 应以及按钮的对应都必须小心处理。 ( 1 4 )平台规格及特性( p l a t f o r m - s p e c i f i c f e a t u r e s ) :目 标平台是否有 特殊要求及应用,因为k v m 本身可以做修改的,所以有许多的操作, 事实上可以自 行决定要不要做,这部分的弹性很大,不过也很危险, 要多注意 ( 1 5 )中文化问 题: 这个问 题不只 k v m本身,基本上所提供的系统类库也 必须要做修改。在 k v m里面是以u n i c o d e的字符处理为主,虽然在 c l d c 中 提供了对工 s 0 8 8 5 9 - 1 的读写功能, 可是这两个功能都有缺陷, 例如在w r i t e() 中,当面对编号大于 2 5 5 的字符都用 “ ? ” 来处理, 而且根本没有考虑到双位的状况,所以就算在编译器上加上 i s 0 8 8 5 9 - 1 编码方式来处理, 仍然无法彻底解决中文化的问 题, 因 此 唯一的解决方法就是在计算字符数组的时候自行计算双位的问题, 因此必须自 行改写r e a d )及w r i t e )这两个功能,通过n a t i v e m e t h o d 的方式做字符转换, 以便可以写入或是读出正确的中文字符。 有关加载j a v a 应用程序的问题方面,为了面对p d a 或是手机这种类型的嵌 入式系统设备,在c l d c 规格中将运行程序与相关的类文件与类库包装成j a r 的 文件, 事实上它就是把所有的程序以z i p 压缩格式压成的一个文件, 以方便做下 载的操作。 当一个j a r 文件下载至设备里的时候, k v m 会通过一个j a r f i l e r e a d e r 将这个包打开, 并且依据内附的一个表格所指定的相关信息来放置其内的类文件 与程序, 不过许多嵌入式操作系统本身并没有文件系统的概念存在, 例如p a l m o s 就是以数据库的形态来管理, 并非以文件系统的方式来操作, 因此移植时必须依 据该系统的特性做出调整。 另外还牵扯到一个数据库的问题, 许多应用程序不可 避免会使用到数据库的管理功能, 但是每个操作系统对于数据库管理所定义的方 式不一样,s u n 公司所提供的k v m 参考实现是以p a l m o s 的数据库a p i 当作一个 范例, 但是这个功能却没有明确的定义在规范里, 因此这一部分的实际实现, 要 看移植是否真的想要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公园劳务服务合同标准文本
- 产品网销合同标准文本
- 供货定金合同样本
- 中宁滴灌带采购合同标准文本
- 入股购买机械合同样本
- 公司签订业务合作合同样本
- 2025《试用合同范本》
- 公司委托管理合同样本
- 事务代理合同标准文本
- 中餐预订合同标准文本
- 软测量方法原理及实际应用-课件
- 车床教学讲解课件
- 政策目标确立和方案制定概述课件
- 六年级下册英语课件-Unit 4 Lesson 23 Good-bye-冀教版(共19张PPT)
- 硬笔书法全册教案共20课时
- 张波-超高温陶瓷课件
- 特洛伊战争(英文版)
- DBJ04-T 410-2021城市停车场(库)设施配置标准
- 车站主体结构模板支架专项施工方案--终稿(专家意见修改的)-副本
- 保洁岗位培训
- 丽声北极星自然拼读绘本第二级 Pad, Pad, Pad! 课件
评论
0/150
提交评论