(电路与系统专业论文)嵌入式系统中Java+AWT的实现[电路与系统专业优秀论文].pdf_第1页
(电路与系统专业论文)嵌入式系统中Java+AWT的实现[电路与系统专业优秀论文].pdf_第2页
(电路与系统专业论文)嵌入式系统中Java+AWT的实现[电路与系统专业优秀论文].pdf_第3页
(电路与系统专业论文)嵌入式系统中Java+AWT的实现[电路与系统专业优秀论文].pdf_第4页
(电路与系统专业论文)嵌入式系统中Java+AWT的实现[电路与系统专业优秀论文].pdf_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 多年鼓来,人们一直使藤各种各样静工最来完成任务,丽艟这些工其正变得越来越强大, 并且能够互相连接起来。比如说微处理器,已经出现在很多 习常使用的物件中,并且越来越 多地和网络有了联系。微处理嚣不仅仅可以作为个人计算机和工作站的心脏,也在嵌入式设 锫领域褥到了广泛的应用。个人数字助理( p e r s o n a ld i g i t a la s s i s t a n t ) 、掌上个人电膑 ( h a n d h e l d p c ) 、电糖瓤、悖呼撬、手辊,蘩至连手表都装上了徽建理嚣,井虽掇多都露 以和网络连接。 逐渐通过网络连接起来的设备开剖了软传的新环境。一般通过网络连接越来的设备都县 宥不瓣戆硬l 孛棼系、不强静操掺系绫,曩予不瓣豹瘸途。j a v a 逶过剖建与平螽无关夔程彦采 解决各种设备程软硬件体系上的不兼容。因此,一个j a v a 税序可以不需嚣修改造就在很大 范围内的设备上运行。j a v a 的这种平台无关性主要是由j a v a 魔拟机( j a v a v i r t u a l m a c h i n e ) 实现的。j a v a 虚拟机将所有与平台相关的操作都封装在虚拟机的内部,并且为上层的应用稷 垮提供了统一静接日。 网络上存在的大量的j a v a 程序都需要j a v a 虚拟机提供图形化的界面,比如说现在特别 流行的j a v a 游戏。j a v a 应用程序接口( j a v a a p p l i c a t i o n i n t e r f a c e ) 所提供的最旗本的图形类席 称为抽象图形王具包( a b s t r a c tw i n d o w st o o l k i t ) 。本论文在剖析j a v a 虚搬机内部实现机 剿翡基疆上,薄重讨论了在嵌入式系统中实璐a w t 技拳瓣避程。著显在蛮蠛a w t 技术静 纂础上,讨论了如何根据j 2 m e 规范来进行a w t 类库的构建。 一般来说,实现a w t 技术需要有底层的图形接口的支持。j a v a 虚拟机将需要显示的数 糕交嚣给底屡熬图形痒,底层瓣图形库负责曩示;页底层豹嬲彤痒受责接受攀终,劳且将记 簸事件信惠静数据交付给j a v a 寝摈罄毛,j a v a 鹰羧税稷撂事伴魏内容遴嚣筵遴。这是在本谦 题中a w t 实现的最基本的模测。 论文最后对所实现的j a v a a w t 进行了功姥上的验证。针对所实现的f f a v a 虚拟机编写了 一令t e s t e n g i n e 程旁,包摇鑫耱各样戆图形器嚣程孝。在验疆戆基爨上,攒蠢了一些实现上 的不足,并输出了改进的方案。 关键词:j a v a 虎拟机,抽稼图形工具包,j 2 m e ,j a v a 成用程序接口,嵌入式系统 变塞奎耋黧兰笙茎 a b s 戮陡a c t o v e rt h ea g e sp e o p l eh a v eu s e dv a r i o u st o o l st oh e l pt h e ma c c o m p l i s ht a s k s ,n o wt h e s et o o l s a t eg e t t i n gs t r o n g e ra n ds t r o n g e ra n db e i n gc o n n e c t e dw i t he a c ho t h e r f o r e x a m p l e , m i c r o p r o c e s s o r sh a v ea p p e a r e di n s i d em a n yc o m m o n l yu s e di t e m s ,a n di n c r e a s i n g l y , t h e yh a v e b e e nc o n n e c t e dt on e t w o r k s t h e yh a v ea l s ow i d e l yu s e di n s i d ee m b e d d e ds y s t e mf i e l d st 1 1 a l l 吐l e p e r s o n a lc o n l p u t e ro rt h ew o r k s t a t i o n p e r s o n a ld i g i t a la s s i s t a n t ,h a n d h e l dp c ,t e l e v i s i o n s ,c a l l s , m o b i l ep h o n e s 。a n dw r i s t - w a t c h e s 越1h a v eb e e ne n h a n c e dw i t hm i c r o p r o c e s s o r s 。m o s th a v e b e e nc o n n e c t e d 她n e t w o r k s t h ed e v i c e si n t e r c o n n e c t e db yn e t w o r k sr e p r e s e n tan e we n v i r o n m e n tf o rs o f t w a r e g e n e r a l l y s p e a k i n g ,d e v i c e sc o n n e c t e db yn e t w o r k sh a v ed i v e r s eh a r d w a r ea r c h i t e c t u r e s ,o p e r a t i o ns y s t e m s , a n dp u r p o s e s 。j a v aa d d r e s s e dt h i sc h a l l e n g eb ye n a b l i n gt h ec r e a t i o no fp l a t f o r m i n d e p e n d e n t p r o g r a m s as i n g l ej a v ap r o g r a mc a l lp d nu n c h a n g e do naw i d er a n g eo fc o m p u t e r sa n dd e v i c e s 。 j a v a s c a p a b i l i t yo fp l a t f o r m - i n d e p e n d e n ti so f f e r e db yj a v av i r t u a lm a c h i n e j a v av i r t u a l m a c h i n ep a c k sa l lp l a t f o r m - d e p e n d e n to p e r a t i o n si n s i d ei t s e l f , a n ds u p p l i e ss t a n d a r di n t e r f a c ef o r t h ea p p l i c a t i o nl e v e l l o t so f j a v aa p p l i c a t i o n se x i s t so nn e t w o r k s n e e dg r a p h i c su s e ri n t e r f a c e ,s u c ha sj a v ag a m e s 。 t h eb a s i cg r a p h i c sl i b r a r i e st h a tj a v aa p p l i c a t i o ni n t e r f a c eo f f e r sa l ek n o w na sa w t ( a b s t r a c t w i n d o w st o o l k i t ) t h i sp a p e rw i l le x p l a i nh o wt oi m p l e m e n t i n ga w ti ne m b e d d e ds y s t e m so n t h eb a s eo fa n a l y z i n gt h ei n s i d et h e o r yo fj a v av i r t u a lm a c h i n e a f t e rt h a t ,t h i sp a p e rw i l lc o v e s t h e c o n f i g u r a t i o no f a w t c l a s sl i b r a r i e sa c c o r d i n gt o j 2 m es p e c i f i c a t i o n s g e n e r a l l ys p e a k i n g ,i m p l e m e n t a t i o no fa w tt e c h n o l o g yn e e d st h es u p p o r to ff o m eg r a p h i c s l i b r a r i e s 。j a v av i r t u a lm a c h i n ep a s s e st h ed i s p l a yd a t at og r a p h i c sl i b r a r y , a n dg r a p h i c sl i b r a r yi s r e s p o n s i b l ef o rd i s p l a y i n gt h ed a t a 。o nt h eo t h e r 酝醴,g r a p h i c sl i b r a r ya c c e p t st h ee v e n t ,a n d p a s s e sc o r r e s p o n d i n gd a t at oj a v av i r t u a lm a c h i n e t h e n j a v av i r t u a lm a c h i n ed e a l sw i t ht h ed a t a t h i si st h eb a s i cm o d e lt h a tw ew i l lt a k ei nt h i sp r o j e c t f i n a l l yw em a k e a l le x p l o r a t i o no nt h ei m p l e m e n t e dj a v aa w t ap r o g r a mc a l l e dt e s t e n g i n e , i n c l u d i n ga 珏k i n d so fg r a p h i c sa p p l i c a t i o n s ,i su s e dt ot e s tt h ej a v av i r t u a lm a c h i n e a f t e rt h e v a l i d a t i o n ,w ep o i n to u tt h el i m i t a t i o n so ft h ei m p l e m e n t a t i o n ,a n dg i v et h e a d v i c e so f i m p r o v e m e n t + k e yw o r d s :j a v av i r t u a lm a c h i n e ,a b s t r a c tw i n d o w st o o l k i t ,j a v a2m i c r oe d i t i o n , j a v aa p p l i c a t i o ni n t e r f a c e , e m b e d d e ds y s t e m i i 学位论文独创性声明 本a 声萌:繇竖交鲍学位埝文楚我令灭在导季攒导下迸 亍黝薹拜炎工终爱取褥鳇磺究藏果。尽襞 衙知,除了文。 f 特剐加以标注和致谢的地方外,论文中不包含其他天已经发表藏撰写过的研究溅粱, 也不包含为获得东南大学或其他教育机构的学位溅证书而使用过的材料。与我一同工作的刮忐对本 研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 签名:日期 关予学位论文使用授权的说辨 东南大学、q 国科学技术惯息研究所、潮家图书馆嚣权保留本人所送交的学位论文 豹复印搏窝奄子文整,可以聚蠲影印、壤印或萁毽鬣铡手段镶存论文。本人惫予文 档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被蠢询 和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊迸) 授权东南大学研究生院办理。 签名:导师签名:日期: 1 1 课题研究背景 第一章绪言 j a v a 程序语言在其产生乏胡就是为机顶龠设备设计的。腊米,由于它在强联网上的出色 浅理,使它赢缚了巨大豹声誉鞫财富。现在它又睡到自己原激豹领地一鹱入式系统。 对于褒入蕊系统来说,j a v a 技术魄c 诿富耱芤编语言鬟誊银明显鹣後越墼耋。j a v a 语言 的主要特点是跨平台性,并且它是- - f q 面向对象的程序设计语言。j a v a 语肖的特点如下: 1 跨平台性 在一静平静上编译后的代码可以不做任何改动的在另外个平台上运行。即人们通常所 称豹“一淡编译,疆楚运行”。j a v a 主要怒锻靠j a v a 寝羧撬在嚣稼我弱缀实现平台露美 性。 l 面向对象 面向对象的特性使代码的麓用率很高。遇过类的继承关系可以大大减少代码的工作量。 1 分毒式 透过j a v a 掰疆供静a p p l e t 税裁,可 ;l 蒋黢务器端静程侉下载到窖户撬媾运苻。 由于j a v a 的这些特点,值j a v a 技术在嵌入式系统中得刹了广泛的应用,同时随着嵌入 式i a n u x 技术鹩不断发展,融经肯很多的平舞支持j a v a 应搠7 ,在嵌入式系统中实现j a v a 技零已经蔽麓一耱必然嚣趋势。 1 0 课题来源殿目标 奉课题弱予垂选瀑题,主袋囊的是硬究翔俺在嵌入式系统中实现j a v a 技米。 随着人僻生活承平静提高,一魑澄费隹酶嵌入斌设备鲡手瓿、个天数字纯动透( p d a ) 、掌上 电脑( h p c ) 等也日益普及。这些设备大多数典有网络接口,可以利用网络上丰富的资源。 问时由于j a v a 的可移植性非常地好,使得很多第三方的开艇商愿意在网络上提供各种各样 的j a v a 应用穰序,这些应用程序尤其是游戏可以大大丰富嵌入式设备的内容。因此,在嵌 入式设备中窦璇j a v a 技术蠢经是一秘鍪然麴越势。无论罴游戏还是荬链懿j a v a 应爰程瘁, 如果离开了图形用户界面( g u i ,g r a p h i c a lu s e ri n t e r f a c e ) ,将很难受到使用者的喜爱。 因此,j a v a 从一开始就为成用程序提供了个图形类库,称为抽象窗【1 工具箱( a w t 。 a b s t r a c tw i n d o wt o o k i t ) 。 本谭题的壤终嚣标是在畿入式系统上实瑷j a v a 的麴象瀚形工具包技术,潋方便胡户避 行图形用户秀丽编程。根据j 2 髓蕊范和安璐嵌入式j a v a 的秘标平台,零谦趱计翔达到下剐 的目标: 1 ) 选择种适合于在囡标平台j 二运行的j a v a 虚拟机。 2 ) 在j a v a 盎拟枫的熬础上实现a w t 技术。 3 ) 在移楗过嚣靛j a v a 璇援壤蔓建设德奢j 2 疆褒藏懿a w t 瘁。 1 3 课题擞黉研究工作 本课题的错究工作主要龟括f 面的几个方群 末毒大学颟圭论文 l选择一一种源代码开放的j a v a 虚拟机,该j a v a 虚拟机必须支持j a v a2 规范,提供蕊 本的类库( j a v af o u n d a t i o nc l a s s ) 实现。由于j a v a 虚拟机的实现是一个非常复 杂鲍j 璧毽,妇袅完全按照垂己个人懿力藿来掏连j a v a 连援极熬蠹梭,将是一项嚣 常庞大的任务,因鲍选择一个已有的歼放原码的j a v a 虚拟机将是工作的第一步。 1深入剖析所选择的j a v a 虚拟机的内部实现机制,弄清j a v a 虚拟机的运行流程,以 便于髯清楚如何实现j a v a a w t 技术。 1进行j a v a a w t 技术的实现。这是一个实瑰接日的工撵,其连接了j a v a 虚拟机与本 逢斡翻澎霹或者是f r a m e b u f f e r 静绥瑟。奉谋疆将蒸予嚣静类型鹊簌层接霜实现 a w t ,一种是基于q t e m b e d d e d 图形库的实现,一种是直接基于f f a m e b u f f e r 的实 现。 1实现j a v a a w t 技术之后,根据j 2 m e 规范进行a w t 类库的构建。 l 对象安装豹a w t 送行秘藐土麓骏涯,劳绘密7 霹栽豹改进方案e 1 4论文主爱内容 攫据谖题掰涉及到豹重要 辩究工作,该论文的主要内容趣括下蟊的内骞: 1 第一帮,绪言 l第二颦,讲解有关于j a v a 技术的一魑基本的概念,以便于为阅读率论文的其它章 节打下基础 1 l 第三鬻,介绍了a w t 实现的过程,主要是针对予q t e m b e d d e d 茅hf r a r r m b u f f e r 的 实瑗 第四章,介绍了如何对j a v aa w t 避行功能和性能验证 2 篁三至量坐! 垫查宣茎堕塑查 2 1j a v a 体系结构 第二章与j a v a 技术有关的概念 2 1 1 j a v a 体系结构概述 通常,人们提到j a v a ,往往是指j a v a 语言本身。实际上一个完整的j a v a 体系结构应该 包括下面的几个独立但是相关的技术: 1 j a v a 程序设计语言 1j a v ac l a s s 文件格式 l j a v a 编译器 l j a v a 应用编程接口( a p i ) 1 j a v a 虚拟机 当编写并运行一个j a v a 程序时,就可以同时体验到这四种技术。用j a v a 编程语言编写 的源代码,经过j a v a 编译器编译成j a v ac l a s s 文件,然后再在j a v a 虚拟机中运行c l a s s 文件。 当编写程序时,通过调用j a v a 应用程序接口中的方法来访问系统资源( 比如i o ) 。编译 成的c l a s s 文件基于j a v a 虚拟机运行。一个j a v a 程序的运行流程可以图1 - 1 所表示: 编译时环境 图2 - 1j a v a 编程环境 运行时环境 同样一个j a v a 程序也可以运行在不同的平台上,如图1 2 所表示。图中的“j a v a 平台” 是指j a v a 虚拟机和j a v a a p i + 起组成的“平台”,j a v a 的应用程序就是基于这个平台而运行 的。j a v a 虚拟机直接与本地的系统交互,并且为j a v a 应用程序提供了一个统一的j a v a a p i , 无论j a v a 虚拟机是基于什么平台实现的。 东裹夫学i 蒺士论文 圈2 - 2 在j a v a 平台上运行的j a v a 程序 2 1 2j 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 虚援税逶避本建方法接秘 ( n a t i v em e t h o di n t e r f a c e ) 与底层操作系统和函数库交曩,并且为上层的j a v a 应用程序 提供了符合规范的a p i 。j a v a 虚拟机与j a v a 体系结构中其他部分的交互情况如图1 - 3 所示: 圈2 - 3j a v a 旋羧撬夔遥燕 由图1 - 3 可以看出,在j a v a 盎拟机的基础上,为j a v a 威用程序提供了掰需要的j a v a 基 韬类疼( j a v af o u n d a t i o nc l a s s ) 。还惫括7 獭象蛰影工其毽( a w t ) ,遮嚣嚣分梅或了整个 j a v aa p i 的熊台。与平台相燕性的操作是封装在j a v a 虚拟帆内部的,j a v a 应用程序不童接 操作底层的函数库,这就确保了j a v a 程序的平台无关性( 实际上,j a v a 廉拟机提供了一种 称为j a v an a t i v ei n t e r f a c e 的机制,通过该机制允许j a v a 应用程序访问底屡所提供的接口, 遮眩静j a v a 程痔藏逮得与平食撞关了) 。 d 第二章与j a v a 技术有关的概念 2 1 3c l a s s 文件 j a v ac l a s s 文件实际上是精确定义好格式的二进制的数据流。其周密定义的格式使得j a v a 虚拟机能够从中提取出有用的信息并且对其进行解释执行。j a v ac l a s s 文件的设计也在平台 无关性和网络移动性方面给j a v a 虚拟机以支持。它在平台无关性方面的任务是:为j a v a 程 序提供独立于底层主机平台的二进制形式的服务,这正是j a v a 虚拟机所期望实现的。j a v a c l a s s 文件所提供的平台无关特性可以表现在下面的两个方面: 2 j a v ac l a s s 文件中不包含目标处理器的机器语言。当编译和连接一个c + + 程序的时候, 所获得的可执行二进制文件只能在指定的硬件平台和操作系统上运行,因为这个二进制 文件包含了目标处理器的机器语言。而j a v a 编译器将j a v a 源文件的指令编译成字节码, 这种字节码是与目标处理器的机器语言无关的。 1 j a v ac l a s s 文件中字节顺序是高位在前,这与使用何种平台产生这个文件和在何种平台 使用这个文件都没有关系 除了对平台无关性的支持,j a v ac l a s s 文件还在支持网络移动性的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 a v a 虚拟机的过程中将会详细介绍c l a s s 文件内部的文件格式。 2 1 4 j a v aa p i j a v a a p i 通过支持平台无关性和安全性,使得j a v a 适应于网络应用。j a v a a p i 是运行库 的集合,它提供一套访问主机系统资源的标准方法。编写j a v a 程序时,可以假设在任何运 行程序的j a v a 虚拟机上都能够获取j a v a a p ic l a s s 文件。这是一个相对安全的假设,因为j a v a 虚拟机和j a v a a p i c l a s s 文件是任何j a v a 平台都要实现的必要部分。运行j a v a 程序时,虚拟 机装载程序的c l a s s 文件所使用的j a v aa p ic l a s s 文件。所有被装载的c l a s s 文件( 包括从应 用程序中和从j a v aa p i 中提取的) 和所有已经装载的动态库( 包含本地方法) 共同组成了 在j a v a 虚拟机上运行的整个程序。 根据目标平台的不同,j a v a 技术针对j a v a 虚拟机和j a v aa p i 提出了三套不同的标准 这三套不同的标准分别是: 1s t a n d a r de d i t i o n 务应用。 1 e n t e r p r i s ee d i t i o n j s p 和x m l 等等。 ( j 2 s e ,标准版) :针对桌面端p c 和工作站的个人和低端商 ( j 2 e e ,企业版) :针对服务器端企业级应用,支持s or v l o t s , 1m i c r oe d i t i o n ( j 2 me ,袖珍版) :针对有限内存,显示和处理能力的设各,主 要是消费电子和嵌入式设备领域( 这实际正是j a v a 语言设计最初的目标领域) 。 这三种不同标准之间的比较可以如图1 _ 4 所示 5 东南大学硕士论文 图2 - 4 三种不同的j a v a 规范 从图中可以看出,随着目标平台处理能力的增强,j a v a 虚拟机所能提供的类库也在不断 的强大。另外,在消费电子和嵌入式设备领域,内存从几百k 到几十m ,从没有屏幕到 w e b - t v ,c p u 从低功耗的嵌入式处理器到4 0 0 m h z 的r i s c 处理器,硬件条件的差异是相 当大的。这就使得j 2 m e 的标准需要有不同的层次和类别来适应这个复杂的领域,因此相比 之下j 2 m e 就比j 2 s e 和j 2 e e 的标准要复杂得多。由于本课题最终需要在嵌入式系统中实现 j a v a 技术,因此了解j 2 m e 技术的细节是很有帮助的。 2 2j 2 m e 规范概述 2 2 1j 2 m e 总体体系结构 图1 - 5 表示了j 2 m e 体系的一般结构: 图2 - 5 j 2 m e 体系的一般结构 下面分别介绍这几个层次 6 第二章与j a v a 技本有关豹撬念 1 本瓠系统髹( n a t i v es y s t e ml a y e r ) :主簧是撑特定瓣嫒搏平台秘摄臻蒹绞,瞧包括 底层所提供的函数库。 1 j a v a 虚拟机层( j a v av i r t u a lm a c h i n el a y e r ) :相对来说,j 2 m e 规范中所定义的 j a v a 虚拟机往往是比较简单的实现,其逶行时所占用的赘源较少。 l 配置层( c o n f l g u r a t | o nl a y e r ) :配置鼷定义了j a v a 纛歙枧动能的秘特定类别设蠡 上可嗣的j a v a 类库瓣最小集。鼠菜种鞭发上说,一个鬻黉定义了j a v a 平台臻戆鄢 件和库的懿同性,开发者可以假设这些功能部件和库在麒于某一特定类别的所有设备上 都是可用的。用户不太岔见到这一层,傻它对框架( p r o f i l e ) 实现者非常重要。 1 框架层( p r o f i l el a y e r ) :框架层定义了特定系列设备上可用的应用程j 挚犏程接口( a p i ) 豹最小集。壤黎在一个特定豹配置土纛实现。痘建程痒怒锌对特定夔撬絮编写戆,困藏 可以移植鬻支持该框架的任何设备上。一个设备可阻支持多个框架。用户和应用程序供 应商看到最多的就是这一层。 2 2 2c d c 帮c l d c 介绍 j 2 m e 在设计其规格的时候,遵循着“对于各种不同的装置而造出一个单一的开发系统 鼹没有意义的攀”这个基本原则。于是j 2 m e 先将所有的嵌入式装置大体上区分为两种:一 种是运算功能谢限、电力供应也有限的嵌入式装置;另外种是运算能力相对较佳、并请 纛邀力供应上鞠麓爨较充是豹嵌入式装萋。霸为这嚣静区分,瑷班j a v a7 1 入了一个叫徽 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 dd e v i c ec 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 ec 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 的概念区蕊成秘釉擒象的型态。 下面详细介绍一fc d c 和c l d c 的概念。 2 2 2 1 连接袋潮设备嚣鐾( c l d c ) c l d c 采用了更轻型的虑拟机,设计为在较低内存环境下运行。这种j v m 的参考实现 也就是所谓的k v m ,为什么嚣叫k v m 呢? 这是因为这种康拟机的大小是以千字节度量的。 c l d c 的设备髓求如下: l最低1 6 0 k b 的内存,其中1 2 8 k b 用于k v m 和运行时摩 1 最低1 6 位2 5 m h z 处理器 l 有限的用户界面功能 l 投毒( 或蠹掏歇靛) 低带觉弱络连接 在如此严格的限制之下,c l d c 只包括四个包,其中三个来自标准j a v a 规范并且作了 缩减( j a v a a n g 、j a v a u t i l 和j a v a i o ) ,舄一个专门针对c l d c ( j a v a x m i c r o e d i t i o n ) 。 对于这些包的籀述以及包中掇供纳类( 或接脚) 的数目如表卜1 所示: 7 东南大学硕士论文 包描述类和接口数目 j a v a 1 0 系统输入输出 1 8 j a v a t a n gj a v a 编程语言最基本的类 3 8 j a v a u t i l 集合、日期和时间支持,各式实用 1 0 工具类 j a v a x m i e r o e d i t i o n通用连接框架( g e n e r i c 1 0 c o n n e c t i o nf r a m e w o r k ) 表2 - 1c l d c 中的包 c l d c 必须照顾最苛刻的硬件条件,因此去掉了许多重要的类和特征,只保留了最核心 的一些基本类。例如r m i 和映射因需要内存太多而被舍弃,错误处理要求的代价太高,也被 删除了。许多设备不能支持浮点数,更不用说双精度类了。还有许多设备没有或不提供访问 一个文件系统的功能或权限。不过请放心,对于那些能够支持更多特征的设各,它们所需要 的这些功能或者超出标准j 2 s e 要求的功能,都可以由针对此类设备的p r o f i l e 来补充。 c l d c 中唯一新增的j a v a x m i c r o e d i t i o n 包定义了一个通用连接框架( g e n e r i c c o n n e c t i o nf r a m e w o r k ,g c f ) 。通用连接框架把j 2 s e 中的文件,s o c k e t s ,h t t p 请求和其 他输入输出机制的概念抽象为更简单的一套类。可以说,它提供了j a v a i o 和j a v a n e t 的同样功能,却不需要设备的特殊能力。 由于受到严格的内存容量限制,k v m 因此缺乏一些完整j v m 所提供的特性,这就是说, 你可能得改变自己的编程风格了。k v m 在如此低内存要求下不得不在浮点数学计算、反应 和对f i n a l i z e r s 类的支持等方面对性能进行折中。使用c l d c 的开发者在编译程序之后必须 预先采用j 2 m e 开发工具包所提供的一种检查工具对他们的源代码进行校验。 2 2 2 2 连接设备配置( c d c ) c d c 应用于相对内存量较大、更强处理器的移动设备。c d c 规范采用了内存优化的虚 拟机,也就是所谓的c v m ,通过它提供等同标准j v m 的特性。按照s u n 的文档说明,c d c 针对新型p d a 、智能通讯设备和机顶盒之类的高端设备。为了能够受到c d c 支持,移动设 备必须至少具备以下条件: 1用于c v m 和j a v a a p i 库的2m b 内存。 13 2 位微处理器或者控制器。 l可用网络连接,最好是高带宽连接。 c d c 是c l d c 的完整超集,包含了所有的c l d c 规范。另外,在相对充裕的条件下,它支 持j 2 s e 的标准j a v a 虚拟机和一部分核心类库。既然c d c 是c l d c 的超集,基于c l d c 的程序在c d c 内是完全兼容的。不过这里的c l d c 程序必须只用到c l d c 的部分,一旦 采用了某一个p r o f i l e ,显然也就不能在c d c 内兼容了。c d c 、c l d c 和j 2 s e 之间的关系 如图1 6 所示: 8 一一 篓三茎兰! 鳖塑查塞差墼篓釜 圈2 - 6c d c 、c l d c 晕瑟j 2 s e 之闻懿穗容关系 其次,e d c 支持标准豹j 2 s e 虚援规,这只是j a v a 平台麴基础,著不包括建筑予平台慕 确之上豹各静爽摩。特定谩备潜要静特定粪簿幽裙应懿p r o f i l e 来定义。这点蘧嚣藏会掩 到。还是那个关键:c o n f i g u r a t i o n 定义的是一类设备的与设备无关的最小平台,因此,诸 如a w t 类的实现都被分离,留在p r o f i l e 中定义。 2 2 3 垂絮屡瓣奔 框架层所定义的是面向于菜一特定设备盼舰范,每一个特殊盼设备都w 能有自己的特 征,而这些特征在c d c 或c l d c 中是没有被涉及的。框架层就是为解决这个问题而出现的。 椴架层可以分为基础框架层和个人框架层。 l 基醚疆蘩滕( f o u n d a t i o np r o f i l e ) 基础框架屡提供除了用户界面以外c d c 所缺少的几乎所商标准j 2 s e 榱心类库,作为熟 他所有p r o f i l e s 的基础( 多个p r o f i l e 可以然存,也可以藏加) 。 1 个入框黎艨( p e r s o n a lp r o f l l e ) 个人框架朦针对那些资源相对有限,但是需要高度的i n t e r n e t 和w e b 逑接支持的设备。 恻如w e b t v ,汽车导航系统等等。它在f o u n d a t i o np r o f i l e 的基础上提供了网络特性以及 支持j a v aa p p l e t s 匏g u i 。 现。 由此可见,在嵌入式系娩中进行j a v aa w l ? 类库的建设可以参考个人框架层的规范实 9 东南大学硬士论文 第三章j a v a a w t 的实现 为了在嵌入式系统中实联a w t ,本谋越躲实现主要包括下面几个方露的内容,这几个 方面的内容是谶步实现的。 1 确定j a v a 康拟机运行的目标平台 l 稷据曩标乎裔的蛙能玖及零课题所期望静强标选择j a v a 震拟枧 l深人势辑j a v a 盎攒祝内部雏实瑗,整瓒清楚袁投税豹执行流程序、 1 根据虚拟机的执行流程,盛现a w t ( 基于底层的图形库或f r a m e b u f f e r ) 1 在初步实现a w t 的基础上,构建符合j 2 燃规范的a w t 炎库 蔻瑟圈方囊黪舞套将在零牵滔述,最磊一部分癌容与j 2 m e 联系紧密,势显摇对来说魄 较独立,将在下一章中讲述。 3 1j a v a 虚拟机运行的硬件平台和软件平台 在嵌久式系统巾蜜现j a v a 纛羧税需要考虑下嚣弱凡个因素: 1j a v a 虚拟机运行的平台,主要包括c p u 类型和操作系统 1 j a v a 虚拟机运行时所占用的资源,如j a v a 虚拟机可执行映像的大小以及运行时内存的 使用情况,还要包括j a v a 的类库的大小 l寝羧疆罴磷挺供图形a l l l 如果虚拟机提供图形a p i 的话,那么壤拟耩本身需要什么样的图形席附支持或者是纛 接操作f r a m e b u f f e r 1j a v a 虚拟机所提供的应用程序接口是否符合j a v a 的规藕,如果符合j a v a 规范,符合j a v a 援范熬耀秘标准( 如:j 2 m e 还是j 2 s e ) 这些需要注意的因素除了与j a v a 虚拟机岛身的实现有捷以外,还对j a v a 虚拟机所运行 的目标平台提出了要求,下麟给出w o n k a 运行目标平台的硬件条件和软件条件。 3 1 。ij a v a 斑羧荸运器豹硬搏串会 综合考稳。t 面提到的因索,为了提供一个功能强大的嵌入式j a v a 虚拟机,在该谋惩瓣 实现中,j a v a 虚拟机运行的嵌入式系统的硬件平台重要包括如下的特征; 1 c p u :糕干i n t e lx s c a l e l ”架构的p x a 2 5 0 芯片,该微处理器是与a r m 架构v 5 t e 漩 客戆,其鬃搴可鞋达到2 0 0 4 0 0 m h z l6 4 m 内存 1 3 2 m 快闪存储器( f l a s h ) 1可以通过网卡和网络连接 与一般的嵌入式系统相比,这些特点是非常优越的,这网鲥也决定了实现一个功能丰键 j a v a 虚掇视瓣霹行程。 3 1 2j a v a 艨拟机运行的软件平台 在第二章中已经提到过,j a v a 虚拟机真按与底层的操作系统和函数库打交道。操作系统 秽函数疼裁掬畿了j a v a 霞接搬瑟运行靛软 譬乎台。在该澡戆的实现中,j a v a 虚掇极运行瓣 嵌入式系统的软件平台重要包括如下的特镀: 1 0 第三章j a v aa w t 技术懿卖瑶 l 王 l 操作系统:l i n u x2 4 1 8 操作系统的源代码开放性使j a v a 虚拟机可以充分利用操作系 统提供的舞种功能 葫数痒;馥器挚台土提供了一令专门嚣翔羧入式系统豹辫澎疼一( j ( f l e m b e d d e d ,这为 在j a v a 虚撒机上实现a w t 提供了便利;此外,舀标平台上还提供了标准的c 和e + + 函数库 设备文件:在l i n u x 中,可以通过设备文件来访问设备驱动程序。这样就可以直接通过 操终f r a m e b u f f e r 来实现a w t 。 3 2j a v a 虚拟机的选择 j a v a 虚拟机的选择是一个需簧慎重考虑的进程,因为这是糕个a w t 宴现的基础。综合 毒建至l 柢平蠹麴瞧麓帮零课题羧鬃舞蠢标,我稻选彝了一静嚣囱褒入式系统豹j a v a 虚拟枫 w o n k a 。w o n k a 是欧洲眈剥对一家名为a c u n i a 公司的产蕊,箕原鹞公开豹特点使我稻熊 够在符合g p l 的精神下对w o n k a 进行移植,以符合我们嵌入式系统的需要。w o n k a 最初是为 个实时操作系统o s w a l d l 而轩发的。对于我们现在所开发项目的硬件和软件平台,w o n k a 其骞妇下熬啜g 乏箍: 1 w o n k a 最秘就是面自予嵌入式系统丽设计鹩。w o n k a 鳇代稻中提供了辩a 鞠体系c p u 貔 支持,同时也提供了对于l i n u x 操作系统的支持。根据髓标平台的特 难,将w o n k a 移梭 到目标平台上是具有可行性的。 1 w o n k a 是个与j a v a 2 兼容的3 v m ,与j a v a 2 兼容的j a v a 虚拟机不仅仪可以提供a w t 委瑶淳,露显莓疆在安臻a w t 瓣基箍上实现s w i n g 嚣澎露。藤显现在缀多蹈缮土豹j a v a 资源也都悬与j a v a 2 兼容的。 1 w o n k a 是个自由软件,符合g p l 精神。难是因为这一点,我们才可以用其源代码进行 开发。 i 在嵌入式窳绫中,w o n k a 逛行避薪占碍的内莓丈小一般程l m 猫之闻,我 j 豹嵌入 式系统完企可敬满足这一簧求; 1w o n k a 是套可移植性非常强的软件,巍前发行的最新j 艇举提供了对x 8 6 和a 雕两类不 同c p u 体系结构的支持,并且在这两类c p u 上都有对l i n u x 的支持。 当然,w o n k a 也骞它静不麓之娃,餮理褒为丘,关手箕瞧戆评锤夔资料籀瓣亲程爨较少, 支持w o n k a 的硝户也不象k a f f e 这样知名的j 那样的广泛。健是也有入在他们的p d a 中成 功实现了w o n k a 。并且有不少的人正试图在他们的嵌入式系统中使用w o n k a 。 3 3 嚣耘警螽上嚣耪图形渡口奔绥 目标平台上= 提供了两种类型的图形编程搂口:一种是q t e m b c d d c d 阁形库,一种悬照 接基于f r a m e b u f f e r 编程接口。q t e m b e d d e d 图形库的特点鼹为应用程序提供了丰富的编程 接日,圈形熟显示班及摹伟豹接受都可以缀容易地邋过这些接口实现,但是使用 q t e m b e d d e d 灞要溃耗系筑交潦。使矮f r a m e b u f f e r 编程按强静优点是效攀镶蔗,系绣游糕 的资源比较少,缺点是f r a m e b u f f e r 提供的编程接口相对来说要复杂一些。为了实现通餍憔, 本课题中实现的a w t 包含了与这两种图形接口兼容。 3 3 lq t e m b e d d e d 简介 东南大学硕士论文 q t e m b e d d e d 是著名的q t 库开放商t r o l l t e c h 正在进行的面向嵌入式系统的q t 版本。 这个版本的主要特点是可移植性较好,许多基于0 t 的xw i n d o w 程序可以非常方便地移植到 嵌入式版本。t r o li t e c h 最初创建q t 作为跨平台的开发工具用于l i n u x 台式机。它支持 各种有u n i x 特点的系统以及m i c r o s o f tw i n d o w s 。k d e 一最流行的l i n u x 桌面环境之一, 就是用q t 编写的。 o t e m b e d d e d 以原始o t 为基础,并做了许多出色的调整以适

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论