已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)kvm在嵌入式系统上的移植研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士论文k v l v l 在嵌入式系统上的移植研究 摘要 我国在欧洲的d v b 、姗p 等标准的基础上制定了相关的数字电视标准。在2 0 0 3 年,我国确定了数字电视中间件技术规范标准的草案,目前正处于审批阶段,而 在该草案中j a v a 技术被列为必选内容。 j a v a 技术本身具有简单、安全、便于传输和跨平台的特点,s u n 公司的开源计划 更增加了该技术的开放性,这些特点使得j a v a 技术在最近数十年不断发展并获得广 泛的应用。目前j a v a 技术已经成为m h p 、0 c a p 等数字电视中间件标准的一部分。 虽然我国的中间件技术规范还未发布,业界已开始尝试在机顶盒中采用j a v a 中 间件技术,即在机顶盒上移植j a v a 虚拟机,这也是本项目的实现目标。本文在学习 数字电视中间件的相关标准、了解s u n 公司的j a v a 虚拟机技术的基础上,根据一个 资源有限的机顶盒的软硬件条件确定了c l d c 、m i d p 这一配置方案,其核心虚拟机即 k 涯。 本文首先在g c c 和v c 编译器下完成了c l d c 和m i d p 的编译和运行调试,在此基 础上深入理解了k v m 的运行机制。根据机顶盒这一嵌入式系统的特点搭建了一个实验 平台,提供了机顶盒软件的调试运行环境。根据运行平台软硬件特点对c l d c 源代码 进行改写,成功将k v m 核心移植到一个资源有限的机顶盒上。而后在熟悉了机顶盒的 操作系统和相关驱动的基础上实现了m i d p 标准的l c d u i 即图形界面部分。 关键词:数字电视中间件机顶盒k v mc l d cm i d p a b s t r a c t 硕士论文 a b s t r a c t c h i n ad e f m e di t so w ns t a n d a r d so fd i g j 【t a lt vb a s e do ne u r o p e a ns t a n d a r d ss u c ha s d v b ,眦i n2 0 0 3 ,c h i n ad e f i n e dt h ed r a f to f “d i g i t a lt vm i d d l e w a r et e c h n o l o g y s t a r d a r d s t h ed r a f ti sw a i t i n gf o re x a m i n a t i o na n da p p r o v a ln o w , a n dt h ej a v a t e c h o n o l o g yw a sd e f m e da san e s s c e r yp a r ti nt h i sd r a f t j a v at e c h n o l o g yh a ss o m ep a r t i c u l a rc h a r a c t e r ss u c h 嬲s i m p l e ,s a f e ,e a s yt ot r a n s f e r a n dp o r t a b l e s u n so p e ns o u r c es t r a t e g ym a d ej a v am o r eo p e n i n g a l lt h e s em a d ej a v a t e c h o n o l o g yd e v e l o p e df a s ta n db e c a m em o r eu n i v e r s a l j a v at e c h o n o l o g yh a db e c a m e t h e c o r eo f d t v sm i d d l e w a r es t a n d a r d ss u c ha sm h pa n d0 c a p t h o u g ht h ed t v m i d d l e w a r es t a n d a r do fc h i n ah a sn o tp u b l i s h e dy e t ,t h ei n d u s t r y h a da l r e a d ym a d ea na t t e m p ta tt r y i n gt op o r tj a v av i r t u a lm a c h i n et os e t - t o pb o x e s ,a n d t h a tw a sw h a tt h i sp r o j e c tt r y i n gt oi m p l e m e n t e d t og e tp r e p a r ef o rt h er e s e a r c h ,l e a r n i n g s o m es t a n d a r d so fd t vm i d d l e w a r ea n ds o m ee x p e r i e n c e so nm i d d l e w a r ed e v e l o p m e n t w a sn e c e s s a r y a c c o r d i n gt ot h eh a r d w a r ea n ds o f t w a r ee n v i r o n m e n to ft h es e t - t o pb o xt o w h i c haj a v av i r t u a lm a c h i n ea b o u tt op o r t ,c l d ca n dm i d pp r o f i l ew a sc h o s e ni nt h i s d i s s e r t a t i o n ,a n dt h ec o r ev i r t u a lm a c h i n ew a sk v m t h i sp r o j e c tf i r s tc o m p i l e dc l d ca n dm d p 州t 1 1g c ca n dv c ,t h er u n n i n ga n d d e b u g g i n gh e l p e dt ou n d e r s t a n dt h ei n n e rm e c h a n i s mo f k v m a p l a t f o r mw a sb u i h b a s e d o i lt h ec h a r a c t e r so fs e t - t o pb o x e s i tp r o v i d e dad e b u g g i n ge n v i r o n m e n tf o re m b e d e d a p p l i c a t i o n s t h es e c o n ds t e pw a sm o d i f i e dt h es o u r c ec o d eo fc l d c ,a n dp o r t i n gk v m c o r et oas e t t o pb o xw i t hl i m i t e dr e s o u r c e s a f t e rr e a d i n gt h eg u i d ep a p e r so fo sa n d h a r d w a r ed r i v e r so ft h es e t - t o pb o x ,m i d p sl c d u ip a r t - t h eg r a p h i c a li n t e r f a c e sw i t s i m p l e m e n t e d k e yw o r d :d ,m i d d l e w a r e ,s e t - t o pb o x ,k v m ,c l d c ,m i d p 硕士论文 k v m 在嵌入式系统上的移植研塞 a m s a o t a p i b 胤 c d c c l d c c l u t c v m d s m c c d v b d v b s i l 呻 g c c g n u h t m l m q j 2 e e j 2 s e j 2 m 匮 j a m j c c j d k j n j t 盯 珊 丁m x n i k 、m k d p k d w p l c d u i 瑚田【p n 皿p o c a p p p p s i 砒 r m s r i o s s d k 缩略语 a p p l i c a t i o nm a n a g e m e n ts y s t e m a h e a d o f ec o m p i l a t i o n a p p l i c a t i o np r 0 目猢i 1 1 9i n t e r f a c e b r o a d c a s tm a r k - u pl a n g u a g e c o n n e c t e dd e v i c ec o n f i g u r a t i o n c o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n c o l o rl o o k - u pt a b l e cv i r t u a lm a c h i n e d i g i t a ls t o r a g em e d i ac o m m a n d a n dc o n t r o l d i g i t a lv i d e ob r o a d c a s t i n g d i g i t a lv i d e ob r o a d c a s t i n g - s e r v i c ei n f o r m a t i o n f o u n d a t i o np r o f i l e g n u c o m p i l e rc o l l e c t i o n 删j 1 s n o t u n i x h y p e r t e x t m a r k - u p l a n g u a g e i n t e r r u p tr e q u e s t j a v a 2p l a t f o r m e n t e r p r i s ee d i t i o n j a v a :i m2p l a t f o r m , s t a n d a r de d i t i o n j a v a 2p l a t f o r m m i c r oe d i t i o n j a v aa p p l i c a t i o nm a n a g e m e n t j a v ac o d ec o m p a c t j a v ad e v e l o pk i t j u s t - i n t i m ec o m p i l a t i o n j a v an a t i v ei n t e r f a c e j a v ar u ne n v i r o n m e n t j a v av m u a lm a c h i n e kn a t i v ei n t e r f a c e 磁l ov m u a lm a c h i n e k d w pd e b u gp r o x y k v m d e b u gw i r ep r o t o c o l l i m i t e dc o n f i g u r a t i o nd e v i c eu s e ri n t e r f a c e m u l t i m e d i ah o m ep l a t f o r m m o b i l ei n f o r m a t i o nd e v i c ep r o f i l e o p e nc a b l ea p p l i c a t i o np l a t f o r m p e r s o n a lp r o f i l e p r o g r a ms p e c i a li n f o r m a t i o n r e f e r e n c ei m p l e m e n t a t i o n r e c o r dm a n a g e m e n ts y s t e m r e a lt i m eo p e r a t i o ns y s t e m s o f t w a r ed e v e l o p 趾 应用管理系统 预编译 应用程序编程接口 广播标记语言 连接设备配置 有限连接设备配置 色彩搜索表 c 虚拟机 数字存储媒体命令和控制扩展协议 数字视频广播 数字视频广播业务信息 基础简表 g n u 下的c 编译器集合 类似于u n i x 的免费软件计划 超文本标记语言 中断请求 j a v a 2 平台企业版 j a v a 2 平台标准版 j a v a 2 平台微型版 j a v a 应用程序管理 j a y 代码压缩 j a v a 开发工具包 即时编译 m 本地接口 j a v a 运行环境 j a v a 虚拟机 k v m 的本地接口 千字节虚拟机 k d w p 调试代理 k 调试电讯协议 限制配置设备用户接口 多媒体家庭平台 移动信息设备简表 开放式有线应用平台 个人简表 节目专用信息 参考实现 记录管理系统 实时操作系统 软件开发工具包 m 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:秀年6 只湖e l 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:刎年多月铷日 硕士论文k v m 在嵌入式系统上的移植研究 1 绪论 虽然我国的数字电视中间件技术规范尚未正式发布,但鉴于j a v a 技术本身 的先进性和开源、开放的特点,已经成为数字电视中间件的普遍选择。 1 1 数字电视中间件 数字电视的研究最早开始于日本,如今欧洲、美国和日本都已形成了自己的标准 体系,也分别确立了各自的中间件标准。 1 9 9 8 年在d v b 的倡导和资助下,欧洲成立了中间件标准工作组,致力于数字电视 通用家庭平台的研究,这就是后来的m h p ( 多媒体家庭平台) 标准。 2 0 0 2 年1 月3 日,美国c a b l e l a b s 公司宣布完成有线数字电视中间件标准o c a p 1 0 。o c a p1 0 很大程度上是基于m h p 标准,这为全球性交换应用和内容互操作性 的实现提供了基础。o c a p 的特点就是基于j a v a 技术的驱动引擎。 日本的a r i b 标准主要是基于b m l 和d s m c cd a t ac a r o u s e l ,并增加了j a v a s c r i p t 以便更好地编写交互式应用。 在2 0 0 3 年,我国确定了数字电视中间件技术规范标准的草案n 1 ,目前处于 审批阶段,不日即将发布。 数字电视中间件是数字电视业务系统中的一个重要软件平台,它提供了数字电视 业务应用的运行环境。运行环境包含了对数字电视的内容格式和传输协议的支持,并 为数字电视业务的应用提供软件接口。一般地说,中间件是指位于数字机顶盒内部介 于实时操作系统与应用程序之间的软件部分,它以应用程序接口( a p i ) 的形式存在,整 个a p i 集合被存储在数字机项盒的闪存中。 中间件系统的设计采用层次型架构,模块化组合,使得系统易于升级和扩展。在 目前几种数字电视中间件标准中,j a v a 虚拟机是必不可少的一个部分,是交互式应用 的基础。 1 2j a v a 技术体系 发展至今,j a v a 的内涵早已超出了编程语言的范畴,成为一个内容丰富的结构化 体系。j a v a 技术体系结构包括四个独立但相关的技术: ( 1 ) j a v a 程序设计语言:编程人员使用的面向对象的语言,符合人类的思考习惯; ( 2 ) j a v ac l a s s 文件格式:编译后获得的字节码文件,简洁便于传输且独立于平台; ( 3 ) j a v a 应用编程接d ( a p l ) - 已编写好的类库,体系成熟,提供了强大的功能; ( 4 ) j a v a 虚拟机:解释执行字节码,调用本地方法以实现具体的操作。 1 1 绪论硕士论文 1 2 1j a v a 程序设计语言 j a v a 语言源自于s u n 公司为网络环境设计的一种不受平台限制的面向对象的语 言o a k 。从o a k 开始,其定位就是简单的、面向对象的、稳定的、安全的、高效的、 与平台无关的、解释型的、多进程的、多态的语言。j a v a 的这些特性注定了其在网络 时代会大放异彩。 在语法上,j a v a 继承了c c + + 的一些语法,增强和细化了由c + + 使用的面向对象 的范例。取消了c c + + 中某些复杂的概念,如结构、指针、# d e f i n e 语句、全局变量、 多重继承和操作符重载等。创造性地启用了垃圾回收( g a r b a g ec o l l e c t ) 这一自动内 存管理机制【2 】,使开发者可以更专注于程序本身。 发展至今,以j a v a 为核心开发的一系列标准、接口、开发环境等已经构成了互 联网开发的一套完整的解决方案。 1 2 2j a v ac l a s s 文件格式 不同于c 语言将源程序编译为底层可以理解的机器码的模式,j a v a 源程序经j d k 编译后获得c l a s s 文件,将源程序中的信息全部储存于a s c i i 码格式的字节码( b y t e c o d e ) 中,因此c l a s s 的文件也被称为字节码文件。字节码实际上是一种由j a v a 运行系 统( 即j a v a 虚拟机) 执行的高度优化的指令集,从这个意义上说,j a v a 虚拟机实际 上被设计成一个字节码的解释工具。a s c i i 码的形式决定了c l a s s 文件可以被任何操 作系统接受,这样就解决了其跨平台的问题。 作为一个典型的面向对象的程序语言,j a v a 以类的方式实现其封装,这一概念反 映在源程序上就是代码以类的形式编写,反映在字节码上就是每一个文件都会被编译 成一个或多个字节码文件,每个字节码文件都包含一个类的数据常量、接口、方法等 信息。 文件格式中涉及到五种数组元素常量池、接口、域、方法和属性,通过这五 种数组元素记录程序信息。k v m 在读入类文件之后,按照上述的规范确定各个数据 的含义,在k v m 中建立运行时的数据结构,加载相应类,为执行做好前期准备。 1 2 3j a v a 应用编程接口c 舯d 和j a v a 虚拟机 j a v a a p i 和核心虚拟机一起构成了j a v a 程序的运行平台,其在j a v a 体系中的位 置如图1 2 3 1 所示。 j a v aa p i 是预先定义的一系列标准接口,这使c l a s s 文件可以根据字节码中的简 单信息从运行环境中库中获得其应进行的动作的完整信息。因为j a v a 采用面向对象 的技术,在开发之初,类库就作为不可或缺的一个部分参与到虚拟机和语言的设计中。 也正是因为类库的这一特点,j a v a 语言的a p i 相比较于其它语言,更加标准统一。 2 硕士论文k v m 在嵌入式系统上的移植研究 应用程序和小应用程序 j a v a 基础a p ij a v a 标准扩展a p i j a v a 基础类j a v a 标准扩展类 j a v a 虚拟机 移植接口 操作系统( + 适配器) 硬件 图1 2 3 1j a v a 技术体系结构说明图 j a v a 虚拟机可以理解为对字节码文件的解释执行机制,可以根据标准虚拟机规 范用软件或是用硬件来实现。 1 2 4j a v a 程序的编译运行 以一个简单j a v a 程序为例, 编译时环境 其编译传输执行过程如图1 2 4 1 所示。 图1 2 4 1j a v a 程序编译执行流程图 图1 2 4 1 中显示了编译时和运行时两种环境。编译时环境用于将开发者编写的 源程序( j a v a 文件) 通过j a v a 编译器编译为a s c i i 码形式的字节码文件( c l a s s 文件) 。 这样就获得了独立于平台且短小简洁的代码,可以通过本地或网络传递给运行时环 境。而在运行时环境中,j a v a 虚拟机则根据字节码文件调用运行时环境中的相关库类, 获得完整的信息并通过调用本地方法来执行程序。 由图1 2 3 1 可以看出,j a v a 虚拟机向下兼容各种操作系统和硬件基础,也就是 说j a v a 虚拟机除了提供对c l a s s 文件的解释之外,还要将这些解释转换成对各种系统 3 1 绪论硕士论文 的具体功能实现。这个转换就是图1 2 3 1 所示的移植界面层的内容,也是本论文研 究的重点。 1 3s u n 的技术体系 j a v a 技术最早由s u n 公司开发,虽然在虚拟机规范的指导下开发出了各种 j a v a 虚拟机,s u n 的j a v a 体系仍然占据主流地位。 s u n 公司针对不同的开发运行环境,提出了如图1 3 1 所示的三套方案:j 2 e e ( j a v a t m2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 、j 2 s e ( j a v a t m2p l a t f o r m ,s t a n d a r de d i t i o n ) 和 j 2 m e ( j a v a t m2p l a t f o r m ,m i c r oe d i t i o n ) ,分别针对企业用户,个人用户和小型设备。 图1 3 1s u n 配置方案 一 由图1 3 1 可知,j 2 e e 和j 2 s e 采用同一个j a v a 虚拟机m ,在此基础上配 置以不同的类库,构成各自的解决方案;而在j 2 m e 平台上,则存在两种配置:c d c ( c o n n e c 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 r m e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ) 。这 两种配置拥有各自的核心虚拟机,分别称之为c v m 和k v m ,都是经过裁剪而获得 的m 的功能子集。j v m 、c v m 和k v m 都可以统称为j a v a 虚拟机即j v m 。 s u n 公司将j 2 m e 定义为“一种以广泛的消费性产品为目标的、高度优化的j a v a 运行时环境 。通过裁剪掉使用率不高的类库、简化安全性检查等手段,获得资源要 求小并满足一定性能要求的小型和微型虚拟机。无疑,j 2 m e 的方案是机顶盒的最佳 选择。 j 2 m e 中的两种配置,针对不同的硬件条件,在性能上进一步细分。 c d c ( c o n n e c t e dd e v i c ec o n f i g u r a t i o n ) ,即连接设备配置,除核心虚拟机c v m 之外,还包括针对c v m 的核心类库和其上基础简表和个人基础简表两层配置。 c l d c ( c o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ) ,即连接受限的设备配置,除核 4 硕士论文k v m 在嵌入式系统上的移植研究 心虚拟机k v m 之外,还有其核心类库和移动信息设备简表m i d p ( m o b i l ei n f o r m a t i o n d e v i c ep r o f i l e ) 。k v m 即k i l o b y t ev i r t u a lm a c h i n e ,该虚拟机本身仅仅需要4 0 8 0 k b 内存,2 0 4 0 k b 动态内存( 堆) ,能够运行在1 6 位2 5 m h z 处理器上。k v m 是一个专 为蜂窝电话、寻呼机、p d a 、移用网络设备和家庭应用终端而设计的紧凑的,便携的 j a v a 虚拟机1 3 。 一个完整的配置方案的软件层次如图1 3 2 ,可以看出这是一个栈式的结构,由 下而上分别是操作系统,虚拟机,核心类库,简表和应用程序。对应于c l d c 配置 方案的层次,虚拟机就是k v m ,k v m 和其核心类库一起构成了c l d c 规范,而其 上的简表就是m i d p ,运行于简表上的应用程序就是m i d l e t s 。 p ”。”。1r 。1 1 | a p p l i c a t i o nll a p p l i c a t i o n 卜一m i d l e t s l c o r e 。a v ap r 闽r a 巾m i 咽 b 黑黧罂垫些坠剖lc l d 3 t k v m j - _ _ _ _ - _ _ r _ _ _ _ _ h _ o o o _ _ _ _ 一 l v i r t u a im a c h i n e尸 i o p = r a t i n gs y s t e m l 图1 3 2j 2 m e 两种配置方案的层次结构 简表一般是基础类库的功能扩展。例如m i d p 在k v m 的基础之上的,增加了 l c d u i ,n e t w o r k i n g ,p e r s i s t e n ts t o r a g e 等模块以支持更多功能。 1 4 研究内容及意义 作为数字电视接收终端的数字电视机顶盒,除了能给用户提供收看数字电视节目 的基本功能以外,更需要实现电子节目指南、视频点播、互动娱乐等功能,以满足用 户日益增长的需求。在实现这些功能时,最重要的是要考虑到电视节目应用跨硬件平 台的特性和传输的便利性。j a v a 语言具有跨平台、多进程、安全稳定、开发周期短 和便于传输等特性,成为中间件的最佳选择。这些特性的实现都依赖于位于其核心地 位的j a v a 虚拟机。 s u n 公司的j a v a 体系针对不同的硬件配置,开发了不同的虚拟机核心,成为j a v a 虚拟机中的中流砥柱,在开源计划实施以后,其应用前景也更加广阔。c l d c 是s u n 公司针对内存资源有限的目标设备如手机、数字电视机项盒等专门设计的一个j a v a 平龟包括k v m 和m i d p 两个标准,将其移植到机顶盒上就可以在有限的资源上实现 点播、互动娱乐等多种功能。 就已投入市场的机顶盒的反应来看,用户的意见主要集中在两个方面:价格过高 5 1 绪论 硕士论文 和操作复杂。大部分机项盒的价格已经接近传统电子管电视的价格,且每台机顶盒只 能用于一台模拟电视。对于大多数人尤其是老年人来说,过多的和不了解的选项增加 了操作难度。而c l d c ,能够在有限的资源上实现一个操作简单,功能强大的虚拟机, 从而使得机顶盒的总体性价比得到较大的提升。 1 5 论文结构 本论文包括六章,如下: 第一章:绪论,即本章,介绍本文的研究背景、研究内容和意义。 第二章:软硬件环境设置,重点介绍本文开发环境的搭建和涉及到的软硬件。 第三章:c l d c 的研究和移植,通过在多个编译器下编译研究k v m 获得充足的 经验,最终实现在目标平台上的运行,重点介绍移植步骤和遇到的重点难点。 第四章:m i d p 的研究及其图形部分的移植,首先研究其整体,并在v c 、g c c 下的编译运行,而后研究目标平台的硬件驱动和实时操作系统后移植其图形部分。 第五章:工作总结和下一步工作计划。 6 硕士论文 k v m 在嵌入式系统上的移植研究 2 软硬件环境搭建 本项目研究的步骤是首先在w i n d o w s 下对s u n 的开源代码进行编译调试和研究, 最终将开源代码移植到机顶盒环境中。因此前期准备工作就涉及到w i n d o w s 下编译运 行环境的设置和目标机顶盒的软硬件环境设置。 2 1w i n d o w s 下的编译运行环境 2 1 1 编译环境选择 在w i n d o w s 下安装两个编译器卅c c 和v c 。之所以在目标平台需要的编译 器之外再选择两个编译环境,有如下几个原因: 一是为学习源代码提供一个较容易的入门,毕竟源代码中已有针对不同平台如 w i n d o w , l i n u x ,s o l a r i s 编写了依赖于平台的代码,而且其编译平台和运行平台要求一 致,也大大降低了初学者的难度。 二是相同功能的代码段在不同的平台上的执行情况可以加深对编写者的意图的 理解。 三是v c 提供了一个经典的方便的调试环境,而机顶盒的交叉编译器的m a k e 工 具类似于g c c n ,两者都可作为借鉴。事实证明,这两个编译器在整个项目中的作用 大大超过预期。 2 1 2g c c 的环境安装 g c c 的运行环境有两个选择:l i n u x 操作系统和在w m d o w s 操作系统下安装 c y g w i n 。为便于操作,也出于交叉编译器对m a k e 环境的要求,c y g w i n 无疑是更好 的选择。 安装c y g w i n 时文本文件类型选择d o s t e x t ,需要注意的是环境变量的设置。 w m d o w s 中有自己的系统命令,有部分命令和g n u 的是重名的。虽然在c y g w i n 的 环境下执行系统命令不会误用w m d o w s 中的系统命令,但在使用交叉编译器时可能 产生问题。 对于以非可执行文件形式存在的c y g w m 的系统命令,交叉编译器无法调用,就 需要改写程序的m a k e f i l e 文件,以其它命令实现。 2 1 3 v c 的项目设置 在k v m 中有已建好的工程文件,需要注意的是,因为v c 下没有按照m a k e f i l e 编译的步骤,实际上很多必经的阶段被跳过了,工程也是不完整地。主要缺失的是在 7 2 软硬件环境措建 硕士论文 m a k e f i l e 文件中定义产生的两个文件r o m j a v a w i n c 和n a t i v e f u n c t i o n t a b l e 岛详情将 在下面的研究和移植部分阐述。 在m i d p 部分没有工程文件,可以将m i d p 中的源文件加入k v m 的工程中,需 要注意到某些文件的重叠可能对工程带来的影响。 此外,m a k e f i l e 文件中的某些设置也要在工程文件中设定,主要包括:库的设置, 开关选项的值,头文件搜索路径的设置,d e b u g 选项和优化选项。这些都位于p r o j e c t s e t t i n g 的c c + + 和l i n k 两张选项卡中。 2 1 4 运行环境的设置 c l d c 在w m d o w s 中可以直接在命令提示符中直接启用,而m 1 d p 则涉及到网 络部分。m i d p 的仿真器运行之后,需要通过网络从h t m l 网页下载应用程序,由此 产生了安装服务器的必要性。为方便起见,最终选择了t o m c a t 这个灵活小巧的服务 器进行本地安装,需要注意的是t o m c a t 默认端口是8 0 8 0 。 为提供下载页面,编写一个包含指向要下载的随和j a d 文件的h t m l 文档置于服 务器的发布目录下,以便m i d p 仿真器访问该页面并从中下载所需文档。图2 1 41 是分别通过正和m i d p 仿真器浏览编写好的h t m l 文件的效果图。 图21 4 1 通过m 和m i d p 仿真器访问下载页面的效果图 2 2 目标平台的编译运行环境 因为本项目选用的机顶盒资源有限,且虚拟机并不是唯一运行在机顶盒上的程 序,这样就要求j a v a 虚拟机尽可能地少占用系统资源。从这一要求出发,与项且提 供方协商后选择c l d c 和m i d p 方案。相比较于c v m 而言,k v m 更加简洁高效。 和其它嵌入式系统一样,该项目采用交叉编译技术,程序在p c 上编译成功后下 载到目标平台上执行,也就是说编译和运行的硬件环境分别为p c 机和机顶盒。 硕士论文 k v m 在嵌入式系统上的移植研究 2 2 i 编译和运行平台的硬件环境搭建 编译平台采用一般的p c 机即可。本项目中采用d e l l 的d i m e n s i o ne 5 2 0 , 3 0 0 g h z 的i n t e lp e n d u m ( r ) 4 双核c p u ,1 g 内存。 运行平台是银河集团生产的d v b - c 2 0 0 0 机顶盒,内存为3 2 m 的r a m ,拥有一 个串口,采用f u j i t s u 的m b 8 6 h 2 0 a 单功能芯片,操作系统选用hc o s u 。 因为需要从p c 上将已编译的文件下载到机顶盒中,f u j i s t u 为其芯片提供了一个 配套下载器,可以通过一个u s b 口或串口与p c 相连。另外为显示程序在机项盒上 的运行结果,配备了一台电视机。 硬件环境的结构如图2 2 1 1 所示,主体由p c 机、电视机和机顶盒组成,p c 通 过一根u s b 连接线和下载器连接机项盒用于下载编译好的程序,机项盒通过一根 u s b 串口转换线连接到p c 帆用于返回程序执行中产生的打印信息,机项盒通过a v 端口连接电视机以显示程序运行结果。 机域船 图2 2 1 1 编译运行平台的硬件环境模拟圈 在该环境中整个编译运行调试流程如下:在p c 机上w m d o w 环境下将源文件编 译连接成为o u t 文件,通过下载器下载到机顶盒中,使用f u j i t s u 提供的s e e c o d e 工具 命令软件运行,将结果显示到与机顶盒相连的电视上,同时将运行过程中产生的打印 信息通过机项盒的串口返回到p c 的终端上以获缛调试所需要的信息。在整个过程中 p c 上的调试软件负责监控整个下载运行过程。实际的硬件环境如图2 21 2 所示。 图2 2 1 2 编译运行平台的硬件环境实况图 2 软硬件环境搭建 硕士论文 2 2 2 运行平台软件环境 f u j i t s u 以库的形式为其芯片提供了丰富的a p i ,主要包括操作系统、驱动等库, 另外提供了程序下载、开发调试包等工具。操作系统和驱动在整个运行平台软件环境 中的位置如图2 2 2 1 所示。 图2 2 2 1f u j i t s u 平台的软件层次抽象图 操作系统统称为r t o s ( r e a lt i m eo p e r a t i o ns y s t e m ) ,实际上f u j i t s u 为其芯片提 供了三种小型实时操作系统( r t o s ) :u c o s ( v 2 5 2 ) 、n u c l e u s p l u s ( v 1 1 1 2 ) 和 f a m o s ( v 1 0 ) 垮j 。根据项目提供者的要求,采用u c o s 系统( 即uc o s ) 。该操作 系统具有内核小,运行稳定的特点,是一个典型的实时系统【6 】。目前业界采用的机顶 盒嵌入式操作系统主要有ul i n u x 和意法半导体公司的o s 2 0 。与这两个操作系统相 比,u c o s 没有文件系统和目录层次,其它功能也比较薄弱,这为之后的移植工作带 来了很大的难度。 作为操作系统,r t o s 位于硬件和应用程序之间,可以调用驱动库和中间件库。 无论选择哪个操作系统核心,r t o s 对上层软件提供了统一的接口,对硬件、驱动和 中间件的库则通过适配器进行调用。也就是说,可以在程序中使用相关库中的函数, 在运行平台上这些函数可以从库中获得对硬件、驱动等的操作。 硬件库是最底层的软件,通过对所有寄存器和某寄存器内的比特组的访问提供了 软件对硬件的调用。驱动库主要包括音频输出驱动,音频解码驱动,字体驱动,闪存 驱动,1 2 c 驱动等,主要用于对低层硬件的初始化和功能调用。中间件主要包括d e b u g 驱动,绘图,字体驱动,d v b 字幕,d v b s i 引擎,p s i 引擎等。此外还有一些第三 方软件如p n g 库,z 库,图文电视解码器,图形u s b 栈,t a r a 系统等,也提供了 如闪存工具,应用程序上传和执行工具,g n us d k ,字体转换等工具。 1 0 硕士论文 k v m 在嵌入式系统上的移植研究 2 2 3 编译平台软件环境 编译平台的操作系统采用的是w i n d o w s x p 。 在编译器方面,f u j i t s u 提供了一个包括编译器,连接器,调试器,c 库和其他 s d k 配置工具的专用的开发包s d k ( s o f t w a r e d e v e l o p m e n t k i t ) ,采用了m e t a w a r e 的一个高性能的交叉编译工具包a r c - m e t a d e v e l o p e rd e v e l o p m e n tt o o ls t a t e | 7 ,在 此基础上配置了m a k e 环境坤1 、基于g n u 的软件开发包嘲和相应的编程接口【l 唧。 m e , a w a r e 的编译器类似于g c c 编译器,会使用g n u 的一些系统命令,因此在 安装编译器前需要保证c y g w i a 的安装,并设定相关系统变量从而使用b a s hs h e l l 来 代替w i n d o w s 下的命令【1 l 】。此外,还需要在p c 上安装u s bd e b u g 驱动来支持通过下 载器发送调试命令的功能【l ”,下载器与p c 的连接支持u s b 口和串口两种模式,本 项目中使用一根u s b 连接线连接下载器u s b 口与p c 的u s b 口。 前文提及,项目通过在程序中添加打印信息来实现调试的目的,这就要求能够从 目标平台获得打印信息并显示。打印信息从机顶盒的串口输出,在p c 上安装一个迷 你终端m i n i c o m m 来获取打印信息并显示于p c 屏幕上。如图2 23 1 将该程序的终 端模式设置为通过串行口连接,并为与机顶盒连接的端口设置波特率等信息。 醚燮瑟鬟鏊霆慧羹錾遂釜彗夔篓震篓霆麓萋篓鬻 图2 23 1 迷你终端的设置 此外,由于编译过程中需要适用将j a v a 源程序编译为c l a s s 文件和运行c l a s s 文 件的功能,需要j a v a 的编译环境和运行环境,因此需要安装j d k ( j a v ad e v e l o pk i t ) 。 需要注意的是设置y d k 的环境变量,以便在m a k e 环境中方便地使用。 2 2 4 用户程序 应用程序是指开发人员编写的运行于机顶盒环境中的程序。在图2 2 4 1 中可以 看出,应用程序需要通过定制的用户软件来获得对中间件和硬件驱动的a p i 的支持。 而用户软件就包括中间件系统和驱动系统,这也就意味着用户软件中需要有对这些硬 件的操作。事实上在f u j i t u s 提供的范例程序及其指导中可以看到,在调用这些低层 1 1 2 软硬件环境搭建 硕士论文 操作之前必须进行相关初始化。 i a p p l i c a t i o n l 上土 c u s t o m e rs o t t w a m l m i t l d t e w a r e l 一r 。r l d r i v e r s l j一? “8 二二一:= :二二= 二:二_ :二= 二二击- = 。一= j = 二二= :二二二= 二一m l m k - 卜,。,。,m p e gd e c o d e rh a r d w a r e :7 ,、l 图2 2 4 1 中间件在f u j i t s u 软件平台上的位置 期望的j a v a 虚拟机应当是一个在机顶盒的软件运行过程中的任何阶段都可以调 用的程序,在某种程度上独立于应用程序的一个软件。事实上,在编译平台上应用程 序将被编译成为一个o u t 文件下载到机顶盒上运行。将虚拟机编译成为一个独立 的o u t 文件无疑是不可取的,因为归根到底虚拟机是一个中间件而非应用程序本身。 不同于在w i n d o w s 和l i n u x 下虚拟机都被编译连接成为一个独立的可执行文件, 如果将其编译成一个o u t 文件,那么参数的传入,硬件和驱动的初始化都成为问题, 且虚拟机本身并没有自启动功能,因此将虚拟机编译成一个o u t 文件的一部分的思路 不可取。 一个可行的解决方案就是将k v m 编译成库,在需要时于主函数中进行调用。 在本项目中为方便起见,使用了f u j i t s u 的s m a r t s o f l 作为用户软件,其中包括编 译环境和一些诸如驱动、硬件之类的库。s m a r t s o f t 提供了一些应用程序,其中d e m o 程序主要用于展示f u j i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职第一学年(工程造价)工程招投标实训试题及答案
- 2025年中职(烹饪工艺与营养)冷菜制作技艺试题及答案
- 2025年大学园艺生产管理应用(应用技术)试题及答案
- 2025年高职(助产)伦理操作试题及答案
- 2025年大学教育技术学(教学技术)试题及答案
- 职业规划阶梯模型
- 2025贵州康体旅投发展有限公司实习生招聘2人备考题库及参考答案详解一套
- 上海市莘松莘城明星康城师培等联考2025-2026学年上学期七年级数学期末试题(含答案)
- 湖南省株洲市天元区2025-2026学年八年级上学期期末考试生物试题(含答案)
- 广东省茂名市龙岭学校2025-2026学年九年级上学期1月期末历史试题
- 高考物理一轮复习重难点逐个突破专题71旋转圆模型放缩圆模型平移圆模型(原卷版+解析)
- 内科质控会议管理制度
- 电气防火防爆培训课件
- 彝族文化和幼儿园课程结合的研究获奖科研报告
- 空调安装免责协议
- 湖北省襄樊市樊城区2023-2024学年数学四年级第一学期期末质量检测试题含答案
- 新北师大版八年级数学下册导学案(全册)
- 常用实验室检查血常规演示文稿
- cimatron紫藤教程系列gpp2运行逻辑及block说明
- GB/T 32473-2016凝结水精处理用离子交换树脂
- CB/T 1233-1994水面舰船螺旋桨脉动压力测量规程
评论
0/150
提交评论