(计算机科学与技术专业论文)基于eclipse的嵌入式软件开发平台若干关键技术研究.pdf_第1页
(计算机科学与技术专业论文)基于eclipse的嵌入式软件开发平台若干关键技术研究.pdf_第2页
(计算机科学与技术专业论文)基于eclipse的嵌入式软件开发平台若干关键技术研究.pdf_第3页
(计算机科学与技术专业论文)基于eclipse的嵌入式软件开发平台若干关键技术研究.pdf_第4页
(计算机科学与技术专业论文)基于eclipse的嵌入式软件开发平台若干关键技术研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

浙江大学硕士学位论文摘要 摘要 随着嵌入式系统在通信、网络设施、航空、航海和航天等领域的大范围应用, 需要功能强大的软件开发平台辅助嵌入式应用软件的开发。一个好的软件开发平 台是衡量软件开发环境优劣的重要因素,能够很大程度上提高嵌入式开发效率。 当前,国内外都在发展各种集成嵌入式开发平台,因此,深入研究嵌入式环境下 的软件开发平台具有重要的意义。 本文第一部分简要介绍了嵌入式软件开发平台的概念,特点和发展趋势,分 别列举了几种基于e c i i p 的软件开发平台工具。 第二部分,详细地介绍了e c l i p 平台的结构和特性,根据嵌入式软件开发平 台和传统开发平台上的不同点,深入研究在e c l i p s e 上实现嵌入式开发所需的功能 点。 第三部分,为实现对嵌入式工程的自动管理支持,深入分析了c d t 工程管 理自动化模块,对该模块配置文件的各个层次结点进行了细致地分析,在此基础 提出了适应项目需要的工程管理解决办法。 第四部分,针对系统对内存配置的特殊要求,结合第三部分对工程自动管理 功能的分析,实现了友好的内存配置界面。另外对于其他开发工具的集成,文中 提出了两种方法,并使用j n i 方式集成了一系列监控工具。 第五部分,对s r o s 的远程调试功能进行了改进,增加了对多任务调试的支 持,并设计了相关通讯协议和指令。 最后,对嵌入式软件开发平台的相关研究与实践进行了总结,对嵌入式软件 开发平台的未来发展进行了展望。 关键词嵌入式,集成开发平台,e c l i p s e 浙江大学硕士学位论文 a b s t r a c t w i t he m b e d d o d 姆s c m su s i n gw i d e l yi r ic o m m u n i c a t i o n 。n e i :w o r i ( i n 疗孤栅c 缸r 岛 a v 嘶o n ,m a r ,n e 锄da 盱。研 a 矗e l d s ,w cn e c dap o w 响i 戳) f b a r ed e v c l o p n l e i n p l 黼脚s u p 叫i n g 啪b e d d e d 印p j i c a l j s o f h v a r ed c v e l 叩m 朋t ag o o ds o f h v a r e d e v e l o p m e n tp l a “b 咖 i sam a i o rm e a s u 他o fq u a l i t ys o f t w a r ed e v c i 叩m e n t e n v i r o n m e n t ,w h i c hc 舯i m p v et h ee f f i c i e n c yo f e m b e d d e dd e v e l o p m e n l a tp r e s e n t , b o t l la th o m ea n da b r o a da d e v e l d p j n ga l l “n d so fi n t e g l _ a l c d 嘲b b d d e dd e v e l o p r n e n t p l 缅哪【) c p t l ls t u d yo f t h ee n v i r o 岫e n ts o f t w a 豫d e v e l o p m e n tp l a d o 咖o f e m b e d d e d s y 呶釉i s0 fg r e a ts i 鲈m c 锄c e t h i sm e s i sp r e s 即t sm ec o n c e p ta n dt h ef c a l i ,r 嚣o f 啪b e d d e ds o r w a r e d e v e l o p m e n tp l a t f b 咖,a r i di n 缸谢u c e ss o m ep o p u l a rs o 脚a md c v e l o p m e n tp l a t f b 咖i n t l l cd o m e s t i ca n da b o 和np r e s e n l 3 也ee k l 岫p l a t f o m lw i n lt h e 曲m c t i l r a l c h a “l c t e r i s t i c s s u b s e q u e n t l y c o r d i n gt o 恤ed i f f b r e n c eb e 栅e e nt i l e 啪b e d d e ds o f b ,a r e d e v e l o p m e mp l a t f b ma n dt h e t r a d 衔o n a ld e v e l o p m 眦p l a t f b 嘲,t h i sm e s i sg t i l d i e sm e s p e c i a lf 妇c t i o n a jp o i mm a lr e q u i r e do n 如ee c l i p s ep l a 咖f b r 铷p p o r t i n g e m b e d d i n gs y s 蛐 i no r d e rt os u p p a r ta u t o m a t i cp r o i e c tm a n a g c m e i 毗悖a u m o ra n a l y z e st h ec d t m a n a g e db u i l d e rs y s t e l i l 醐de v e r y1 1 0 d eo f 伽em o d u l ec o n f i g u 砒i o nf i l e ,b a s e d 蚰 w h i c ht h ef i n a is o i u t i o ni sb u i i t a g a i n s ts p e c i a lr c q u i 代i n c n t so fm e m o r yc o n f i g u 瑚【t i o n ,c o m b i n e dw i t i im e p r e v i o u sa f l a l y s i so fa u t o m a t i cp r o j e c tm 觚8 9 e f n e n a 衔e n d l yi n 捆f a c eo fm e m o r y c o n f i 则慨t i o ni si m p l e r n e n t c d i na d d i t i o n ,t h i sm e s i sp r e s e n t sm om e t h o d sf 研t 0 i n t e g r a t i n gs o m eo t l l e rd c v e l o p m e n tt o o l s 锄di m e 乎砒c das 嘶e so fm o n i 州n gt o o l s w i t l lj n im e t l l o d t h i st i e s i ss u p p o s e sa ni m p r o v e ds o i l l t i o no n 廿l ed e b u g g c ro f 廿l i se m b e d d e d s 0 胁a r ed c v e l o p m c n tp l a 怕锄咖a tm a l 【e si ts u p p o nm u l t i - m r c a d i n gd e b u g g i n g 彻 r 啪o t ed e b u g f i n a i i y ,t h i st h e s i ss u m m 盯i z e se m b e d d e ds o f t w a r cd c v e l o p m e n tp l a t f o r mr c i a t e d f c 鲫c h 鲫l dp r a n i c e p f o s p e c t st l l e 如n | r ed “e l o 讲嗍l to f 啪b e d d e ds o f h a r e d e v e l o p f r 他n tp l a 盯b 咖 k e y w o r d s e 脚b e d d e ds y s 蛔岫,i n t e g 糟t e dd e v e l o p m 蛐te n v i m n m e n t ,e d i p 擘e d e b u g 浙江大学硕士学位论文 图目录 图2 1 系统总体设计。 图目录 图2 - 2e c l i p 辩组织结构 图2 3e c l i p s e 插件开发流程 图3 1 工程编译流程。 图3 2c d t 受管编译系统概览 图3 3 受管编译系统模型 图3 - 4 两种p r o j 嘲t y p c 图3 - 5 c o n f i g u r a t o n 6 图3 - 6 微模式d e b u g 的t o o l c h a i l l 图3 7 0 p t i o nc a 魄r o r y 图4 1 新建工程内存模式类型选择 图4 - 2 新建工程内存模式类型选择 图4 - 3 命令行方式集成 图4 - 4 j n i 方式集成 图4 5 州l 方式集成的插件开发流程 图4 - 6 代码上传工具界面设计 图4 7 内存查看,修改工具界面设计 图4 - 8 内存映像下载工具界面设计 图4 9 端口读取,写入工具界面设计 图4 1 0 寄存器查看修改工具界面设计 图5 1 任务列表更新流程 图5 2 任务信息查询流程 图5 3 多任务切换流程 m m体如射扔m凹”弛弭巧弘铂撕铊铊奶 浙江大学硕士学位论文表目录 表3 1 受管编译系统相关概念 表3 2p 炳e c t 聊e 数据结构 表3 3p 叫e c t 的数据结构 表目录 1 8 2 l 2 2 2 2表3 - 4 c o n f i g u m t i o n 的数据结构 表3 5 1 c h a i n 的数据结构 表3 6 l 的数据结构 表3 - 7 0 p t i o n 的数据结构 表5 1 多任务调试情景分析 2 5 2 6 浙江大学硕士学位论文 第1 章绪论 第1 章绪论 1 1 嵌入式软件开发平台 1 1 1 嵌入式软件开发平台特点 嵌入式软件开发与传统的桌面软件系统开发相比有一些显著不同的特点,它 一般需要一个交叉编译和调试环境,即编辑和编译软件在主机上进行f 比如主机使 用m n d o w s 操作系统) ,编译好的软件模块需要下载到目标机上运行( 比如一个运 行v x w o r k s 操作系统的目标机或虚拟机1 ,主机和目标机建立起通信连接,并传 输调试命令和数据。因此嵌入式软件开发平台和传统的桌面软件开发平台相比, 需要额外的特性支持。【1 1 嵌入式软件平台开发常常涉及多种c p u 及操作系统,针对不同的目标环境, 开发平台要做到普遍适应,复杂性可想而知。 1 1 2 嵌入式软件开发平台发展现状 作为现代计算机技术两大分支之一的嵌入式控制系统已经渗透到每个人身 边,成为继p c 机之后信息处理的另一大主要工具,并且将被广泛用到工业、交 通、网络、通信、军事、医疗、银行、智能家电等行业。伴随着嵌入式系统的广 泛应用,嵌入式软件开发平台也正在逐步发展。伫j ( 3 j e c l i d 辩平台目前作为一种编译器、编辑器、调试器以及其它软件开发工具的 插件,正在嵌入式领域获得发展动力【4 1 。风河系统公司已经将其i d e 从专有用户 接口和平台转移到e c l i n 。a c c c l e 删叫科技、a l t 啪、1 1 和x i l i n x 等许多公司也 将e c “n 平台作为自身工具的基础。诺基亚宣称将引领开发面向移动j 8 v a 开发 工具的e c l i d 框架,在为移动环境标准提供完整j a v a 支持工具的努力中贡献自 己的工具。闭 目前嵌入式平台的软件开发平台种类繁多: 风河公司推出的w o r l 翎c h2 o 美国风河公司推出的w o r l ( b e n c h2 o 是其最新的嵌入式软件开发平台产品, 由于采用了e c l i p 软件框架结构从而使整个系统更加开放和易于扩展。此外, 风河公司还对e c j i p 做了多方面的增强,从而显著提高了系统的性能。例如 、出b e n c h 实现了异步接口功能,需要长时间运行的任务可以在后台运行,与此 浙江大学硕士学位论文第1 章绪论 同时还能继续接收开发人员的调试请求。这样不至于使开发人员做长时间的等 待:另外,w b d 【b e n c h 还优化了对目标机数据的请求机制,即系统只检索在集成 开发环境当前视图中所需要的少量数据,看不见的数据则不向目标机索取,这样 就大大提高了交叉调试时系统的响应速度并减少了系统负荷。嘲 n i o s i l 集成开发环境 n i o si i 集成开发环境( i d e ) 是n i o s 系列嵌入式处理器的基本软件开发工具。 所有软件开发任务都可以n j o si i 脱下完成,包括编辑,编译和调试程序。n i o s i d e 提供了一个统一的开发平台,用于所有n i o s 处理器系统。仅仅通过一台 p c 机、一片a l t c r a 的f p g a 以及一根几a g 下载电缆,软件开发人员就能够往 n i o si i 处理器系统写入程序以及和n i o s i i 处理器系统进行通讯。n i o si ii d e 基于 开放式的、可扩展e c l i p s e i d ep f o i e c t 工程以及e c l i p s ec c + + 开发工具( c d t ) 工程。 m o m e n t i c s 开发工具套件 o n xm o m e n t i c s 开发工具套件提供了功能丰富、易于使用、高度集成的开发 工具以及大量的板级支持包( b s p ) ,可以大大缩短开发周期。q n xm o m e n t j c s 开发工具套件提供的集成开发环境( i d e ) 建立在e c l i d 的可扩展的框架结构上, 所有工具都使用同样的用户界面,并且可以无缝地加入第三方的开发工具。最为 重要的是,0 n xm o m e n t i c s 开发工具套件为用户提供的更多的选择:满足不同的 项目要求的目标机系统( x 8 6 ,m i p s ,p o w c r p c ,a r m ,s 昀n g a r m ,x s c a l e , s h 4 ) ,开发人员熟悉的编程语言( c ,c + + ,e m b e d d c dc + + ,j a v a ) 和开发环境 ( w i n d o w s ,s o l a r i s ,q n xn e u 嘶n o ) 。 s o 觚:s o l e 开发环境 a c 倒公司针对该公司的c o r e l 旧7 推出免费的软件开发环境s o 肛。伽s o l e , s o f t c o n l e 以e c l 岫集成设计环境和a r m 7g n u 编译器和调试工具为基础,为 编写和调试c o r c m 旷7 软件编程提供了具成本效益的可靠手段,让设计人员基于 a c t c l 的单芯片f l a s hf p g a 快速而简易地开发嵌入式系统应用程序。 x i i i n xp l a 晒咖s m d i o 软件开发套件 x i l i n xe d k9 。1 最新版本,嵌入式开发套件f e d k ) 是用于设计嵌入式可编程系 统的全面的解决方案。x i l i n x 嵌入式开发套件( e d k ) v 9 1 引进了新的器件支持, 以及各种p l a 怕咖s n j d i o ( x p s ) 嵌入式工具套件的增强和改进。p s 软件开发 套件( s d k ) 是一种基于e c i i d 的集成开发环境( i d e ) 。该接口用于开发和调 试针对x i l i l l 】处理器的应用代码。 2 浙江大学硕士学位论文第l 章绪论 1 2e c p s e 开发平台 1 2 1e c l i p 开发平台概述 e c l i p 辩是一个开放源代码的、基于j a v a 的可扩展开发平台。r 7 j 就其本身而言, 它只是一个框架和一组服务,用于通过插件组件构建开发环境。而且,e c l i d 附 带的一个标准插件集,包括j a v a 开发工具( j a v ad “e i o d m e m1 b o i s ,j d t ) 和插 件开发环境( p l u 争i nd e v c l o p m 明te n v 的舢明“p d e ) 。 e c l i p 辩最初由i b m 开发,目的是成为一个为所有i b m 开发工具产品提供支 持的平台,以避免对基础结构中的最通用元素的重复。这将使得用户在不同平台 之间的切换的体验更加愉快。 e c i i p 目前是一个开放源代码的软件,由e c l 噼基金会管理,该基金会是一个独立的 非盈利机构 1 2 2e c l i p s e 开发平台特点 e c l i p 不局限于某种具体语言的开发环境,它作为一个所有开发工具共用的 基础平台存在。为了成为一个普适的开发环境,e c i i p 提供了一套插件开发环境 ( p l u g - i nd e v c l o p m 锄te n v i r o n m t p d e ) ,p d e 允许开发者构建与e c l i p 环 境无缝集成的工具。嘲 e c l i p s e 包含类似于“总线”的体系结构,e c l i p 的核心部分口l a t f 0 哪r 岫t i m e ) 类似于一条“即插即用”的“总线”,它提供了许多的“插槽 f 扩展点:e x t 印s i o n p o i n t ) 。其余的部分都可看成类似于外部设备的“插件”( p l u g 抽) ,可随时加载和 卸载。更为灵活的是每个插件又提供了“插槽”可继续安装其他的插件。这个插件 系统遵照o s g i 设计实现。 0 s g i ( o p e ns e n ,沁g a t c w a yi n i t i a t i v e ) 是一个为家用硬件设备的远程互访建 立的一个开放的规范。它包括构建开放的可交付网络服务的各方面。 1 3 论文研究背景和内容 目前,航天型号实时软件的开发基本采用传统的、以汇编语言直接针对硬件 编程的方式进行,存在编程效率不高、调试维护困难、软件可靠性难以保证、软 件开发周期长,以及软件难以移植等问题。随着型号系统中任务数量、规模,以 及复杂度的不断递增,上述问题将更为突出。解决之路在于使用高级语言编程, 运用集成开发环境作为研发平台,从而提高研发人员的研发效率。针对航天型号 浙江大学硕士学位论文第1 章绪论 软件的研发,若直接使用国外的商用软件,一方面会形成对国外软件的依赖,更 重要的是还可能存在着安全隐患( 比如编译器逻辑炸弹等威胁) ,因此,研究开 发具有国际先进水平的拥有自主知识产权的嵌入式软件集成开发平台,是航天事 业发展的必然需求,也是摆脱国外产品垄断、维护国家安全利益的唯一途径。 本论文属于某航天嵌入式软件集成开发平台项目研究内容的一部分。项目的 总体目标是:针对航天系统的领域需求,以主流c p u 为硬件平台,设计并实现一 套嵌入式软件集成开发环境,供航天型号软件研发使用。应用本项目的研究成果 可以帮助航天设计领域的技术人员从传统的裸机编程方式逐步过渡到使用高级 语言、软件库及集成开发环境的方式。该项目的研究成果将对缩短航天型号的研 制周期,提高产品的性能、安全性与可靠性起到重大促进作用,加强我国在航天 及相关领域的研发能力。 1 4 论文组织结构 论文共分为六章。 第一章“绪论”,阐述了e c l i d 平台概念和特点,以及嵌入式软件开发平台 与传统桌面软件开发平台的不同。对国外知名嵌入式软件开发平台产品做了简单 介绍。最后介绍了论文的研究背景和论文的组织结构。 第二章“集成软件开发平台的结构分析”,介绍了e c l i d 的总体系统结构, 以及e c l i p 最大的特性:插件框架结构。介绍了o s g i 框架在e c l i p 中的应用。 同时对e c l i 口的一个重要扩展c d t 做了介绍和分析。 第三章“工程管理自动化设计与实现”,为实现对嵌入式工程的自动管理支 持,深入分析了c d t 工程管理自动化模块,对该模块配置文件的各个层次结点 进行了细致地分析,在此基础提出了适应项目需要的工程管理解决办法。 第四章“内存模式配置与监控工具实现”,针对系统对内存配置的特殊要求, 结合第三部分对工程自动管理功能的分析,实现了友好的内存配置界面。另外对 于其他开发工具的集成,文中提出了两种方法,并使用刷i 方式集成了一系列监 控工具。 第五章“多任务远程调试支持关键技术”,对s r o s 的远程调试功能进行了 改进,增加了对多任务调试的支持,并设计了相关通讯协议和指令。 第六章。总结和展望”,对全文的工作进行总结,对进一步的工作进行展望。 浙江大学硕士学位论文第l 章绪论 1 5 本章小结 本章对嵌入式软件开发平台的特点及其发展现状做了简介,简单介绍了 e c l i p 体系结构。本章最后介绍了本文的研究背景以及本论文的组织结构。 浙江大学硕士学位论文第2 章集成软件开发平台的结构分析 第2 章集成软件开发平台的结构分析 2 1 集成开发环境软件系统总体设计 图2 1 系统总体设计 如上图所示,集成开发环境软件系统分为以下两大组成部分:开发宿主机端 ( h q s t ) ,集成开发环境软件平台;开发目标机端( t a 豫c t ) ,集成开发环境监控程 序。开发宿主机端程序全部运行在w i n d o w sx p 2 0 0 0 平台上,包含以下几个主 要分系统:集成开发平台分系统( i d p ) ;开发工具链分系统( d t c ) 。 其中开发目标机端( t 耵哪) 运行于两种模式下。第一种基于s r o s 操作系 统,目标机端运行s r o s 操作系统,通过串口与开发宿主机端( h o s t ) 通信,并 且s r o s 中存在任务级调试代理。第二种模式无操作系统的存在,调试代理通过 插桩( s m b ) 的方式对程序进行调试。 本文主要涉及其中的集成开发平台分系统( i d p ) 。具体需要实现的功能包括: 工程管理、文件管理、代码编辑器、选项配置、系统帮助等。同时,还提供一系 6 浙江大学碗士学位论文第2 章集成软件开发平台的结构分析 列可订制的接口功能,为开发工具链分系统的嵌入提供支持。并且结合已有工具, 提供各种附加功能,包括:提供符合相应安全标准的c 语言源代码检查工具、集 成现有的软件测试和仿真工具。 集成开发平台分系统采用基于开放源码的e c l i p 辩开发环境平台,配合c d t 插件提供的c 语言开发支持,针对需求进行开发和定制,主要涉及的工作包括: 工程管理功能的开发、各种选项配置功能的开发、定义并完成各类接口。 2 2e c l i p s e 平台体系结构 e c l i p 平台是一个具有一组强大服务的框架,这些服务支持插件,如j d t 、 c d t 、插件开发环境( p d e ) 等。它由几个主要的部分构成:平台运行库( p l a 响n n r u n t i m e ) 、工作间( w b f i p e ) 、工作台( w o r l 【b e n c h ) 、团队支持( t e 锄) 和帮 助( h e l p ) 。川结构如下图: 图2 2e c l i c 组织结构 平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的 注册表信息。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插 件。除了内核外,其他每样东西都是作为插件来实现的。 工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的 文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信 息,比如文件创建、删除或更改。 工作台为e c i i d 提供用户界面。它是使用标准窗口工具包( s w t ) 和一个 更高级的a p i ( j f a c c ) 来构建的;s 、v t 是j a v a 的s w i n 以、v tg u ia p i 的非标 7 浙江大学硕士学位论文 第2 章集成软件开发平台的结构分析 准替代者,j f a c c 则建立在s w t 基础上,提供用户界面组件。s w t 已被证明是 e d i p s e 最具争议的部分。s w t 比s w i l l g 或s w r 更紧密地映射到底层操作系 统的本机图形功能,这不仅使得s w t 更快速,而且使得j a v a 程序具有更像本 机应用程序的外观和感觉。使用这个新的g u i a p i 可能会限制e c l i p 工作台的 可移植性,不过针对大多数流行操作系统的s w t 移植版本已经可用。e c l 岫对 s w t 的使用只会影响e c i i p 自身的可移植性使用e c l i p s e 构建的任何 j a v a 应用程序都不会受到影响,除非它们使用s w t 而不是使用s w i n g a w t 。 团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以 允许用户与所使用的任何版本控制系统( 如果有的话) 交互。大多数插件都不需 要与团队支持组件交互,除非它们提供版本控制服务。 帮助组件具有与e c i i p 平台本身相当的可扩展能力。与插件向e c i i p 添 加功能相同,帮助提供一个附加的导航结构,允许工具以h t m l 文件的形式添 加文档。 2 3e c l i p s e 插件体系结构 2 3 1 插件体系结构概述 整个e c l i p 采用平台加插件体系结构,e c l i p p l a 哟啪r u m i m e 作为整个系 统的基础,是一个专门为插件提供的运行时容器,其本身不具备任何面向用户的 业务功能。就像一个常见的j 2 髓容器,如果没有应用,那么也就是一个纯粹的 中问件。同样如果没有插件,e c l i p 辩平台的运行时就是一个纯粹的容器。所有的 业务功能,都是封装在e c l i p 的插件中的,尽管现在e c l i p r c p 的开发炙手可 热,但也不能脱离插件而单独存在。e c i i p s c 中的w 0 r l :s p a c e ,t e a m ,j d t ( j a v a 开发工具包) 和p d e ( 插件开发环境) 本身就是用插件来实现的。由于e c l i d 采用了完全开放的扩展方式,你可以自由地实现你想要的功能。阴 从e d i p s e 3 o 以后,e c l i p 就采用o s g i 来作为其插件体系结构实现的基础。 o s g i 是一套开放的标准,e c l j p 辩引入o s g i 主要是考虑网络范围内的互操作性。 每个e c l i p 簖的插件都是一个o s g i 的模块,e c l i p 的平台核心就是一个o s g j 的 参考实现。在最近的版本中,o s g i 的参考实现已经从内核中被剥离,形成了一 个新的子项目:e a u m o x 柚o s g i 细m e w o r k 。 一个o s g i 模块最重要的就是b u f l d l e 和s e r v i c e ,我们可以认为b l l l l d i e 是一 种插件管理器,主要是通过b l l l l d l e a c t i v a l o r 管理模块的生命周期,而s e r v i c e 则 是这个模块可暴露对外的服务对象。这里体现了o s g i 和传统的p l u g 岫f r 啪e w o r k 8 浙江大学硕士学位论文第2 章集成软件开发平台的结构分析 不同的一个地方,管理和静态结构分开,每个b 明d j e 拥有自己的c l 邪s l o a d c r 以 及c o n t e 加通过c 鲫t e m 可进行服务的注册,卸载等,这些操作都会通过事件机 制广播给相应的其他的b 硼d l e ;一般来说都为通过在b u n d l e 中编写初始需要注 册的服务的方法来完成b u n d l e 可供外部使用的服务的暴露功能。 启动时e c l i p 辩核心会检查所有的插件并注册,但是直到被调用,该插件的 才会被实例化,这也就是我们常说的懒加载( l a z yl 0 a d ) 。e c “p 辩启动后,插件 处于等待激活和被调用状态,由程序激活插件的功能,或用户输入会造成插件的 初始化的事件等,从而实现预定的功能,在e c l i n s e 的世界中,所有的功能都是通 过插件来实现的,你的应用程序不过是e c l i p 平台运行时和你的插件的集合。 2 3 2e c l i p s e 与o s g i 框架 o s g i 是服务平台的规范。e c l j d 辩提供了该规范的许多可用实现之一,并用 作最新o s g ir 4 规范的参考实现。o s o i 是基于j a v a 的框架,旨在用于需要长 运行时间,动态更新和对运行环境破坏撮小的系统。最初,o s g i 旨在用于家庭 自动化和家庭网关设备。 在3 1 之前版本的e c l i p 中,在每个插件的p l u g i n x m l 文件中定义插件 依赖关系以及扩展和扩展点。在使用o s g i 的新版本e c l i 口辩中,依赖关系信息 被分解到m 锄j 触l m f 文件中,而p 】u 毋n n l 文件只包含扩展和扩展点的x m l 定义。 e c l i d 辩插件中的o s g im 嬲i 触m f 选项包括: b 啪l d k a c t i v a 协r 该类用于启动和停止绑定包。在上面的示例插件中,指定了 。喵e c “p 辩p d e 血把m a l u i p d e p l u g i n 类。该类扩展甜g l j p s e ,c o 犯n m t 嘶p l u g 访, 实现了b 蛐棚e a c t i v 栅接口。 b 眦d l e - c l a 韶p a 伍 该属性指定要用于绑定包的c l a s s p 御。该属性可以包含对绑定包 盯文件中目录或i a r 文件的引用。可以使用句点指明绑定包的根。在示 例 e c l i p p d e 绑定包中,指定了绑定包i a r 文件中的 。曜e c l i p p d e u i3 1 o 两。如果将插件的源版本导入工作区中,导入过程 将更改绑定包c l a s s p a l m 以显示为b u n d l e c l a s s p a m :,这允许插件的 开发版本挑选已编译的绑定包类。 b u n d j e - v 毫l ,i o n 该属性指定绑定包的版本号。包导入和必需的绑定包规范可以包括绑 9 新扛大学硕士学位论文第2 章集成软件开发平台的结构分析 定包版本号。 e x p o r t - p a c i a g e 该属性指定要公共暴露给其他插件的所有包。 i m p o r t - p 们k a g e 该属性指定要从必需插件中显式导入的所有包。默认情况下,必须为 要启动的绑定包解析所有包。还可以将包导入指定为可选项,以支持包 不存在的情况。显式导入的类在r 船u 沁b u n d l c 插件中的包之前锯析。 r e q u i r e - b u n d l e 该属性指定要在给定绑定包中导入使用的绑定包及其已导出的包。指 定的绑定包在显式包导入之后解析。 2 3 3 扩展点 在e c l i p 插件体系结构中,最重要的概念就是扩展点,e c l i p 框架的灵活 性主要来源于其扩展点。嘲它们是在x 。中定义的已知接口,并充当插件的耦 合点。扩展点的范囝包括从用在常规表述过滤器中的简单字符串,到一个j a v a 类 的描述。任何e c l i p s e 插件定义的扩展点都能够被其它插件使用,反之,任何e c l j p 插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不 知道它们通过扩展点提供的服务将如何被使用。【9 l 扩展点定义在插件的p l u 画n n l 文件中。插件通过麟c 蜘s i i p o 缸标签描述 自己支持的扩展点。 “t 铋s i o n 伽i l l t 标签需要三个参数: 埘是扩展点标识符。e c l i d 将它与插件i d 连在一起,作为平台提供的 惟一标识符。 n a m e 是用户友好的名称。 s c h e m a 只想描述扩展标记的x m 儿s c h e m a 。扩展实现者在自己的插件 中使用p l u g i n x m l 文件中的模式。 扩展点的例子: 其对应的扩展例子: 浙江大学硕士学位论文第2 章集成软件开发平台的结构分析 多数扩展点都提供一个或多个j a v a 接口以实现扩展。 基于以上结构,在e c l i p 辩系统中,开发插件的大致流程如下图所示: l 寻糍篇等生 查找功能点在e d i d 靶 平台对应的扩展点 在p d e 中配置插件 描述文件p l u g i n x m l 编写注册的各个扩展点 的事件响应类的代码 编译导出 插件的可用版本 圈2 - 3e c l j p 插件开发流程 2 4e c l i p s e 的c d t 插件 2 4 1c d t 简介 e c l i p s ec + + d c v e l o p m e n t i k i t ( c d t ) 是e c l i p 平台的一种插件形式的 扩展。e c l i d 辩作为一个通用软件开发工具平台,本身只提供了j a v a 开发所需的 插件。c d t 的出现是c ,c + + 开发在e c l i d 辩得到支持。嘲 浙江大学硕士学位论文第2 章集成软件开发平台的结构分析 c d t 具有子组件或插件,它们是c d t 社区中的独立项目。其中最重要的是 c d t 主插件,它提供核心c d t 功能。c d td e b u 2u i 为调试工具编辑器和视图 提供u i 功能。c d tu 】插件提供与u 1 有关的特性,视图、编辑器、向导等。 c d td e b u g 提供核心调试功能。c d tf e a n 鹏提供c d tf e a n 鹏组件。c d t 核 心包括c o 心m o d e l 、c d o m 和其他核心组件。c d tl 蝴c h 为启动外部可执行 文件和工具提供启动机制。c d 丁d e b u gm i 是针对兼容m i 的调试器的应用程序 连接器。1 1 】 c d t 编辑器具有多种特性,如语法高亮和代码协助使软件开发更加快捷、 容易。语法高亮是可配置的,还可根据个人喜好使之个性化。代码协助是代码完 成功能,它与v i s 眦ls h l d i o 里的功能相似。自定义的代码模板可添加到代码协助 所使用的插件中。 2 4 2c d t 模块分析 c d t 主要由以下几个模块构成: u i 模块 包括c 代码文件,头文件与汇编文件的编辑器,c d t 的各种菜单项,右键弹 出菜单项,新建文件的向导视图,c d t 插件的首选项配置视图等,但是不包括 c d t 调试部分的视图与工程属性视图。 m a 舱g e db u i l d e r 模块 包括编译,汇编,链接工具链的维护,工程属性视图,工程属性内部数据结 构的维护,m a i 【e f i l c 文件生成器等 d c b u g 模块 包括工程调试的各种菜单选项与命令,c d t 与g d b 之间交互部分,寄存器, 内存信息,变量值等调试信息的维护与显示。 其他功能模块 包括二迸制代码的分析器,c 文件的语法分析器与索引建立工具,c 代码的 重构功能、帮助系统等。 在本系统的开发过程中,需要对上述四个模块所提供的一系列扩展点分别进 行修改与扩展。以其中的m a n a g e db u i l d c r 模块为例,由于开发平台中所使用的 编译器、链接器与c d t 现有支持的不同,因而,霈修改c d t ,对这些新的工具 链与工程类别进行支持。 在c d t 中提供了b u i l d e r d e f i n i t i o n 扩展点对m 柚a g e db u i l d 盯模块进行扩展。 浙江大学硕士学位论文第2 章集成软件开发平台的结构分析 在b u i l d c rd e f i n t i o n 扩展点中,可以通过插件的配置文件来改变m 粕a g e db u i l d e r 模块中维护的工程与工具链配置信息的数据模型,这些数据模型包括: 工程类别:提供工程建立的一些模板,帮助生成相应默认的工程配置信息, 工程类别最终将在新建工程向导中出现。 工程:用户建立的工程配置信息与工程资源的集合,与一个特定的工程 类别相关联。 配置;包括工程的工具链与工具链的选项配置和其他构建项目所需要的 特定信息。包括生成d e b u g 版本的配置、r e l e 勰e 版本的配置,以及与目 标平台相关的配置。 工具链:将工程资源转换为最终可执行代码的一组工具集。 工具:将输入资源转换为相应的输入资源,并具有可改变其行为的选项。 选项:改变某一工具行为的单个控制信息。 选项类别:相似的选项构成的一组层次结构的集合。 针对上述数据模型,b u i l d e r d e f m i t i o n 扩展点中设计了相应的子节点用于上述 数据模型的添加与修改: p m j e c t l y p e 子节点 提供一种新的c ,c + + 的工程类别,在该节点中包含若干个c o 娟哪瞰i o n 节点 ( 如d e b u g ,r c l e a 辩) 用于提供一系列默认的工具配置选项。 n f i g u 强t i 叫子节点 通常包括两类配置信息t 0 0 l c l l a i n 子节点和r e s o u r c e c o n f i 鼬r a t i o n 子节点,前 者用于工具链的定制,后者则用于单个资源的配置信息。 t i c h a i n 子节点 一般由若干个o o i 节点,o 嘶o n 结点构成,前者定义工具链中加入的各个工 具,后者提供各个工具的默认配置表项。 t l 子节点 包含了包括工具的具体命令和若干o p t i o n c a t e g o r y 子节点与o p t i o n 予节点。 o p t i 伽c a t e g o r y 子节点 用于表示一个工具中若干选项的集合,信息主要是类剐名称和所属的工具i d 。 o 州叫子节点 用于表示工具中某个选项,信息包括选项的类型( b o o l c a l i 型,数据,字符串 等) ,选项的标签,选项的类型等。 浙江大学硕士学位论文 第2 章集威软件开发平台的结构分析 2 5 本章小结 本章对e c l i p 平台的体系结构进行了剖析,着重分析了e d i p s e 的插件体系 结构以及这个体系结构所带来的种种优点。本章介绍了e c l i p 对c 语言开发进 行支持的一套插件,c d t 。本章最后对e c l i p 和c d t 的各个模块做了详细分析, 为扩展打下基础。 浙江大学硕士学位论文第3 章工程管理自动化设计与实现 第3 章工程管理自动化设计与实现 3 1 工程管理自动化设计目标与思路 3 1 1 工程编译流程 通常嵌入式软件从源代码,配置文件,链接脚本等原始资源编译为目标二进 制文件或镜像,都要通过一系列的工具进行转换,例如g c c 工具链,最终生成 所需要的输出,本系统有着同样的需求。 在本嵌入式软件开发环境中,有五个工具参与整个编译流程:g c c 编译器。 g c c 链接器,g c c 汇编器,p e t b o l sp e ,p e t o o l so b j 。 源文件首先使用g c c 编译器将源代码文件编译为目标文件,并使用p e l 的l s 去除目标文件的的p e 头。用户使用不同的编译器参数和p e l 0 0 1 s 参数来调整编 译过程。例如: o :c e e c h o 正在构建文件;$ e c h ot 调用:g c cc 编译器 g c c 工”e :i d e i n c l u d e ”一o o g w a l l c 一蹦d m p m f ”$ ( e :o 芏亳d ) ” 一m t ”$ ( e :o = d ) “一o ”$ e 睾 “ e c h o 调用:p e t o o l s p e t 0 0 1 8 一t i n y r n o d e r i n o b j ”$ 0 ” 目e c h o - 已完成构建:$ - 以上是符合m a k e f i l e 规范的个规则,可以实现之前所要求的功能。 在某些特殊情况下汇编器被加入到上述过程中,源文件首先被编译为汇编代 码,再由汇编器编译为目标文件,最后使用p e l 砷l s 0 b j 去除p e 头。例如: o :c 固e c h o 正在构建文件:$ - e e c h o - 调用:g c cc 编译器t q c c 一工”e :i d e i n c l u d e b ”一o o g w a l l s 一喇d m p m f “$ ( 0 :o = d ) ” 一m t ”$ ( e

温馨提示

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

评论

0/150

提交评论