(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf_第1页
(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf_第2页
(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf_第3页
(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf_第4页
(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(计算机系统结构专业论文)一种嵌入式集成开发环境lambdaide的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 中文摘要 ( 随着后p c 时代的到来,嵌入式设备已经广泛地应用于办公自动化、消费、 通信、汽车、工业和军事等领域,像手机、机顶盒、p d a 、车载g p s 系统、网 络冰箱等新兴的嵌入式设备层出不穷。今天,嵌入式系统甫羲来的工业年产值已超 过一万亿美元,新型嵌入式系统正在成为研究与开发的重点与热点。 嵌入式软件由于自身的特点,对其开发提出一些特殊的要求,既要满足不同 应用领域产品的功能要求,又要保证产品质量。为此,嵌入式系统工程师必须为 嵌入式软件开发者提供使用方便、高效率的集成开发环境( i n t e g r a t e d d e v e l o p m e n te n v i r o n m e n t ) ,集成开发环境将各种先进的开发工具,集成在统一 的操作环境下。开发者利用集成开发环境中提供的各种工具,能够高效的设计和 开发市场所需的嵌入式产品。 卜 本文首先介绍国内外较为流行的嵌入式系统集成开发环境的发展现状,并对 嵌入式操作系统d e l t a o s 进行细致分析,在此基础上,参照流行嵌入式系统的集 成开发环境优缺点,参与设计并实现与d e l t a o s 结合紧密的嵌入式集成开发环境 l a m b d a l d e 。这是一种在功能上高度集成、性能上稳定可靠并具有自主知识产权 的嵌入式集成开发系统。 关键词:嵌入式集成开发环境、集成开发环境、l a m b d a l d e 、i d e , x 一 生! ! 塑生一 _一一一 a b s t r a c t c o m i n gw i t h t h ep o s tp ce r a ,e m b e d d e de q u i p m e n t sa r ew i d e l ya p p l i e di n v a r i o u sf i e l d s ,s u c ha so f f i c i a la u t o m a t i z a t i o n ,c o n s u m p t i o n , c o m m u n i c a t i o n ,a u t o m o b - l i e ,i n d u s t r ya n dm i l i t a r ya f f a i r s m o r ea n d m o r en e wt y p ee m b e d d e de q u i p m e n t ss u c h a sm o b i l ep h o n e s ,s t b ( s e tt o pb o x ) ,p d a ( p e r s o n a ld i g i t a la s s i s t a n t ) ,g p s ( g l o b a l p o s i t i o n s y s t e m ) i n a u t o m o b i l e sa n d n e t w o r k i n gr e f r i g e r a t o r i e s a r e a r r i v i n g n o w a d a y s ,e m b e d d e ds y s t e m sa d di n d u s t r i a lp r o d u c t i o nv a l u em o r e t h a n10 0m i l l i o n u sd o l l a r say e a r r e s e a r c ha n dd e v e l o p m e n to f t h en e w t y p ee m b e d d e ds y s t e ma r e b e c o m i n g t h ee m p h a s e sa n d h o t s p o t b e c a u s eo ft h ec h a r a c t e r i s t i c so fe m b e d d e ds o f t w a r e ,t h e r ea r es o m es p e c i a l r e q u i r e m e n t s t od e v e l o pt h i ss o f t w a r e ,w h i c ha r en o to n l ys a t i s f i e dw i t ht h ef u n c t i o n o ft h e p r o d u c t s i nd i f f e r e n tf i e l d s ,b u ta l s og u a r a n t e et h eq u a l i t yo fp r o d u c t s , t h e r e f o r e ,e m b e d d e ds y s t e me n g i n e e r sm u s tp r o v i d ee m b e d d e ds y s t e m s o f t w a r e d e v e l o p e r sc o n v e n i e n ta n de f f i c i e n ti n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t ,w h i c ha r e i n t e g r a t e d w i t hm a n ya d v a n c e dd e v e l o p i n gt o o l st of o r mau n i f o r m e do p e r a t i n g e n v i r o n m e n t d e v e l o p e r sc a n u s et h o s et o o l st oe f f i c i e n t l yd e s i g ne m b e d d e dp r o d u c t s t h a ta r en e e d e db ym a r k e t i nt h i st h e s i s ,if i r s t l yi n t r o d u c et h ed e v e l o p i n gs t a t u so ft h ep o p u l a re m b e d d e d s y s t e m si n t e g r a t e dd e v e l o p m e n te n v i r o n m e n ti nt h ef o r e i g n , a n da n a l y z eo n eo f t h e e m b e d d e do p e r a t i n gs y s t e m s ,d e l t a o s ,i nd e t a i l t h e n ,b a s e do nt h i sa n a l y s i s ,i c o m p a r e t h ea d v a n t a g e sa n dd i s a d v a n t a g e so f i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t si n p r e v a l e n te m b e d d e ds y s t e m s it o o kp a r t i nt h ed e v e l o p m e n to f l a m b d a i d e ,w h i c h i s t h e i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n tc o u p l i n gw i t h d e l t a o s t h i si n t e g r a t e d d e v e l o p m e n t e n v i r o n m e n th a st h e f o l l o w i n gc h a r a c t e r i s t i c s :h i g h l yi n t e g r a t e d f u n c t i o n s ,t h es t a b l ea n dr e l i a b l ep e r f o r m a n c e ,a n dt h ef o i lk n o w l e d g ep r o p e a yr i g h t b e l o n g e d t ou s k e y w o r d s :e m b e d d e di n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t ,i n t e g r a t e dd e v e l o p m e n t e n v i r o n m e n t l a m b d a i d e ) e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:f t i ! t l :z 多年弓月矿日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师龇多府f 夕 日期:俨;年;月7 目 星二茎篁丝 一 十一 第一章绪论 1 1 嵌入式及嵌入式集成开发环境简介 1 1 1 嵌入式系统 嵌入式系统( e m b e d d e ds y s t e m ) ,又称嵌入式计算机系统( e m b e d d e d c o r e p u t e rs y s t e m ) ,是指以应用为中心、以计算机技术为基础、软硬件可裁剪、 适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 由于嵌入式系统往往是实时系统( r e a l t i m es y s t e m ) ,具有一定的实时要求,因 此也被称为嵌入式实时计算机系统( e m b e d d e dr e a l t i m ec o m p u t e rs y s t e m ) 。 嵌入式系统是实时系统的重要组成部分,一般由嵌入式微处理器( 主要由 1 6 位以上的m p u 、m c u 和d s p 组成) 等硬件及其软件( 包括实时操作系统r t o s 和实时应用程序) 组成,具有专用性、可嵌入性、实时性、可靠性、移动性、 分布式等特点。它通常以s o c ( s y s t e m o n a c h i p 片上系统) 、单片机、单板机、 多板式箱体结构、嵌入式p c 等形式嵌入到各式各样的设备或大系统( 如数字移 动电话、路由器、导弹、信息家电) 中,作为设备或大系统的处理和控制核心。 嵌入式系统的运行需要一个r t o s ( r e a l t i m eo p e r a t i n gs y s t e m ) 的支持,这是 它不同于过去许多单片机或单板机应用的关键之处。 因此,嵌入式系统是将先进的计算机技术、微电子技术和现代电子系统技 术与各个行业的具体应用相结合后的产物,这一点决定了嵌入式系统必然是 个技术密集、资金密集、高度分散、不断创新的知识集成系统。 1 1 2 嵌入式计算系统的特点 嵌入式计算系统有别于通用计算系统的一些特点主要有; 1 ) 专用性强且资源有限一不同的嵌入设备完成特定功能、具有专用接口, 应用环境和应用方式对其资源规模带来较大限制; 生兰篁丝 一 _ 一 2 ) 软硬件紧密融合一在嵌入式系统中,硬件操作需要特定软件控制t 软 件运行需要特定硬件环境支持; 3 ) 多任务实时并发一大多数嵌入计算应用任务必须实时并发地协同活 动,才能实现系统赋予的处理或管理功能; 4 ) 应用模式多样化一同一个嵌入计算平台,针对不同具体应用或不同应 用环境,构成不同的系统配置、接1 :2 种类和应用模式; 5 ) 嵌入软件作用更为突出一随着嵌入系统智能化程度的不断提高,嵌入 软件在嵌入式系统中的作用日益突出。嵌入软件规模不断增大,嵌入 软件开发成本占系统成本较大比例且成为影响开发周期的瓶颈。 显然,嵌入式计算系统上述固有特点无疑增加其开发的难度。为了有效地 管理和调度嵌入式系统实时资源,首先需要一个健壮高效的操作系统内核。除 此之外,为了高效且高质量地设计开发各种嵌入式应用系统和设备,还必须构 造一个优秀的嵌入式软件开发环境。 1 1 3 嵌入式系统开发 嵌入式系统一般由硬件和软件两部分组成,因此其开发过程大致可分为需 求分析、规格说明、硬件软件分解、硬件软件设计、硬件软件实现、集成测 试、产品分配与维护等六个阶段。通常,在嵌入式系统硬件软件分解结束后, 开发人员分别独立进行嵌入式硬件和嵌入式软件的设计与实现,并在软件实现、 硬件制造完成后,进行整个嵌入式系统的集成测试。在本论文中,只讨论嵌入 式软件开发。 1 1 4 嵌入式软件开发 嵌入式软件开发,主要是指r t o s 之上的应用软件开发,开发过程一般按 照嵌入式应用软件开放式集成开发平台体系结构研究实时软件工程( s o f t w a r e e n g i n e e r i n gf o rr e a l - t i m es y s t e m ) 生命周期的瀑布模型来进行,并可考虑快速 原型方法。由于嵌入式系统受资源限制,不可能建立庞大、复杂的开发平台, 其开发平台和目标运行平台往往相互分离。因此,嵌入式软件的开发方式一般 星兰堡篁丝 一一。 是在主机( h o s t ) 上建立开发平台,进行应用程序的分析、设计、编码,然后主 机同目标机( t a r g e t ) 建立连接,将应用程序下载到目标机上进行交叉调试( c r o s s d e b u g g i n g ) 、性能优化分析( p r o f i l i n g ) 和测试,最后将应用程序“固化( b u r n i n g ) ” 到目标机中实际运行。 1 1 5 嵌入式软件开发平台 嵌入式软件开发平台( d e v e l o p m e n tp l a t f o r m ) 是为用户开发( 包括需求分 析、规格说明、设计、编码、测试、产品分配与维护等阶段) 嵌入式应用程序 而挺供的高起点、综合的支撑环境( s u p p o r te n v i r o n m e n t ) ,包括面向领域的应 用程序基本框架、可重用的组件库、参考设计、应用示例、开发工具集、r t o s 、 相关文档以及对平台进行管理、配置的设施等技术实体,主要功能是将工具集 成在一起支持某种软件开发方法或与某种软件开发模型相适应,是用户开发应 用程序的重要基础,强调知识成果的积累和重用,是平台开发模式思想的集中 体现。 通常,嵌入式软件开发平台支持嵌入式软件生命周期中的一个或多个开发 阶段,如设计平台、i d e ( i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t 集成开发环境, 主要支持编码阶段的开发平台) 、测试平台、维护平台等。 1 1 6 嵌入式集成开发环境 嵌入式系统的集成化的开发环境( 嵌入式i d e ) ,都采用交叉开发方法, 在u n i x 、w i n d o w s 主机平台上开发与之连接的目标机。开发环境包括自己的 可裁剪的微内核实时多任务操作系统,主机上的编译、调试、查看等工具,以 及利用串口、网络、i c e 等主机与目标机的连接工具。它们的特点是有各种第三 方的开发工具可以选用,象“逻辑分析仪”、代码测试工具、源码分析工具等 一应俱全,支持多种3 2 位目标机体系结构,支持多处理器并行开发。使用这样 的工具自然大大加快了产品的开发速度。 1 2 嵌入式软件开发对嵌入式集成开发环境的要求 随着嵌入式系统应用范围的不断扩大,嵌入式软件的规模和复杂性日益增 第一章绪论 长,相应地对嵌入式集成开发环境提出更多、更高的要求: 1 ) 嵌入式软件集成开发环境从专有到开放的过渡:嵌入式软件集成开发环 境从支持专有的硬件平台、r t o s 和开发工具,向支持开放的硬件平台、r t o s 和开发工具过渡,方便用户应用程序的开发; 2 ) 支持大型复杂、分布式的嵌入式系统开发:随着嵌入式系统应用领域的 扩展,大型复杂、分布式的嵌入式系统开发是当今所面临的极富挑战性的课题 之: 3 ) 支持基于i n t e m e t 的协同工作:并行工程( c o n c u r r e n t e n g i n e e r i n g ) 是对软 件实施并行设计和并行开发的系统方法,协同工作为并行工程的实现奠定了技 术基础; 4 ) 支持软硬件协同设计和验证( h a r d w a r e s o f t w a r ec o d e s i g n a n d c o v e r i f i c a t i o n ) :基于协同设计和验证环境,实现软硬件的并行开发,显著提高 嵌入式系统的开发效率; 5 ) 支持s o c ( s y s t e mo nac h i p ) 开发:随着i p 核( i n t e l l e c t u a lp r o p e r t y 知识产权模块) 的广泛应用以及s o c 在体积、功耗和可靠性等方面具有的明显 优势,支持s o c 开发将是大势所趋: 6 ) 支持代码自动生成( a u t o m a t i cc o d eg e n e r a t i o n ) :随着软件自动化 ( s o f t w a r ea u t o m a t i o n ) 的发展,在嵌入式软件集成开发环境领域中将会出现更 多的软件工具以支持代码自动生成; 7 ) 安全性v & v ( v a l i d a t i o na n dv e r i f i c a t i o n 确认和验证) :对于一些安全关 键( s a f e t yc r i t i c a l ) 的嵌入式系统,安全性的确认和验证尤为重要; 8 ) 可视化开发:能够大大提高用户嵌入式应用软件的开发效率。 1 3 嵌入式集成开发环境的发展方向 由于嵌入式应用软件的特殊性,往往要求应用程序设计者具有一定的实时 操作系统的专门知识,能合理地划分任务,合理地配置系统以及目标联机地调 试。因此,要设计实现一个高性能的实时应用软件,需要强有力的交叉开发工 星二茎篁鳖 一 具系统的支持。国外十分重视发展与嵌入式操作系统配套的嵌入式应用的集成 开发环境,现在已经发展到第三代,它以客户服务器( c l i e n t s e r v e r ) 的系统结 构为基础,具有运行系统的无关性、连接无关性、开放性、软件接口和环境的 一致性、宿主机上的目标仿真等特点,能有效缩短产品开发周期。 综上所述,当前嵌入式实时操作系统及其应用开发环境正向超微内核、开 放性和集成化方向发展。实时计算系统的研究及其发展趋势将表现在以下几个 方面: 1 ) 更注意投入市场的时间,而不是性能; 2 ) 更重视软件而不是硬件; 3 ) 计算机供应商将最终成为系统集成商; 4 1 为灵活的市场生产增值产品; 5 )( 类) u n i x 操作系统将很快在实时应用领域成为标准操作系统。 1 4 嵌入式软件集成开发环境发展状况 1 4 1 国外发展状况 在国外,对r t o s 的研究起步较早。二十世纪7 0 年代中期,针对实时语言 p e a r l ( p r o c e s sa n d e x p e r i m e n t a u t o m a t i o nr e a l - t i m el a n g u a g e ) 的特殊要求, 德国支持开发了功能强大的实时操作系统;八十年代初,美国就出现了商业化 的r t o s 产品,如r e a d y 公司1 9 8 1 年发布的r t o s 产品v r t x 。经过二十多年 的发展,国际市场上出现了以v r t x 、v x w o r k s 、p s o s 、w i n d o w sc e 、e p o c 、 p a l m o s 等为代表的近四十个实时操作系统家族,支持不同处理器的2 0 0 多个产 品,广泛应用于信息家电、数字通信、工业控制、航空航天、医疗设备、军事 电子等领域。 r t o s 应用程序的开发一般首先需要在主机平台( 如u n i x 或w i n d o w s ) 上 配备相应的嵌入式软件集成开发环境,完成编辑、交叉编译和交叉调试等编码 阶段的任务,支持c 、c + + 、a d a 、j a v a 等高级实时语言的编程。这类集成开发 第一章绪论 环境起初主要由第三方工具公司提供,为不同操作系统的不同处理器版本专门 定制,如美国m e t r o w e r k s 公司的产品c o d e w a r r i o r 。随着用户对嵌入式软件开发 平台需求大增,r t o s 供应商也纷纷投入巨资发展本系列r t o s 产品的集成开发 环境,如w i n d r i v e r 公司的产品t o r n a d o 、i s i 公司( 该公司目前已被w i n d r i v e r 公司兼并) 的产品p r i s m + 等。 国际上,嵌入式软件集成开发环境的另一支重要的研发队伍是自由软件协 会( g n u ) ,他们在i n t e m e t 上免费提供有关研究和开发成果,如r t o se c o s 、 针对特定处理器的g c c ( 本地编译器) 和c g c c ( 交叉编译器) 。目前一些公 司已在g n u 软件的基础上,经过集成、优化和测试,推出更加成熟、稳定的商 业化版本的嵌入式软件集成开发环境,如c y g n u s ( 该公司目前已被r e d h a t 公司 兼并) 公司推出的商业化产品g n u p r ot o o l k i t ( g c c 编译器系列的商业版) 和s o u r c e - - n a v i g a t o r ( 集成化编辑器和源代码浏览器) 。这两种c y g n u s 工具中功能更强大 的是s o u r c e - - n a v i g a t o r ,虽然它们可以集成在一起,但实际上它们并不能算是 一个真正的i d e 。c y g n u s 计划发布一个用于l i n u x 的真正的i d e ,称为c o d e f u s i o n 。c o d ef u s i o n 将把g n u p r ot o o l k i t 和s o u r c e - - n a v i g a t o r 集成起来,增加 一些新特性,并且将取代s o u r c e - - n a v i g a t o r ,p r o f e s s i o n a l e d i t i o nf o rl i n u x 。 1 4 2 国内发展状况 国内的r t o s ,从上世纪9 0 年代初开始经过一些单位多年的攻关,已经突 破了主要关键技术,并开发出具有一定先进水平、自主版权的r t o s 产品,如 电子科技大学的c r t o s 、中国科学院北京软件工程中心的h o p e n ( 女娲) 和浙 江大学的h b o s 等r t o s 产品。 国内使用的嵌入式软件集成开发环境,多数从国外引进,自主研究和开发 成果较少,与国际先进水平相比尚存在一定差距,我校对嵌入式软件集成开发 环境的研究和开发已取得多项成果,如支持i n t e lx 8 6 处理器的嵌入式软件基本 开发工具系统g n a t r t e m s ,包括交叉g c c 编译器、交叉g d b 调试器、目标 监控器等,实现了基本的编辑、交叉编译、交叉调试等功能,支持a d a 、c 、c + + 、 汇编等语言的开发。 堑! 篁鳖 _ _ 一 一 1 5 研究背景和意义 随着“后p c ”时代的到来,嵌入式系统的应用日益广泛,涉及到人类生活 的许多方面,如数字通信、信息家电、航空航天、工业过程控制及军事电子等。 伴随着硬件技术的日益成熟及软件在该类系统中的广泛应用,软件已逐步取代 硬件成为系统的主要组成部分,原先采用硬件实现的诸多功能改由软件实现, 使得系统的实现更加灵活,适应性和可扩展性更加突出,如通信领域中提出的 “软件无线电”、测量测试领域中提出的“软件就是仪器”都是这种思想的体 现。面对嵌入式软件的迫切需求,嵌入式软件集成开发环境作为一类复杂的系 统软件,其技术含量高、价格昂贵,是现代嵌入式系统开发的必备工具软件, 对于推动国产嵌入式软件产业化也有着重要的意义。因此,嵌入式软件集成开 发环境的研究与开发成为必要。 如何开发和构造一个嵌入式软件集成开发环境,满足集成性、开放性、适 用性、灵活性等要求则一直是个难题,目前还没有一个通用的实现方法。不同 的软件提供商对于i d e 有不同的定义,不同用户对于i d e 也有不同的期望,从 某种意义上讲,这也是i d e 的不同定义。原来习惯于桌面开发环境的嵌入式开 发者总会用m i c r o s o f t 来作为参照,于是会把编辑、编译、调试、项目管理作为 基本的要求。桌面软件开发者比较关注应用开发,对于编辑、编译和调试功能 的依赖性比较强。随着应用规模的增加,他们也希望i d e 能够提供源代码分析、 高级语言调试、企业级项目管理与构造工具。另一方面,硬件工程师希望寻找 更复杂的工具,以便在更深层次上开发嵌入式软件或者进行a s i c ( a p p l i c a t i o n s p e c i f i ci n t e g r a t e dc i r c u i t ) 验证,而且也愿意为此牺牲一些桌面环境 所具有的方便性。 与仅仅使用桌面开发环境的人相比,嵌入式开发者还要面对着更复杂的情 况,他们要适应多种硬件平台和操作系统。例如,完全可能在一个应用系统中 同时应用w i n d o w s 和s o l a r i s 进行开发和部署。此外,随着性能、规模和成本的 限制条件不同,软件和硬件平台也必须经常进行调整。因此,嵌入式开发者常 常会以硬件为中心去考虑开发平台。 桌面和嵌入式应用的开发环境已经越来越多地出现交叉和重叠。随着更多 第一章缝论 的开发工具走向市场,以硬件为中心的嵌入式开发工程师也许会做一些更接近 应用软件或者中间件的工作,而面向应用软件的工程师则可能反过来做一些与 硬件更接近的代码。考虑到上述不同的用户需求,i d e 提供商也在推出各种各样 的产品,这就难怪嵌入式i d e 的组成部分有那么多的差异。 对于大多数i d e 来说,无论设计目标应用是嵌入式装置还是台式机,编译器 和调试器是其中的基本工具。编译器的主要功能是将c 、c + + 或j a v a 语言的应 用源代码转换成可执行的程序,其结果可以是机器语言或者汇编语言。 本文正是考虑到嵌入式软件开发对i d e 的要求,而引出嵌入式集成开发环境 的研究和实现这一课题的。 1 6 本文章节安排 第一章介绍嵌入式、嵌入式集成开发环境、嵌入式软件开发的一些基本概 念以及嵌入式集成开发环境的发展现状、研究背景和意义;第二章介绍实时系 统的定义、实时编程的概念、实时编程所使用的语言、实时操作系统、实时软 件的测试、嵌入式软件的开发和调试以及软件开发的版本控制;第三章介绍了 几种实时操作系统的开发环境;第四章提出一种嵌入式集成开发环境 l a m b d a i d e 的设计目标和开发方法;第五章是l a m b d a i d e 的具体设计与实现; 第六章是全文的结束语。 墨三兰型燮塑坠茎塑丝兰鲨 第二章实时系统与嵌入式软件开发 2 1 实时系统的定义 实时系统是对外来事件在限定时间内能做出反应的系统。限定时间的范围 很广,可以从微秒级到分级。 实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结 果的时间。实时系统这一领域的基本特征是实时操作模式。实时操作模式是指: 在计算机系统内部,用于处理从外部到达的数据的程序总处于就绪状态,而这 些程序的运行结果只在确定的时间范围内有效;根据不同的应用,数据的到达 时间可以是随机的,或是预先就已确定了的。 按实时性的强弱( 即根据系统响应时间的长短) 可将实时系统大致分为以下 几种: 强实时系统,其系统响应时间在毫秒或微秒级; 般实时系统,其系统响应时间在几秒的数量级上,其实时性的要求比强实 时系统要差一些; 弱实时系统,其系统响应时间允许为数十秒或更长。这种系统的响应时间可 能随系统负载的轻重而变化,即负载轻时系统响应时间可能较短,实时性好一 些,反之系统响应时间可f 毙;b n 长。 实时系统通常作为一种智能部件被嵌入到一个较大的环境中。这种情况下 的实时系统称为嵌入式实时系统。如不特别说明,本文中实时系统均指嵌入式 实时系统。 一种错误的观点认为:如果某种应用没有用户界面,从而用户不能直接地 和它交互,那么它就是嵌入式系统。举个反例,电梯控制系统是嵌入式系统, 但它却有一个用户界面:选择楼层的按钮和显示电梯正到达几层的指示器。 笙重型堕笙塑型丝型 2 2 实时编程 实时编程( r e a l t i m ep r o g r a m m i n g ) 的主要任务是根据实时软件的设计, 选择合适的实时语言和实时操作系统进行程序编码,强调好的编码风格和编码 规范,写出高质量的代码。 2 3 实时语言 在实时软件编码时,选择编程语言很重要,因为它关系到所选语言的语言 特征能否很好地支持实时系统的有关特性,如实时性、安全性、可靠性、简易 性、可移植性和有效性。目前汇编语言已较少使用,许多通用高级编程语言, 如c 、c + + 、f o r t r a n 、m o d u l a - 2 、j a v a ,可以有效地用于实时应用。然而,在军 事和工业控制应用中也经常用到一组专门的实时语言,如a d a 、j o v i a l 、h a l s 、 c h i l l 、e c + + 、p e a r l 、l t r 等。实时语言有一些区别于通用语言的特性,包括 支持多任务、支持任务间的同步和通信、直接实现实时功能的结构和保证程序 正确性的现代语言特性等。同时,不管通用语言还是实时语言,当用于实时软 件开发时,对交叉编译器都有更高的要求,如针对具体硬件平台存在着更多的 优化,产生高质量的代码,在代码大小和运行速度上满足实时系统的需求等。 虽然c 在语言一级并不支持多任务,但是它可以充分利用r t o s 提供的系 统调用,支持多任务编程等实时特性,再加上c 语言本身的些优点,如简洁、 灵活、高效,使得c 语言能够有效地满足实时应用的需求。c + + 作为c 语言的 扩展,直接用作实时编程语言却存在一些明显的缺点,如内存资源要求高和运 行效率差,某些语言特性,如多继承、异常处理和运行时类型识别,严重增加 了程序的尺寸和运行时的额外开销,不能很好满足某些嵌入式系统需求。因此, 日本的一些半导体、家电厂商( 包括f u j i t s u 、h i t a c h i 、n e c 、t o s h i b a 等) 和美 国的软件公司( 如g r e e nh i l l ss o f t w a r e ,i n e 等) 成立了e m b e d d e dc _ 卜+ ( 嵌入式 c + + ,简称e c + + ) 联盟,其宗旨是制订一套面向嵌入式系统的c + + 规范。e c + + 是标准c 十+ 的子集,保持c + + 面向对象的优点,去掉了许多嵌入式编程不需要 的c + + 特性,在保持同标准c + + 兼容的基础上,充分利用现有c + + 的代码资源。 虽然该规范目前仍在讨论之中,尚未获得i s o a n s i 的正式批准,但已有公司推 1 0 苎三墨薹塑堕塑坠塑丝笙蕉一 一_ ,一一 出了编译器产品,并在市场上获得良好的应用。 j a y a 语言在i n t e m e t 编程方面取得了巨大的成功。由于j a v a 具有面向对象、 与平台无关、支持多线程、分布式、安全机制、内在的i n t e m e t 集成等特性,因 此获得了大批拥有雄厚技术实力开发商的支持。j a v a 最新的标准j 2 m e ( j a v a2 m i c r oe d i t i o n ) 是标准j a v aa p i 的一个子集,只包含了j a v a 的关键特性,是专 门针对那些对内存具有苛刻要求的嵌入式设备而设计的,在程序规模、运行速 度、缺乏指针寻址、垃圾自动搜集以及运行于j a v a 虚拟机( j v m ) 模式中的安 全特性使j a v a 很难对硬件进行直接控制等问题都得到了妥善解决,能够顺利完 成嵌入式系统的开发。 a d a 语言是由美国国防部在八十年代初主持开发的一种面向对象编程的语 言,最初设计用于实时系统的开发。a d a9 5 是i s o 和a n s i 于1 9 9 5 年制定的最 新a d a 标准,与a d a8 3 标准兼容,是第一种国际标准的面向对象编程语言。a d a 语言能够满足用软件工程方法进行实时系统开发的要求,如支持大型程序开发、 可靠性和安全性设计、异常处理、并行程序设计、同步通信、实时构造、任务 调度、分布式系统支持以及低级编程等。因此,许多国家的国防、航空和航天 等部门广泛使用a d a 语言,将a d a 语言作为嵌入式软件开发的标准语言,如欧 洲航空工业公司生产的a 3 4 0 大型客机,使用了1 1 5 个数字处理单元,有近 2 0 m b y t e s 的目标代码,其中大部分代码采用a d a 语言编码。 关于实时编程语言的选择,有一条基本原则,即根据应用需求,具体问题 具体分析。设计小型、高效、可执行关键任务的实时应用,如火箭控制、传感 器通信等,最好采用c 语言或汇编语言;对于信息家电等实时性要求不高、需 要良好的用户接口、与i n t e m e t 连接的设备,j a v a 语言将是一种理想的选择;对 于大规模、分布式的嵌入式系统应用,如飞机、军舰等,采用a d a 、c h 或e c + + 语言是一个理想的选择。 2 4 实时操作系统 操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进 行调度以及方便用户的程序集合。 星三兰塑塑堕塑垄型 一。 操作系统的出现及发展可以有以下分类: 多道批处理操作系统、分时操作系统和实时操作系统。 多道批处理操作系统十分注意c p u 及其它设备的充分利用,追求高的吞吐 量,不具备实时性; 分时操作系统主要目的是让多个计算机用户能共享系统的资源,能及时地 响应和服务于联机用户,只具有很弱的实时功能; 实时系统是对外来事件在限定时间内能做出反应的系统。实时系统又可分 一般实时和嵌入式实时系统。 实时操作系统( r t o s ) 是满足实时系统并发需求、提高实时软件开发效率 和可移植性的重要手段,是实时应用程序必不可少的运行平台。r t o s 可分为 两大类: 1 ) 专门为实时应用设计的r t o s ,如v x w o r k s 、p s o s 、d e l t a o s 、 p a l m o s 、e p o c 、w i n d o w sc e 等; 2 ) 经过扩展,提供实时性能的通用操作系统,如r t l i n u x 、嵌入式 l i n u x 、w i n d o w sn te m b e d d e d 等。 r t o s 一般采用微内核结构,基于优先权抢占的调度策略,具有任务管理、 任务间同步和通信( 如信号量、消息队列、异步信号、共享内存、管道等) 、 内存管理、中断管理等功能。衡量r t o s 内核( 或执行体e x e c u t i v e ) 的技术指 标主要有上下文切换时间( c o n t e x ts w i t c ht i m e ) 、中断响应时间( i n t e r r u p t r e s p o n s et i m e ) 、内核代码最小尺寸、调度器实现的算法、系统调用的数量、 系统对象的限制、内存保护、多处理器支持等实时系统的需求多种多样,不同 的r t o s 又具有各自的特点,选择r t o s 时,主要确定r t o s 的特点是否满足 应用需求。除考虑上述内核性能指标外,还应考虑下述问题: 1 ) 除内核外,r t o s 提供的组件( 如t c p i p 协议栈、嵌入式数据库、嵌 入式g u i 等组件) 功能、性能如何,能否满足应用需求: 2 ) 提供的开发平台功能和易用性如何; 3 ) r t o s 的结构是否合理,这将影响到能否方便地增加新设备的驱动程序 1 2 墨三茎垄塑丝童堡垒型竺型芝鲨 一 _ 一 和应用程序的移植; 4 ) 版权( l i c e n s e ) 和财务问题,包括r t o s 和开发平台的一次性购置费 用、r t o s 的版费( 是r o y a l t y p a y 还是r o y a l t y - f r e e ) 以及未来的升级 费用等; 5 ) 标准化支持,r t o s 的a p i 是否符合相应标准,如p o s i x 1 0 0 3 4 或i t r o n ; 6 ) r t o s 的可剪裁问题; 7 ) 整套产品的成熟度和可靠性以及市场竞争能力如何,是否具有持续发 展的能力。 关于r t o s 的未来发展是提高其防危性( s a f e t y ) 、安全( s e c u r i t y ) 、容错 能力( f a u l tt o l e r a n c e ) 、高可用能力( h i g l la v a i l a b i l i t y ) 、高性能( h i g h p e r f o r m a n c e ) 以及多处理器和分布式处理能力。 2 5 实时软件的测试 软件测试( s o f t w a r et e s t i n g ) 作为软件生命周期中一个独立的测试阶段,是 软件质量保证的主要活动之一。实际上,仅有这样一个测试阶段是远远不够的, 测试应是软件过程中必不可少的部分,贯穿整个软件生命周期。g l e nm y e r s 对 测试目标作了如下归纳: 1 ) 测试是一个程序的执行过程,其目标在于发现错误; 2 ) 一个好的测试用例( u s ec a s e ) 能够发现至今尚未察觉的错误; 3 ) 一个成功的测试是发现至今尚未察觉的错误的测试。 此外,软件测试通常是v & v ( v e r i f i c a t i o na n d v a l i d a t i o n 验证和确认) 的一 部分,验证是保证软件正确地实现了指定功能的一系列活动,通常在每个阶段 的结尾进行;确认是保证已经实现的软件满足客户需求的一系列活动,通常在 软件产品发布给用户之前进行。 由于实时系统的特殊性质,导致实时软件的测试非常困难,主要表现在以 下几个方面: 1 3 第二章实时系统s 嵌入式软件开发 1 ) 许多实时软件的异步性质与时间有关,测试用例的设计不仅要考虑白 盒和黑盒的测试用例,还要考虑数据的定时和处理该数据任务间的并 行性( p a r a l l e l i s m ) 。因此,在实时软件的某种运行状态下,提供的测 试用例可能产生正确的结果;而当这种软件在其它运行状态下,提供 同样的测试用例可能会导致错误; 2 ) 实时软件与其硬件环境之间的紧密关系也会使测试发生困难。因此, 软件测试必须考虑硬件故障给软件带来的影响,要实际地模拟这样的 故障有时可能极其困难; 3 ) 实时软件的交叉调试方式,使得实时软件的运行受到主机端工具和目 标机端工具两方面因素的影响。当软件利用交叉调试工具或跟踪方式 执行时,系统可能正确执行,而当不使用这些工具运行时,系统可能 进入故障,无法正确运行,反之亦然; 4 ) 许多实时系统是以并发系统形式实现的,并运行在多个处理器上,测 试这种分布式软件将更为困难。 实时软件工程尽管如此,目前仍有一些可行的实时软件的测试方法,如静 态分析、正确性证明、系统测试和确认、统计测试和仿真等,前两种方法是基 于非执行的测试,又称为静态测试;其余都是基于执行的测试,又称为动态测 试。 静态分析是实时软件常用的一种测试方法,基本原理是采用分析器程序从 一种语言的源程序中抽取语法和语义等信息,用于完成度量代码的复杂度以及 检查编码规则等功能。 动态测试通常又可分为白盒测试和黑盒测试,一般采取交叉测试的方式, 即主机和目标机建立连接,将被测程序下载到目标机中,使程序在控制下运行, 然后通过主机端相应工具观测运行结果,了解程序的运行行为,从而发现程序 错误。 2 6 嵌入式软件开发与调试 随着嵌入式设备的不断普及,各种嵌入式设备都具有功能专一、针对性强 - 1 4 第二章实时系统与嵌入式软俘开发 的特点

温馨提示

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

评论

0/150

提交评论