(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf_第1页
(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf_第2页
(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf_第3页
(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf_第4页
(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式系统软件复用技术的研究.pdf.pdf 免费下载

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

文档简介

硕士论文嵌入式系统软件复用技术的研究 摘要 目前,嵌入式产品市场的增长速度惊人,吸引了越来越多的公司的参与,全球 嵌入式产品市场的竞争也日趋激烈。我们日益需要一种高效率的嵌入式软件开发方 法,对嵌入式软件复用技术的研究具有重要的意义和实用价值。 本文先对嵌入式系统的软硬件作了详细的介绍,然后介绍了软件复用的过程和 分类,并对常用软件复用技术的特点作了分析和介绍在对常见的源码复用技术进 行分析后,给出了源码构件复用技术的设计思路,然后为源码构件复用技术建立了 模型。接着给出了模型的实现方法和辅助工具的设计和实现。在最后实现了一个源 码构件的实例对源码构件复用技术的复用过程进行验证。 源码构件复用技术是源码复用技术的一种,具有源码复用技术所拥有的适合嵌 入式系统的优点。同时,它又具有一般的源码复用技术所没有的优点:参数化、标 准化的复用接口;可视化工具的辅助;语言无关性;以构件库的方式管理和选择。 而且它还能比较容易地被集成到常用的集成开发环境中,具有易于实践的特点。 关键词:软件复用嵌入式系统源码构件 硕士论文嵌入式系统软件复用技术的研究 a b s t r a c t m a n y 锄e r p r i si nt h ew h o l ew o r l da r ea t t r a c t e db yt h er a p i d l yg r o w i n gm a r k e t s h a r eo fe m b e d d e ds y s t e m s , w h i c hr e s u l ti ng r e a t e rm a r k e tc o m p o t i d o aw en e e dan 哪 e f f i c i e n ts o l , w a r ed e v e l o p m e n tm e t h o df o rt h ee m b e d d e ds y s t e m t h es t u d yo nt h e s o f l w a 砖1 , e = l :1 5 ef o re m b e d d e ds y s t e mw o u l db r i n gan u m b e ro fa d v a n t a g e st ot h e e m b e d d e ds y s t e m sw o r l d i nt h i st h e s i s , f i r s t l y , h a r d w a r ea n d5 0 1 。胁o fe m b e d d e ds y s t e mi si n 臼o d u c e d ; s e c o n d l y , t h ea u t h o ri n t r o d u c e sc l a s s i f i c a t i o na n dp r o c e d u r eo fs o f h 哪r e u s e ;t h e n a n a l y s e st h e f e a t u r e so fc o l n n l o ns o f t w a r er v u s et e c h n o l o g y a f t e r 锄_ a l y 五n gf m i h a r s o u r c ec o d el 七u s et e c h n o l o g y , t h et h i n k i l l gp a t ho fs o u r c ec o m p o n e n ti l 孔l s et e c h n o l o g yi s o v e n ;t h e nm o d e l i n gf o rs o u r c ec o m p o n e n tr 朗l s et e c h n o l o g y ;t h e ng i v et h em e t h o do f i m p l e m e n t i n gt h em o d e la n d 豫u 辩a s s i s t a n tt o o l s ;a tl a s tt h e r ei sa ne x a m p l eo fs o u r c e c o m p o n e n tt ov a l i d a t et h ep r o c e d u r eo f s o u r c ec o m p o n e n tr 朗鹏t e c h n o l o g y a ss o u r c ec o m p o n e n tn 乳l s et e c h n o l o g yb e l o n g st os o u r c ec o d en h 麟t e c h n o l o g y , i t h a sa d v a n t a g e so fs o u r c ec o d er e u s ef o re m b e d d e ds y s t e m a n di ta l s oh a sa d v a n t a g e s t & a ts o r r c ec o d er 吼l s ed o e s n th a v e s u c ha s :p a r a m e t e r i z ea n ds t a n d a r d i z e 髓虹s ei n t e r f a c e ; a s s i s t a n tw i t hv i s u a lt o o l s ;b ei n d e p e n d e n to fp r o g m u m m gl a n g u a g e ;m a n a g e m e n ta n d s e a r c hs u p p o r t e db yc o m p o n e n tb a s e a n di tc o u l db ei n t e g r a t e di nf a m i l i a ri d e e a s i l y , s o i tc a nb ec a r r i e do u te a s i l y k e y w o r d s :s o f t w a r er e u s ee m b e d d e ds y s t e ms o u r c ec o m p o n e n t 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名: 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对 于保密论文,按保密的有关规定和程序处理。 硕士论文嵌入式系统软件复用技术的研究 i 1 选题背景及意义 第一章绪论 嵌入式系统是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、 成本、体积、功耗等综合性严格要求的专用计算机系统1 1 l 。目前,嵌入式系统的广 泛应用已经渗入到我们日常生活的各个方面。在手机、m p 3 、p d a 、数码相机、电 视机,甚至电饭锅、手表里都有嵌入式系统的身影;工业自动化控制、仪器仪表、 汽车、航空航天等领域更是嵌入式系统的天下这一切无不向我们昭示着嵌入式时 代的到来。 嵌入式系统通常由硬件和软件两部分组成,硬件包括微处理器、存储器及各种 外部设备,如显示器、触摸屏、键盘等,其核心为嵌入式微处理器;软件包括作为 开发平台的嵌入式操作系统和在此基础上开发的应用程序如果将嵌入式系统比作 一名能干的专业人员,那么硬件就是他的肉体,而软件就相当于他的专业技能。软 件的运行离不开硬件的支持,系统主要依靠软件来实现各种功能以满足千差万别的 应用需求 随着电子技术的不断进步和发展,各类硬件的性能不断提升,而成本却不断下 降。硬件的日益成熟和稳定让嵌入式软件成为产品的数字化改造、智能化增值的关 键性、带动性技术,软件在嵌入式系统的开发时间和开发成本中所占的比重也越来 越大。因此,掌握先进的软件开发技术意味着能在这汹涌而来的嵌入式浪潮中占据 先机。然而,我国嵌入式软件开发的现状不容乐观,大部分还是处于手工作坊式的 开发,面对层出不穷的应用需求和激烈竞争的压力,显得有点应付乏力。主要表现 在如下几方面: 1 ) 开发效率低、重复劳动难以消除、软件可靠性得不到保障。软件开发在整个 嵌入式系统的开发周期中占据了绝大部分的时间,但软件的开发效率很难有显著的 提高,使软件开发面临着巨大的时间表压力但不同的应用开发中却存在着大量的 重复劳动,而这些重复劳动又很难消除或用合适的工具来自动完成。同时,软件规 模进一步扩大,但缺乏有效的手段来保障软件的可靠性; 2 ) 大量遗留代码成为鸡肋。由于对现存的大量代码的使用缺乏合适工具的支 持,复用工作困难,使它们变成“食之无味,弃之可惜”的鸡肋; 3 ) 复用技术的推广应用受非技术因素的制约。由于大部分开发人员缺乏系统的 软件工程知识,软件复用的意识淡薄,使得软件复用技术的推广面临管理、文化等 非技术因素的困扰; 4 ) 软件开发缺乏合适的技术和工具的支持。由于种种原因( 知识产权、技术封 预士论文嵌入式系统软件复用技术的研究 锁、商业利益等) 许多国外先进的技术和工具没有在国内的嵌入式软件开发中得到 推广和使用 因此,研究一种低成本、易于实践的嵌入式软件复用技术具有一定的理论意义 和实用价值 1 2 发展历史和研究现状 1 2 1 发展历史 软件复用是指用现存的软件元素构造新的软件系统。这里的软件元素不仅是指 源代码段,而且还指在软件开发过程中产生的所有中阃工作产品,如需求分析文档, 系统规格说明、详细设计文档和开发者创建软件所需要的任何信息等闭 6 0 年代的软件危机导致了有关软件复用的研究在1 9 6 8 年n a t o 软件工程学 术会议上,d m c l l r o y 在他的论文中首次提出可复用软件库的思想,和以不同精确度 定制构件的自动化技术1 2 】这个时期是软件复用的萌芽时期,由于软件复用能够提 高软件开发的劳动生产率,提高软件系统的可靠性,减少维护的负担,从一开始, 软件复用就被认为是摆脱“软件危机”的一种手段,并受到广泛的重视。 1 9 6 9 年,日本日立公司成立了世界上第一个“软件工厂”,确立了两个目标: 一是通过使生产过程标准化和对生产过程控制来提高生成率和可靠性;二是使软件 从无组织的服务活动向着生产质量有保证的产品转变 2 1 。软件工厂的出现标志着软 件工程和软件复用开始在实际的软件开发生产中得到实践。 1 9 7 9 年,l a n e r g a n 在发表的论文中对其一个项目进行总结,发现设计和代码中 有6 0 的冗余,可标准化并被复用,这一发现使得软件复用技术引起了人们的高度 关注。这之后,其他人也通过研究发现商业、金融等系统的大部分逻辑结构和设计 模式都可以通过对这些模块的标准化而得到复用。 1 9 8 3 年,h e d b i g g e r s m f f a 和a l a n p e f i s 在美国的n e w p o r t 组织了第一次有关软 件复用的研讨会,随后在1 9 8 4 、1 9 8 7 年,美国m e et r a n s a c t i o n so ns o f t w a r e e n g i n e e r i n g 和i e e es o f t w a r e 分别出版了有关软件复用的专集。 1 9 8 8 年,v b a s i l i 扩充了复用的定义,涵盏“使用与软件工程设计有联系的任 何东西,包括知识在内”。这种新观点开启了其他学科研究的新思路,并且使人们认 识到复用问题无所不在 1 9 9 1 年,第一届国际软件复用研讨会( i w s r ) 在德国举行 9 0 年代后,面向对象技术的崛起给软件复用技术带来了新的希望,出现了类库、 组件,框架等新的复用方式。 现在,有关软件复用的基本概念不断完善,软件复用技术和方法也日渐成熟。 2 硕士论文嵌入式系统软件复用技术的研究 人们还认识到管理、经济、文化和法律等非技术性因素同样重要,有必要将所有这 些因素综合起来。使之成为规范化的复用概念。 1 2 2 研究现状 经过近四十年的发展,软件复用在领域工程、构件及构件库的标准化、构件组 装技术、基于复用的软件开发过程和复用成熟度模型等方面取得了斐然的成就这 些技术在通用软件开发中已得到了广泛的应用。具有代表性的是:出现了有统一的 平台和标准支持的组件和框架技术;出现了一批生产中间件的厂商,他们所提供的 中间件在很多软件开发中得到复用;许多集成开发环境中也包含有软件复用技术, 为开发者提供了使用方便、性能可靠的组件和框架,如:m i c r o s o f t 公司v i s u a ls t u d i o 、 b o r l a n d 公司的d e l p h i 、c + + b u i l d e r 等。 由于早期的嵌入式系统缺乏统一的平台和标准的支持,各种复用技术的应用和 普及远不如通用软件开发领域那样。随着软硬件技术的发展,复用技术在嵌入式软 件开发中的应用和普及取得了显著的进步。 遵循p o s i x ( p o r t a b l eo p e r a t i n gs y s t e mt n t e r f a c e ) 标准的r t o s ( 实时操作系统) 的出现为代码在不同应用问的移植和复用提供了坚实的基础。特别是不少基于开源 操作系统l i n u x 的r t o s 的出现后,开发人员可以从网上下载很多可以复用的代码 段如:新墨西哥工学院的r t - l i n u x 、堪萨斯大学的k u r t - l i n u x 等 风河公司( w m dr i v e r ) 发起的d s o ( d e v i c es o f t w a r eo p t i m i z a t i o n ) 项目致力 于整个行业的技术、工具和过程的标准化,为软件复用创建一个包含开放标准的模 型。 国外出现了不少嵌入式软件复用研究机构。如;美国m a r y l a n d 大学的实时系统 软件工程实验室( s e r t sl a b ) ,该实验室在r t o s 与c a s e 工具等方面取得了不少 成果。如:开发的e c h i d n a 是一个可重配置的基于组件的r t o s ,能够在微处理器 与d s p 上支持组件复用技术 国内在嵌入式软件复用技术的研究上也取得了不小的成就,如:浙江大学嵌入 式系统研究中心研制的s m a r t 系统就是一个支持区域的嵌入式构件复用的平台 除了上述各种技术外,网络上还出现了为嵌入式软件复用提供服务的中间商, 如:p r o v e ns o f t w a r es o l u t i o n 公司就是第一个提供该服务的中间商,他们收集可以 被复用的嵌入式源代码模块,供开发人员下载复用,并收取一定的费用。 硕士论文嵌入式系统软件复用技术的研究 1 3 研究内容及所做工作 1 3 1 研究内容 本文主要研究:嵌入式软件复用技术;源码构件复用技术的模型;源码构件复 用技术的实现方法;复用辅助工具的设计和实现 1 3 2 所做工作 先对嵌入式系统和软件复用技术进行了研究。然后根据现状并结合嵌入式软件 的特点,设计出源码构件复用技术的模型。接着给出实现该模型的具体方案,包括 如何对现有源代码进行归纳和抽象,如何以计算机可以处理的方式表示源码构件和 构件库,如何用x 儿定义的标记语言包装源码构件,如何在工具辅助下进行源码构 件的制作、选择和使用。然后给出了复用辅助工具的实现方法最后,用源码构件 复用技术实现了一个源码构件的实例一一键盘扫描构件 1 4 论文组织 本文共分为七章,各章的主要内容分别为: 第一章绪论 对本文的选题背景及意义、研究内容和论文组织等进行综述 第二章嵌入式系统与软件复用技术 本章先介绍了嵌入式系统,包括嵌入式系统的硬件、处理器、软件和实时多任 务操作系统。然后介绍了软件复用,包括软件复用的过程和分类,以及常见的复用 技术的介绍和特点分析。 第三章源码构件复用技术的设计 本章先根据嵌入式软件的特点和研究现状解释为什么选择源码复用作为本文要 研究的复用技术然后对常用的源码复用技术进行分析,针对它们的不足提出源码 构件复用技术的思路。接着为源码构件复用技术建立用数学语言描述的模型。 第四章源码构件复用技术的实现 本章先讲述了源码构件的实现方法,包括源码构件中各个部分的实现方法和如 何用x v l l 语言定义的标记语言来包装构件中的各个部分。接着给出了构件库的实 现方法。最后介绍了源码构件复用过程中的三个阶段是怎么实现的 第五章复用辅助工具的设计和实现 本章先介绍了复用辅助工具的整体设计和实现。接着介绍了工具中各个部分的 实现方法。最后以实例讲述了如何将这个工具集成到集成开发环境中 4 硕士论文 嵌入式系统软件复用技术的研究 第六章源码构件的实例 在本章中用源码构件复用技术实现了一个源码构件的实例一一键盘扫描构件。 介绍了这个构件的生产和使用过程,并对该实例进行了简要的总结。 第七章总结 对本文进行了总结,并指出了需要进一步研究的内容。 硕士论文嵌入式系统软件复用技术的研究 第二章嵌入式系统与软件复用 本章将对论文中用到的背景知识嵌入式系统和软件复用进行简要的介绍。 2 1 嵌入式系统 嵌入式系统一般指非p c 系统,有计算机功能但又不称之为计算机的设备或器 材。简单地说,嵌入式系统集应用软件与硬件于一体,类似于p c 中b i o s 的工作方 式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时性的 系统。嵌入式系统主要由嵌入式处理器,相关支撑硬件、嵌入式软件系统等组成, 它是可独立工作的“器件”研。 嵌入式系统由软件和硬件两部分组成,在接下来的内容中先介绍硬件部分和硬 件的核心内容一一嵌入式处理器,接着介绍软件部分和软件的核心内容一一实时多 任务操作系统 2 1 1 嵌入式硬件 不同应用下的嵌入式系统的硬件一般有不同的配置,但它们都是由这三部分组 成的:核心处理器、外围电路和外部设备核心处理器是嵌入式系统的核心部件, 负责控制整个嵌入式系统的运行;外围电路包括嵌入式系统的内存、i o 端口、复 位电路和电源等;外部设各是整个系统与外晃环境交互的各种设备,包括存储设备、 设备和打印设备等。 嵌入式系统的硬件主要有如下特点: 1 ) 系统的配置是面向应用的,进行了以应用为中心的裁减,去除一些应用不需 要的设备,如某些系统中不需要的工 d 设备; 2 ) 体积小,功耗低。嵌入式系统一般是作为计算或控制模块嵌入到其他的系统 或设备中,因此要求尽可能小的体积;而且嵌入式应用一般对功耗比较敏感,特别 是用于移动计算和通信设备中的靠电池供电的嵌入式系统。 6 硕士论文 嵌入式系统软件复用技术的研究 2 1 2 嵌入式处理器 图2 1 1 1 嵌入式系统硬件框图 嵌入式处理器是嵌入式硬件的核心。据不完全统计,目前全世界嵌入式处理器 的品种总量已经超过1 0 0 0 种,流行的体系结构有3 0 多个系列。其中8 0 5 1 体系占多 半,生产这种单片机的半导体厂家有2 0 多个,共3 5 0 多种衍生产品,仅p h i l i p s 就 有近1 0 0 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有 自己的处理器设计部门。嵌入式处理器的寻址空间一般从6 4 k b 到1 6 m b ,处理速度 为o i 2 0 0 0 m i p s ,常用封装耻1 4 4 个引脚嘲。根据现状,嵌入式处理器可分成如下 几类: 1 ) 嵌入式微处理器( e m b e d d e dm i c r o p r o c e s s o ru n i t , e m p i d 嵌入式微处理器的基础是通用计算机的c p u ,它在功能方面与标准的微处理器 基本上是一样的。但由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入 式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器 7 硕士论文嵌入式系统软件复用技术的研究 高。在实际应用中,根据嵌入式应用的实际要求,将嵌入式微处理器装配在专门设 计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体 积和功耗。 和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成 本低、可靠性高的优点,但在其电路板上必须包括r o m 、r a m 、总线接口、各种 外设等器件,从而降低了系统的可靠性,技术保密性也较差嵌入式微处理器及其 存储器、总线、外设等安装在一块电路主板上所构成的系统就是通常所说的单板机 系统如s t d b u s 、p c i 0 4 等。 嵌入式处理器目前主要有a m l 8 6 8 8 、3 8 6 e x 、s c - 4 0 0 、p o w e rp c 、6 8 0 0 0 、m i p s , a r m 系列等。 2 ) 嵌入式微控制器( m i c r o e o n t r o l l e ru n i t , m c u ) 嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式 微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成 了r o m e p r o m 、r a m 、总线、总线逻辑、定时,计数器、看门狗、f o 、串行口、 a d 、d a 、f l a s hr a m 等各种必要功能部件和外设。为适应不同的应用需求,对功 能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多 种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及 封装。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗 和成本。 和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而 使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和 数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌 入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此 称为微控制器。 通常,嵌入式微控制器的种类和数量有很多,但一般可分为通用和半通用两类: 比较有代表性的通用系列包括8 0 5 1 、p 5 1 x a 、m c s 2 5 l 、m c s - 9 6 1 9 6 2 9 6 、c 1 6 6 1 6 7 、 6 8 3 0 0 等;而比较有代表性的半通用系列,如支持u s b 接口的m c u8 x c 9 3 0 9 3 1 、 c 5 4 0 、c 5 4 1 ;支持i 2 c 、c a n 总线、l c d 等的众多专用m c u 和兼容系列。目前 m c u 约占嵌入式系统市场份额的7 0 例 3 ) 嵌入式d s p 处理器( e m b e d d e dd i g i t a ls i g n a lp r o e e s s o r , e d s p ) 在数字信号处理应用中,各种数字信号处理算法相当复杂,一般结构的处理器 无法实时的完成这些运算。而d s p 处理器对系统结构和指令进行了特殊设计,使其 适合于实时地进行数字信号处理。在数字滤波、f f t 、谱分析等方面,d s p 处理器 得到了大量的使用。另外,在有关智能方面的应用中,也需要嵌入式d p s 处理器, 3 颈士论文嵌入式系统软件复用技术的研究 例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, 虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线 性寻址等较多,而这些正是d s p 处理器的优势所在。 嵌入式d s p 处理器比较有代表性的产品是t e x a s n s l n u n e n t s 的1 m s 3 2 0 系列和 m o t o r o l a 的d s p 5 6 0 0 0 系列。t m s 3 2 0 系列处理器包括用于控制的c 2 0 0 0 系列、移 动通信的c 5 0 0 0 系列,以及性能更高的c 6 0 0 0 和c 8 0 0 0 系列。d s p 5 6 0 0 0 目前已经 发展成为d s p 5 6 0 0 0 、d s p 5 6 1 0 0 、d s p 5 6 2 0 0 和d s p 5 6 3 0 0 等几个不同系列的处理器。 4 ) 嵌入式片上系统( s y s t e mo nc h i p ,s o o e d i 、v l s i 设计和半导体工艺的迅速发展,使得在一块硅片上实现一个更为复 杂的系统成为可能,这就是s o c ( s y s t e mo nc u p ) 技术s o c 技术使嵌入式系统 的大部分均可集成到一块或几块芯片中去,使应用系统电路板变得很简洁,对于减 小整个应用系统体积和功耗、提高可靠性非常有利。 s o c 可分为通用和专用两类。通用s o c 如i n f i n e o n ( s i e m e n s ) 的t r i c o r e 、m o t o r o l a 的m c o r e ,以及某些a r m 系列器件,如e c h e l o n 和m o t o r o l a 联合研制的n e u r o n 芯片等。专用s o c 一般专用于某个或某类系统中,如p h i l i p s 的s m a r tx a ,它将 x a 单片机内核和支持超过2 0 4 8 位复杂r s a 算法的c c u 单元制作在一块硅片上, 形成一个可加载j a v a 或c 语言的专用s o c ,可用于互联网安全方面。 2 1 3 嵌入式软件 软件部分包括操作系统( 在一些应用中也可能没有) 和应用程序。应用程序实 现系统的功能,而操作系统主要控制着应用程序与硬件的交互作用。嵌入式软件是 面向一定应用,以特定的硬件为基础,具有如下特点: 1 ) 可裁减。嵌入式系统面向特定应用,具有很强的应用针对性,而系统的存储 容量一般都很有限,这就要求软件是可裁减的,能根据需要选择必要的功能,去除 冗余的功能; 2 ) 实时性。嵌入式系统的大部分应用对实时性有很高的要求,一味地提高硬件 性能不能保证系统的实时性,还需要所开发的软件也能满足实时性要求; 3 ) 高可靠性。不少嵌入式应用( 如:飞行器控制、医疗仪器等) 的性质决定了 系统的可靠性必须远远高于通用系统。硬件的成熟和稳定将保证可靠性的重担落在 了软件系统上。 嵌入式软件的特性使它的开发在以下几方面不同于通用软件开发: 1 ) 存在非功能性约束。对于嵌入式软件而言,除了保证逻辑功能的正确外,一 般还存在实时性、功耗等非功能方面的要求。为了满足这些非功能性要求,需要在 9 硕士论文 嵌入式系统软件复用技术的研究 软件设计实现时考虑非功能性因素; 2 ) 时间、空间效率要求更高。虽然硬件性能是日新月异,但出于成本等因素的 考虑,嵌入式软件在开发时还是追求更快的运行速度和更小的存储空间; 3 ) 与硬件关系密切。尽管r t o s 的应用在一定程度上“透明化”了硬件,但在 很多低成本、简单的应用中一般不会使用r t o s ,这时程序员需要直接和硬件打交 道,往往要从最底层的驱动程序做起; 4 ) 缺乏标准的软硬件平台的支持。软硬件的可裁减导致嵌入式系统的软硬件在 不同应用下有不同的配置,到目前为止还没有形成广泛使用的标准软硬件平台; 5 ) 缺少易于广泛使用的开发工具底层硬件的多样化导致开发工具的多样化, 即使在某些平台上形成了比较好的开发工具,由于其高昂的价格也很难推广使用。 目前,嵌入式软件系统一般可分为如下三类: 1 ) 前后台系统 这种系统没有操作系统的支持,程序员编写嵌入式程序通常直接面对裸机及裸 设备系统中的程序分成两部分:前台程序和后台程序前台程序通过中断来处理 事件,其结构一般为无限循环( 死循环) ;后台程序则掌管整个嵌入式系统软、硬件 资源的分配、管理以及任务的调度,是一个系统管理调度程序在程序运行时,后 台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作 对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件 的发生,不再傲任何工作就退出中断,经过后台程序的调度,转由前台程序完成事 件的处理。 前后台系统的实时性不是很理想这是因为前后台系统中所有的任务具有相同 的优先级别,而且任务的执行又是通过f i f o 队列调度,因而对那些实时性要求高 的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦循 环体中正在处理的任务崩溃,整个任务队列中的其他任务将不会再被处理,从而造 成整个系统的崩溃但由于这类系统结构简单,几乎不需要r a m r o m 和处理器的 额外开销,因而还是被广泛地使用于低成本、简单的嵌入式应用中。 2 ) 简单操作系统为核心的系统 。 这种系统以嵌入式c p u 为基础、以简单操作系统为核心。它的主要特点是:由 于c p u 的种类繁多,软件系统的通用性比较差;但系统开销小,效率高;而且一 般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户 界面不够友好这种系统主要用来控制系统负载以及监控应用程序运行 实时多任务操作系统为核心的系统 这种系统以实时多任务操作系统为核心,它的主要特点是:实时多任务操作系 统能运行子各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高, 1 0 硕士论文嵌入式系统软件复用技术的研究 并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持,多任务、网络 支持、图形窗口以及用户界面等功能;具有大量的应用程序接口( a p d ,开发应用程 序简单;嵌入式应用软件丰富在下文中将对实时多任务操作系统作详细的介绍。 2 1 4 实时多任务操作系统 实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计 算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行 的时间有关。在确定的时间内”是该定义的核o , e 4 1 。 实时系统对逻辑和时序的要求非常严格,如果逻辑性和时序正确性得不到保证 将会产生严重后果。目前有两类实时系统:软( s o f r ) 实时系统和硬( h p d i d ) 实 时系统。软实时系统仅要求事件响应是实时的,并不限定某一任务必须在多长时间 内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内 完成事件的处理大多数实时系统是两者的结合。 实时多任务操作系统( r 1 ;0 s ) 是运行在实时系统上具有多任务调度功能的操作 系统嘲其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提 高计算机系统的使用效率实时操作系统具有如下功能:任务管理( 多任务和基于优 先级的任务调度1 、任务间同步和通信( 信号量和邮箱等) 、存储器优化管理( 含r o m 的管理) 、实时时钟服务、中断管理服务。实时操作系统具有如下特点:规模小,中 断被屏蔽的时间很短,中断处理时间短,任务切换很快。 实时操作系统分为可抢占式和非抢占式两类对于基于优先级的系统而言。可 抢占式系统是指内核可以抢占正在运行的任务的c p u 使用权让就绪态中优先级更 高的任务运行。非抢占式系统要求每个任务明确地放弃对于c p u 的控制,然后才将 c p u 的使用权让给另一任务( 具体是哪个任务不同的算法有不同的实现) 。非抢占 式系统的实时性取决于最长任务的执行时间。非抢占式系统的缺点也恰恰是这一点, 如果最长任务的执行时间不能确定,系统的实时性就不能确定 可抢占式实时操作系统的实时性好,优先级高的任务只要具备了运行的条件, 或者说进入了就绪态,就可以立即运行也就是说,除了优先级最高的任务,其他 任务在运行过程中都可能随时被比它优先级高的任务中断,让后者运行通过这种 方式的任务调度保证了系统的实时性。但是,如果任务之间抢占c p u 控制权处理不 好,会产生死锁等严重后果。 实时多任务操作系统使应用程序的设计和扩展变得容易,可以增加函数而不需 要对软件进行大的修改。通过将应用程序分割成若干独立的任务模块,使应用程序 的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。 硕士论文嵌入式系统软件复用技术的研究 并且通过有效的系统服务,系统资源得到了更好的利用。 但是,使用实时多任务操作系统会产生额外的系统开销:更大的r o m r a m 开 销,2 5 额外的c p u 负荷【q 。如果使用的操作系统不是免费的还会增加系统的成 本 目前,已经有多种实时操作系统在控制、通信领域得到广泛的应用,如 期m d r i v e r 公司的v x w o r k s 、i s i 的p s o s 、q n x 系统软件公司的q n x 、a t i 的n u c l e u s 等 2 2 软件复用 软件复用,广义地说,就是运用现存系统的人工制品或工程知识构造新的系统。 简单地说,软件复用就是在构造新软件系统的过程中使用现存的软件制品。软件复 用是指在开发新的软件系统时,对已有软件的重新使用,该软件可以是已存在的软 件,也可以是专门设计的可复用构件【2 1 。在本文中所研究的软件复用是以代码化的 软件产品为复用对象的,如不作特别说明下文中所提到的软件复用均不是广义上的 软件复用。 在这里先给出了软件复用过程,然后介绍软件复用的分类,最后介绍常见的软 件复用技术和它们的特点。 2 2 1 软件复用过程 不同的软件复用技术都具有可以被复用的软件制品,在本文中将它们称为复用 对象。软件复用过程是围绕着复用对象进行的,可以分为三个阶段:复用对象的生 产、复用对象的管理和选择、复用对象的使用。我们可以从这三个阶段来分析和比 较各种软件复用技术。 有两种身份的人参与了复用过程,分别为:复用对象生产者和复用对象使用者。 前者可以参与复用对象的生产和管理,后者可以参与复用对象的选择和使用,在某 些情况下这两者可能是同一个人 2 2 1 1 复用对象的生产 复用对象的生产是整个复用过程的起点,没有复用对象就谈不上任何复用。复 用对象的生产过程是一个抽象的过程。对软件开发中可以被复用的元素进行提炼和 概括,将可复用的基本属性和相应的操作从具体的语言、环境和其他细节中提炼出 来,并以一定的形式进行表示,形成一般化的复用对象。 碗士论文嵌入式系统软件复用技术的研究 领域分析是复用对象生产的有力工具。领域分析借助特定领域、特定行业的专 业知识与技能,对软件对象进行抽象和分类,提炼认知的对象及其相互关系,获得 系统整体结构,从而生成复用对象。 、 2 2 1 2 复用对象的管理和选择 当拥有多个复用对象时,就要根据功能需求和应用环境从复用对象集合中选择 合适的复用对象。这就涉及到复用对象的存放、管理和选择。复用对象必须有简明 的抽象,以便使用者能够有效地在一个集合中确定它的位置,理解、比较和选择复 用对象。通常用分类和编目的方法将复用对象组织成库,方便使用者在库中选择复 用对象 将复用对象组织成库的关键是根据复用对象的不同特征进行分类,主要是根据 功能进行分类,根据应用的不同还可以增加根据其他特征的分类在对复用对象分 类后,使用形式化的描述和表示是实现计算机自动或辅助检索的基础。 2 2 1 3 复用对象的使用 这一阶段包含复用对象的特殊化和集成。 特殊化是根据具体的应用环境,将一般化复用对象中变动的内容变为确定的内 容,通常使用参数、变换、限制或某种其他细化形式。例如,实现可复用队列可以 将队列的长度参数化。使用这个一般化队列的开发人员,通过为队列长度参数提供 一个值,使之特殊化。 集成就是使用集成机制将特殊化后的复用对象组合到一个完整的软件系统中 这里所说的集成机制有很多种,如:面向对象语言中的继承、模块互连语言等。 2 2 2 软件复用分类 可以将软件复用技术按照不同的标准进行分类,不同的分类标准能向我们揭示 软件复用技术的不同侧面分类如下: 1 ) 按复用范围,可分为:横向复用和纵向复用 横向复用是跨越多个不同应用领域的复用,它需要对多个应用领域的相同或相 似部分进行抽象。如c 语言中的库函数就可以被复用到不同的应用领域中,是属于 横向复用。 纵向复用是在单个或多个相似应用领域的复用,它需要对领域知识分析抽象, 形成可复用的元素。如d e l p h i 中的t a d o q u 目3 , 控件能用于数据库的访问,被广泛 硕士论文 嵌入式系统软件复用技术的研究 应用于数据库应用系统中,就是属于数据库应用领域中的纵向复用 2 ) 按实现复用的方式,可分为:合成性复用和生成性复用 合成性复用根据新的软件需求,从已有的软件资源中选择合适的部件,通过工 具将它们组装成新的软件。这有点类似于传统工业中机器零部件的组装,相对于生 成性复用应用更广,如g r m d o w s 环境下的集成开发环境v c + + 和d e l p h i 就是使用了 框架和组件等合成性复用技术 生成性复用是根据形式化的软件需求,在知识库和推理系统的支持下,通过相 应的工具自动产生所需的软件这种复用方式难度很大,应用不广如编译器开发 中用于生成词法分析器的l e x 和生成语法分析器的y a c c 就是这种工具 3 ) 按如何复用基本元素,可分为:黑盒复用和白盒复用 黑盒复用是不作任何修改地复用软件部件。典型的方法是:包装可复用部件, 并利用标准接口限定其相互作用。尽管这种处理方法具有较高的质量和可靠性,但 是,创造可复用黑盒的代价却很大在某种意义上,a d a 和面向对象的程序设计本 身就适用于黑盒复用。 黑盒复用的一个要点是验证和证明一一如何证明一个部件在所有可能的条件下 准确无误地执行这个问题已引起有意义的研究,尤其是形式化规格说明,它能够 用于证明程序的正确性,因而减少穷举测试。 黑盒复用的典型例子是a c t i v e x 控件,使用者不需知道它的任何实现细节就可 以通过接口使用它 白盒复用是对部件作修改和改变后进行复用,是到目前为止应用最普遍的方法, 尤其是在复用针对某一问题而安排的情况下大多数复用程序,包括软件工厂,都 使用白盒复用。随着这些程序逐渐发展,自盒复用变得更加形式化白盒复用倾向 于参数化、内部可适应性,以及将复用产品提升到较高的水准,如设计和规格说明。 c 语言中的功能模块可以通过改变宏定义等手段来实现复用,就是属于白盒复 用。 4 ) 按复用对象的存在形式,可分为:源码复用和二进制复用 源码复用的复用对象是以文本形式存在的源代码,需要通过相应的翻译软件( 编 译器等软件) 将它转换为可以在目标环境上运行的二进制代码。由编译开关和宏定 义控制的c 代码段的复用就是属于源码复用。 二进制复用的复用对象是二进制代码,一般不再需要相关的翻译和转换就能运 行。 5 ) 按特殊化发生在运行时还是运行前,可分为:动态复用和静态复用 动态复用的特殊化过程是发生在系统运行的时候。在目标系统运行时根据具体 的应用环境来决定复用对象的哪些部分作为目标系统的一部分。如a e f i v c x 控件是 1 4 硕士论文嵌入式系统软件复用技术的研究 在系统运行时确定应该使用控件中的哪个部分,是属于动态复用。 静态复用的特殊化过程发生在系统运行前( 编译前、编译时或链接时) 在目标 系统运行前就已经确定复用对象中的哪些部分作为目标系统的一部分由编译开关 和宏定义控制的c 代码段的复用是在编译前由编译预处理程序来决定该让源码中的 哪些部分成为目标系统的一部分,是属于静态复用 2 2 3 常见软件复用技术 目前常见的软件复用技术有:代码复用、框架复用和组件复用。在接下来的内 容中将对它们作具体的介绍。 2 2 3 1 代码复用 代码复用是复用已有的源代码或目标代码( - - 进制代码) ,它起源于简单的源代 码手工复用,如今已发展出如下几种主要形式: 1 ) 源代码的手工复用。开发过程中出现的代码的复制、粘贴就是属于这种复用 方式,产生这种复用的直接原因是能使开发人员减少击键的次数; 2 ) 库映射的复用。各类程序设计语言一般都会提供实现基本功能的函数,这些 函数被称为库函数,如:c 语言就有大量用于i o 、数学运算、字符串处理的库函数 供开发人员复用; 3 ) s t l ( s t a n d a r dt e m p l a t el i b r a r y ) 库。s t l 基于c + 十语言的,能提供更丰富 的数据结构操作,并支持泛型; 4 ) 类库的复用。面向对象程序设计语言一般会提供一些基本的类供开发人员复 用,如:j 2 e e 平台及n e t 平台,提供庞大而全面的类库调用,能实现的功能有: 数据存储、消息传递、图形图像、w e b 服务、x m l 解析等; 5 ) 功能模块的复用。功能模块一般实现某个应用领域中普遍用到的功能,这种 复用方法一般是利用结构化程序设计语言的某些机制来实现的,例如:用过程语言 实现的函数( 或过程) ,用面向对象语言实现的类。 这些代码复用技术在p c 软件的开发中得到了广泛的应用,在嵌入式软件开发 中应用的较多的是源代码的手工复用和功能模块的复用。 2 2 3 2 框架复用 框架是整个系统或系统的一部分的可复用性设计,它把一个系统有机地分解成 一组相对独立的部分,并定义了各个部分间的接口和作用关系,符合软件工程中设 1 5 硬士论文嵌入式系统软件复用技术的研究 计的模块化、独立化和信息隐藏等特征【7 1 框架提供了一种大粒度的复用技术,即 不仅支持源代码级的复用,而且支持分析和设计以及体系结构的复用。 框架必须是健壮的、可扩展的、灵活的,它要求基于开放或共享标准。框架的 设计要力求做到完备性、灵活性、可扩展性、可理解性;用户能轻松地添加和修改 功能,定制框架;用户和框架的交互清晰,文档齐全框架设计的一个核心问题就 是发现可复用的设计,以保证框架具备充分的灵活性,使用户能在已有构件的基础 上生成应用程序,实现“零代码编写”的理想目标。 目前框架的设计大都采用实践法。实践法是指从若干个具体的典型应用中,抽 象出相似点来构建框

温馨提示

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

评论

0/150

提交评论