(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf_第1页
(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf_第2页
(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf_第3页
(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf_第4页
(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf_第5页
已阅读5页,还剩96页未读 继续免费阅读

(计算机应用技术专业论文)面向通信领域的嵌入式软件开发平台的设计与实现.pdf.pdf 免费下载

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

文档简介

亘壹奎望查兰堑窒竺兰焦堡塞 兰! 墨 摘要 嵌入式软件及嵌入式软件系统已成为世界软件业的新热点。如何高效率地 开发嵌入式系统中的应用软件,是一个关键问题。嵌入式软件开发平台能最大 限度地支持嵌入式系统的软件开发,减轻工程人员不必要的负担,而使他们的 精力更多地集中在应用系统的设计开发上,从而加快开发进度、提高产品竞争 力。在已有的各种嵌入式系统封装层的基础上,建立企业级的“嵌入式软件开 发平台”不仅符合嵌入式软件技术的发展方向,而且意义重大。“嵌入式软件开 发平台”将为企业中所有的嵌入式应用软件提供统一的开发平台,这样上层应 用的开发人员只需了解和运用开发平台提供的接口,而不必关心底层操作系统 的具体情况,从而大大节省人力资源、缩短开发时间、降低开发及维护费用、 提高产品质量、提高嵌入式应用软件的可移植性。 本论文设计和实现了面向通信领域的嵌入式软件开发平台。该平台是位于 嵌入式实时操作系统之上,屏蔽各种操作系统之间的差异,为上层提供一个统 一的接口同时针对通信行业的特点,实现了通信业务的并发管理、通信任务 之间的消息通信、减少通信内存碎片的内存管理以及大容量多种类型定时器处 理等一系列通信系统的支撑功能软件模块。嵌入式软件开发平台的引入大大简 化了上层应用软件的设计和实现,同时方便了应用软件的移植。 为了能实现上述功能,论文主要对以下几方面的内容进行了详细的介绍: 1 ) 实现对底层不同类型操作系统的屏蔽,对上层提供统一的系统调用。 2 ) 设计基于平台的任务间实时调度的两种核心算法。 3 ) 设计基于平台的高效率的消息通信机制。 4 ) 设计平台中内存的管理办法。 5 ) 设计平台中独立的高精度定时器。 6 ) 设计平台中的监控系统。 7 ) 对平台从整体上进行性能测试,检测其在性能上是否能够满足实际需要的要 求。 在完成上述工作后,就能够实现一个功能完整的面向通信领域的嵌入式软 件开发平台。目前,该平台已经在c d m a 基站系统、路由器等通信产品上得到了 验证,并被成功移植到中兴通讯公司的a d s l 设备中。 关键词:嵌入式系统嵌入式软件平台实时调度算法通信机制定时器 内存管理监控系统 ( 注:本论文来自“8 6 3 ”课题,该课题( 编号:2 0 0 2 a a i z 2 3 0 6 ) 名是:面向仪 器控制信息电器通信行业的嵌入式软件平台。) 西南交通大学研究生学位论文 第1i 页 a b s t r a c t e m b e d d e ds o f t w a r ea n de m b e d d e ds o f t w a r es y s t e mh a v eb e c o m en e wh o t p o i n ti ns o f t w a r ef i e l d h o wt od e v e l o pa p p l i c a t i o ns o f t w a r ee f f i e i e n t l y i ne m b e d d e ds y s t e mi sak e yq u e s t i o n e m b e d d e ds o f t w a r ep l a t f o r mc a n s u p p o r t ss o f t w a r ed e v e l o p i n gi ne m b e d d e ds y s t e ma n dr e d u c e se n g i n e e r s w o r k l o a d ,w h i c hm a k e se n g i n e e r sc o n c e n t r a t eo nt h ed e s i g no fa p p l i c a t i o n s y s t e m i ti sv e r yi m p o r t a n t t oc o n s t r u c te m b e d d e ds o f t w a r ep l a t f o r m , w h i c ha c c o r d sw i t he m b e d d e ds o f t w a r et e c h n o l o g yd e v e l o p m e n td i f e e t i o n e m b e d d e ds o f t w a r ep l a t f o r mw il ls u p p o r tu n if o r md e v e l o p i n gp l a t f o r mf o r a l le m b e d d e da p p l i c a t i o ns o f t w a r e s oe n g i n e e r so n l yk n o wa n da p p l yt h e i n t e r f a c et h a tt h ep l a t f o r mp r o v i d e s ,t h e mn e e d n tu n d e r s t a n db o t t o m o p e r a t i n gs y s t e m s ot h es o f t w a r ed e v e l o p i n ge f f i c i e n c yw i l lb e i n c r e a s e d m o r eh i g h l y t h i sp a p e rp r e s e n t sa ne m b e d d e ds o f t w a r ep l a t f o r mi nc o m m u n i c a t i o n f i e l d s t h ep l a t f o r mi sb a s e do ne m b e d d e dr e a l t i m eo p e r a t i n gs y s t e m , i tm a s k st h ed i f f e r e n c eb e t w e e nv a r i o u so p e r a t i n gs y s t e ma n dp r o v i d e s au n i f o r mi n t e r f a c eb e y o n di t t h ep l a t f o r ma l s op r o v i d e ss o m es u p p o r t i n g s o f t w a r em o d u l es p e c i a l l yd e s i g n e df o rc o m m u n i c a t i o na p p l i c a t i o n ,b a s e d o ne m b e d d e ds o f t w a r ed e v e l o p m e n tp l a t f o r m ,t h ed e s i g na n dr e a l i z a t i o n o ft h eu p p e ra p p li c a t i o ns o f t w a r ei sv e r ys i m p l e ,a tt h es a m et i m et h e a p p l i c a t i o ns o f t w a r ec a nb et r a n s d l a n t e dc o n v e n i e n t l y t or e a l i z et h ef u n c t i o n s ,i nm yp a p e rih a v ei n t r o d u c e dd e t a i l e d l y s u c ht h i n g sa sf o l l o w s : 1 ) o sa d a p t e rm o d u l e 2 ) m e m o r ym a n a g e m e n tm o d u l e 3 ) t i m e rm a n a g e m e n tm o d u l e 4 ) s c h e d u l em a n a g e m e n tm o d u l e 5 ) t a s kc o m m u n i c a t i o nm o d u l e 6 】s y s t e mm o n i t o rm o d u l e 7 ) a b i l i t yt e s to ft h ew h o l ep l a t f o r m t h ec o m m u n i c a t i o n o r i e n t e de m b e d d e ds o f t w a r ep l a t f o r mh a sa l r e a d y v e r i f i e do nc d m ab a s es t a t i o ns y s t e ma n dr o u t e r ,a n dp l a t f o r mh a sb e e n t r a n s p l a n t e ds u c c e s s f u l l y t oz t ec o m m u n i e a t i o n c o r p o r a t i o n a d s l e q u i p m e n t s k e yw o r d s :e m b e d d e ds y s t e me m b e d d e ds o f t w a r e p l a t f o r m r e a l t i m e s c h e d u l ea l g o r i t h me o m m u n i c a t i o nm o d et i m e r m e m o r y m a n a g e m e n t m o nit o rs y s t e m 西南交通大学研究生学位论文 第1 页 1 1引言 第1 章绪论 随着生产和科学技术的发展,特别是微电子技术及计算机技术的迅猛发展, 嵌入式系统越来越普遍地得到应用,也越来越显示出其商用的巨大市场回报。 事实上,嵌入式软件是软件从硬件的“第二次分拆”,与1 9 6 9 年软件从计算机 中的分拆相似,人们普遍认为这次新的分拆有着更大的发展机会。g a r t n e r 集团 公司预计嵌入式软件市场将“在以后几十年里毫不夸张地激增”。正因为如此, 嵌入式系统一直是人们研究的热点之一,被广泛应用于军事、交通、家电、通 讯产品、计算机外围设备、办公设备、智能仪器仪表和其他新兴领域。综观嵌 入式系统的发展历程和未来趋势,有一点是可以肯定的,那就是目前嵌入式系 统的物理结构和能力的限制将会消失,将会满足各行各业对嵌入式系统硬件的 要求。随着嵌入式系统应用水平和复杂性的不断提高,对嵌入式系统软件的要 求也不断提高。在开发高性能嵌入式系统时,其中的一个重点就是对“嵌入式 软件开发平台”的研究,目的是使嵌入式软件系统朝着通用化、标准化、系列 化、模块化、平台化的方向发展,为保证系统内外的互连、互通、互操作提供 稳定可靠的条件。这是嵌入式软件系统开发人员面临的新挑战。 面向特定应用的嵌入式操作系统是重要发展趋势,嵌入式操作系统伴随着 嵌入式系统的发展经历了三个比较明显的阶段: a ) 无操作系统的嵌入算法阶段 这一阶段的嵌入式系统是以可编程控制器的形式、以单芯片为核心的系统, 同时具有与一些监测、伺服、指示设备相配合的功能。 b ) 简单监控式的实时操作系统阶段 这一阶段的嵌入式系统主要以嵌入式处理器为基础、以简单监控式操作 系统为核心。 c ) 通用的嵌入式实时操作系统阶段 以通用型嵌入式实时操作系统( r t 0 5 ) 为标志的嵌入式系统。如v x w o r k s 、 p s o s 、w i n d o w sc e 就是这一阶段的典型代表。这一阶段系统的特点是能运行在 各种不同类型强大的微处理器上;具有强大的通用操作系统的功能,如具备了 文件和目录管理、多任务、设备支持、网络支持、图形窗口以及用户界面等功 能;具有大量丰富的应用程序接口( a p i ) 和嵌入式应用软件。 目前在通信行业中,随着不同厂商提供的不同设备的更新换代,往往某个 通信实时软件只能在特定硬件平台上运行,而且移植性差,导致开发成本非常 昂贵而且非常容易出错。这就急需一种能屏蔽不同的硬件平台甚至不同操作系 统,符合通信设备上应用软件不同需求的一个支撑平台,来为上层的嵌入式应 用软件的开发提供一种统一的接口,也为嵌入式软件提供了一种新的开发模式 和实现思想。 西南交通大学研究生学位论文第2 页 1 2 课题背景 目前全世界6 0 0 个左右的独立平台开发商每年花费将近1 0 2 0 的r & d 力 量用于开发具有相同特性的平台功能,这种现象导致了低效率的平台产业,严 重阻挡了平台应用功能的创新和开发。通过使用商业的平台,平台厂商能够将 更多的研发力量投入到如何使自己的产品增值,不同于其他公司产品的方面, 从而以更少的投入获得更大的竞争力。同时,面临多厂商多技术网络的运营商, 急需找到一种引进新技术和降低运营成本之间的平衡,通过采用公共平台方案, 运营商能够建造自己的用于支持平台的i t 体系结构,从而屏蔽了复杂性,大大 降低了系统维护工作量。所有这些归功于平台所带来的一套清晰的标准规范以 及被广泛采用的构件,使得新商业应用及新流程的集成更加快速和容易。 如今,技术,标准和开发流程已经发展到一个新的水平,使得在建造大规模 平台系统时重用软件构件及平台中间件成为可能并且容易实现。在不断增加的 成本压力下,主流平台开发商将会采用软件及系统构件的方法来设计和实现自 己的系统,最大化自己的投资价值。因而,整个平台产业应该重点关注几个成 熟的稳定的体系结构,标准以及技术,使得软件构件重用的原则及平台中间件 的概念被广泛地接受和应用。 嵌入式软件领域的研发一直是国际性难题,国外对“嵌入式软件开发平台” 一直都非常重视。嵌入式软件开发平台化的趋势正在逐渐被业界所接受,商业 化的嵌入式软件开发平台正在迅速取代企业自有的开发工具,面向各个行业的 嵌入式软件开发平台将成为嵌入式软件开发中不可缺少的一部分。 因此,从嵌入式软件技术发展的趋势、提升嵌入式软件技术的水平和开发 效率、提高市场竞争力三个方面来说,建立在某一个领域中通用的“嵌入式软 件开发平台”都是当务之急。 我们国家非常重视对“嵌入式软件开发平台”的研究,并专门立项为“8 6 3 ” 课题,该课题( 编号:2 0 0 2 a a l z 2 3 0 6 ) 名是:面向仪器控制信息电器通信行 业的嵌入式软件平台。深圳中兴通讯公司成都研究所承担了该项课题的研究工 作,作者本人作为该项课题项目组的研究人员,参与到此课题中,对“嵌入式 软件开发平台”进行研究。 1 3 实时嵌入式系统概述 1 3 1 实时系统的定义 实时计算机系统,简称为实时系统( r e a l t i m es y s t e m ) ,指能够在确定和 限定的时间内执行其功能并对外部的异步事件作出响应的计算机系统。“实时 性”是实时系统典型的特征和最根本的要求,即系统对异步事件的响应时间应 足以满足被控制对象的实时要求,而且这个响应时间必须是确定的。一个大多 数情况下能在1 0 0 微秒作出响应,但偶然需要1 毫秒响应时间的实时系统,其性 西南交通大学研究生学位论文 第3 页 能显然劣于一个能在任何情况下以5 0 0 微秒作出响应的系统。 实时系统除了要有足够的和确定的计算能力,来满足处理的要求和时间上 的要求之外,还必须要有足够的中断处理能力,来处理异步中断事件,还要有 很高的i o 通信能力,用以满足在时间上有苛刻要求的应用对数据处理的要求。 实时系统是一个控制系统,它用来控制一个过程。它典型的工作是:在预 期的时间间隔内,确认和响应分立的事件;处理和存储大量的来自被控系统的 数据。 1 3 。1 1 实时系统的分类 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具 体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、 高度分散和不断创新的知识集成系统。 依照实时系统的响应时间( r e s p o n s et i m e ) 分为:硬实时系统( h a r d r e a l t i m es y s t e m ,简称h r t ,又称为强实时系统) 和软实时系统( s o f tr e a l ti m e s y s t e m ,简称s r t ,又称为弱实时系统) 。 对于硬实时系统,各任务不仅要执行无误而且要做到准时。必须明确地定 义响应时间,系统对各个任务的调度必须满足对各自限定时间的要求,限定时 间( d e a d l ih e ) 是指一个任务不被处理的最长时间。 对于软实时系统,各个任务的紧急等级是以优先级的形式来确定,系统执 行最高优先级的、处于就绪状态( r e a d y ) 的任务。软实时系统的宗旨是使各个任 务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。软实时的 时间限制相对稍宽,响应时间延迟也可以接受,一般不会导致严重后果,例如 数字电话交换机。 1 3 1 2 衡量实时系统的指标 在实时系统中主要有三个指标来衡量系统的实时性:响应时间f r e s p o n s e t i m e ) 、生存时间( s u r v i v a lt i m e ) 和吞吐量( t h r o u g h p u t ) 。 一、响应时间 响应时间( r e s p o n s et i m e ) 是从计算机识别一个外部事件到作出响应的时间 间隔,如果事件不能及时的处理,系统可能就会崩溃。 二、生存时间 生存时间( s u r v i v a lt i m e ) 是数据有效等待时间,在这段时间里数据是有效的。 三、吞吐量 吞吐量( t h r o u g h p u t ) 是在一给定时间内,系统可以处理的事件总数。 实时系统强调的是实时性和可靠性( 商性能的实时系统还应具有容错能力, 保证系统在非正常的条件下,如元件失效时,仍能继续工作) ,这两方面除了与 计算机硬件有关( 如c p u 的速度,访问存贮器的速度等) 外,还与实时系统的 软件密切相关。硬件是实时的,而软件往往不一定是实时的。 1 3 2 嵌入式系统的定义 西南交通大学研究生学位论文 第4 页 嵌入式系统( e m b e d d e ds y s t e m ) 被定义为:以应用为中心,以计算机技术为 基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗严 格要求的专用计算机系统。 嵌入式意味着计算机内置在系统内部,普通用户看不到有台计算机在系统 里面。例如微波炉,很少有人意识到其中有台计算机( 当然专业人员是知道的) 。 简单来说,一个嵌入式系统就是一个计算机硬件和软件的集合体,也许还 包括其它一些机械部件,它是为完成某种特定功能而设计的。通常我们所说的 个人计算机( p e r s o n a lc o m p u t e r ) ;指的是通用计算机( g e n e r m p u r p o s ec o m p u t e r ) ,虽 然同样由计算机硬件和软件,还有机械部件( 比如硬盘) 组成,但个人计算机却不 是用来完成某个特定功能的,相反,它可以做各种不同的事情。在发货的时候, 通用计算机就像一块没有字的黑板,制造商并不知道用户要拿它来做什么。 嵌入式系统通常是一个大系统或大的电子设备中的一部分,工作在一个与外 界发生交互并受到时间约束的环境中,在没有人工干预的情况下进行人工控制。 其中,软件用以实现有关功能并使其系统具有适应性和灵活性;硬件( 处理器、 a s i c 、存储器等) 用以满足性能甚至安全方面的需要。 1 4 实时嵌入式系统的软件设计概述 1 4 ,1 实时嵌入式系统软件的基本特征和要求 嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器 系统软件和应用软件的要求也和通用计算机有所不同。 与一般的计算机应用相比,嵌入式实时应用系统是具有高速处理、配置专 一、结构紧凑和坚固可靠等特点的实时系统,相应的软件系统应是一种别有特 色、要求更高的实时软件。对这种实时软件的主要要求是: 一、实时性 实时软件对外部事件做出反应的时间必须要快,在某些情况下还需要是确定 的、可重复实现的,不管当时系统内部状态如何,都是可预测的( p r e d i c t a b l e l 。 二、有处理异步并发事件的能力 实际环境中,嵌入式实时系统处理的外部事件往往不是单一的,这些事件往 往同时出现,而且发生的时刻也是随机的,即异步的。实时软件应有能力对这 类外部事件组有效地进行处理。 三、快速启动、并有出错处理和自动复位功能 这一要求对机动性强、环境复杂的智能系统显得特别重要,快速机动的环境, 不允许控制软件临时从盘上装入,因此嵌入式实时软件需事先固化到只读存贮 器,开机自行启动,并在运行出错死机时能自动恢复先前运行状态。因此嵌入 式实时软件应采用特殊的容错、出错处理措施。 四、嵌入式实时软件是应用程序和操作系统两种软件的一体化程序 西南交通大学研究生学位论文 第5 页 对于通用计算机系统,例如p c 机、工作站,操作系统等系统软件和应用软 件之间界限分明。换句话说,统一配置的操作系统环境下,应用程序是独立的 运行软件,可以分别装入执行。但是,在嵌入式实时系统中,这一界限并不明 显。这是因为,应用系统配置差别较大,所需操作系统繁简不一,i o 操作也不 标准,这部分驱动软件常常由应用程序提供。这就要求采用不同配置的操作系 统和应用程序,链接装配成统一的运行软件系统。也就是说,在系统总设计目 标指导下将它们综合加以考虑、设计与实现。 五、嵌入式实时软件的开发需要独立的开发平台 由于嵌入式实时应用系统的软件开发受到时间、空间开销的限制,常常需要 在专门的开发平台上进行软件的交叉开发,其交叉开发环境如图1 ,1 所示。 图1 1 交叉开发环境 这种开发方式就是我们通常所说的“宿主机目标机”方式,其中:开发平 台称为宿主机( h o s t ) ,应用系统称作目标机( t a r g e t ) 。宿主机可以是与目标机 相同或不相同的机型。这种不同机型的开发平台又称作交叉式开发系统。显然, 在这种独立的实时软件开发系统上,应配备完整的实时软件开发的工具,如高 级语言、在线调试器和在线仿真器等。 嵌入式软件开发环境是嵌入式软件开发中重要的系统软件,一般与实时操作 系统捆绑销售,作为一种专用软件,其技术含量较高,价格也较贵。 1 4 2 实时嵌入式系统软件的开发过程 1 4 2 1 实时嵌入式系统的应用软件开发过程 嵌入式应用软件的开发方式一般是:在宿主机上建立开发环境,进行应用程 序编码和交叉编译,然后宿主机通过网1 :3 或串口将交叉编译生成的可执行目标 代码装载到目标机上,并用交叉调试器进行调试。应用程序经过调试和优化, 最后将应用程序固化到目标机中实际运行。 把嵌入式软件的源码转换为可执行的二进制映像的过程,包括以下三个步骤 ( 如图1 2 所示) 。 西南交通大学研究生学位论文第6 页 图1 2 嵌入式软件开发过程 1 每一个源文件都必须被编译或汇编到一个目标文件( o b j e c t f i l e l ; 2 将第一步产生的所有目标文件链接成一个目标文件可重定位程序 ( r e l o c a t a b l ep r o g r a m ) : 3 。利用重定位( r e l o c 撕o n ) 把物理存储器地址指定给可重定位程序里的每个 相对偏移处,得到个可以在嵌入式系统上运行的可执行二进制映像。 1 4 2 2 实时嵌入式系统应用软件开发的特点 嵌入式实时软件开发过程较为复杂,主要表现为以下几点: 1 软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储 器芯片或 单片机本身中,而不是存贮于磁盘等载体中。 2 软件代码高质量、高可靠性 尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加, 但在大 多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编 西南交通大学研究生学位论文 第7 页 工具的质量要高,以减少程序二进制代码长度、提高执行速度。 3 操作系统软件( o s ) 的高实时性是基本要求 在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调 度是保证 每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的, 这种任 务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要 求。 1 4 3 实时嵌入式系统软件的设计方法 嵌入式软件开发和设计与通常的软件开发一样,其开发过程如下: 1 需求分析( r e q u i r e m e n ts p e c i f i c a t i o n ) 分析用户需求,定义系统的各功能块、输入输出及系统的性能指标。 2 数据流分析( d a t af l o wa n a l y s i s ) 进行数据流的分析,设计出各功能块间的数据流图。 3 分解任务( d e c o m p o s t i o ni n t ot a s k s ) 在识别出并行性后,进行任务分解,将系统分解成主要的任务。 4 定义任务间接1 3 e f i n i t o no f t a s ki n t e r f a c e s ) 定义任务间,任务与中断处理程序间的同步、通信和互斥关系。 5 任务级的设计 按模块方式设计每个任务,并定义出模块间接口。 6 模块构筑 完成每个模块的详细设计、编码和单元测试。 7 任务与系统集成 逐个模块连接、测试以构成任务,逐个任务连接和测试形成最终系统。 8 系统测试 测试整个系统或主要子系统,以验证功能指标的实现,为具有更强的客 观性,系统测试最好由一个独立的测试小组执行。 1 5 嵌入式软件开发平台概述 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适 应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 西南交通大学研究生学位论文 第8 页 在一个嵌入式系统中,嵌入式实时操作系统( r e a lt i m eo p e r a t i n gs y s t e m ,r t o s ) 统筹管理整个系统的软硬件资源,在系统中居于核心地位。 然而,不同r t o s 之间存在着巨大差异,这种差异影响到嵌入式软件的运 行方式和开发方式。在商业竞争巨大影响下,嵌入式软件的开发人员只能被动 的选择r t o s 。面l 临如此困境,如何才能降低开发风险? 如何保证嵌入式软件的 可移植性? 怎样顺应开发人员的开发习惯? 这些问题的答案,就是嵌入式软件 平台。 图1 3 平台在系统中的所在位置 图1 3 为通常的嵌入式系统架构,右图为改进后的嵌入式系统架构。二者的主要 区别在于:在r t o s 与应用软件之间增加嵌入式软件平台,应用软件不再直接 构建于易于变化的r t o s 之上,而是构建于稳定的嵌入式软件平台之上。嵌入 式软件平台既是应用软件的运行平台,又是应用软件的开发平台。因此,嵌入 式软件平台又被称作支撑层。 在通讯企业的各个产品中,有大量的跨平台通信需求,包括前后台通信、 主备通信、设备间通信等。这些通信方式中,有些属于同构系统间通信,如主 备通信,但大量的信息流动是在异质异构的系统间进行。这样,就需要向应用 软件提供一些简单易用、稳定可靠的通信接口。除了s o c k e t 接口之外,还应当 包括更多、更灵活的通信功能,这些功能,均应当由嵌入式软件平台提供,图 1 4 说明了在基于平台的应用软件的开发特点。 图1 4 基于平台的应用软件的开发图 1 6 设计嵌入式软件平台的现实意义 西南交通大学研究生学位论文 第9 页 在已有的各种嵌入式系统封装层的基础上,建立通用的“嵌入式软件开发 平台”不仅符合嵌入式软件技术的发展方向,而且意义重大。“嵌入式软件开发 平台”将为企业所有的嵌入式应用软件提供统一的开发平台,这样上层应用的 开发人员只需了解和运用开发平台提供的接口,而不必关心底层操作系统的具 体情况,从而大大节省人力资源、缩短开发时间、降低开发及维护费用、提高 产品质量、提高嵌入式应用软件的可移植性。 事实上,激烈的市场竞争使得建立通用的“嵌入式软件开发平台”势在必行。 国外竞争对手在技术上的领先性是不能回避的事实,国内大型通讯企业( 包括 中兴通讯和华为) 目前已实现了在实时多任务跨操作系统上的虚拟接口层,它 位于嵌入式操作系统与应用程序之间,参与对许多对象的管理,使用户跟踪到 一些比较靠近内核的东西,对原有操作系统的适用性和效率都有所提高,且提 供了丰富的调试手段和实时监控功能。由于应用程序对具体的嵌入式操作系统 的依赖减少,从而便于上层应用软件在不同操作系统之间的移植。 1 ,7 嵌入式软件平台全貌描述 面向通讯领域的“嵌入式软件开发平台”如何在通讯设备中发挥它的作用 呢? ,以下将以一个实际例子来说明平台在通讯领域中的应用。该例子是以仿 真一次打电话的过程,在该过程中将存在3 个活动进程,它们是: a ) 主叫进程,即为打电话的主叫方: b ) 交换进程,即负责建立主叫方和被叫方进行通话连接的进程; c ) 被叫进程,即为打电话的被叫方。 在整个打电话的过程中,平台作为对这次普通的通讯业务的支撑,在此次 业务中运行起来。如图1 5 所示,图中显示的第一条语句m e m o r ym o d u l e i n i t i a l i z e ds u c c e s s ! 表示平台的内存模块初始化完成,第二条语句t i m e r m o d u l ei n i t i a i i z e ds u c c e s s f 表示平台的定时器模块初始化完成,第三条语 句l e v e lp r i n ti n i t i a l i z e ds u c c e s s ! 表示调试打印模块初始化完成,第四条 语句m s g t r a c em o d u l ei n i t i a l i z e ds u c c e s s ! 表示系统监控模块初始化完成, 第五条语句s c h e t w oi n i t i z l i z e ds u c c e s s 【表示调度管理模块和通讯模块初始 化完成,第六条语句o s ss y s t e mi n i t i a l i z e ds u c c e s s ! 表示整个平台系统都 初始化成功了,可以为上层应用提供支持。图中剩余的语句则是在这次打电话 的过程中平台显示出的打印信息,供开发人员进行观察和调试,最后两条语句 表明这次通话连接已经建立,主叫进程和被叫进程间可以进行消息的发送和接 收。 西南交通大学研究生学位论文 第1 0 页 图1 5 平台在通讯业务中的实际运行图 平台在这次通讯过程中,为上层应用提供了哪些模块的支持昵? 我们 可以通过一个t c p 连接,从后台的监控程序中观察到,如图1 6 所示: 堕壹奎望查兰塑窒圭兰堕笙窒 兰! 堕 图1 6 平台在通讯业务中的应用 由上图可以看出,平台为了支持一次典型的通讯业务,它调用如下的模块 ( 即显示为蓝色的模块) : a ) 调试打印模块: 该模块显示出相关的打印信息( 如上图左边部分) ,方便上层开发人员进行 开发和调试,并对平台的运行进行监测。 b 1 一级调度模块: 该模块负责对此次业务中对3 个活动进程进行调度,并负责把消息传送到 相应的进程的消息队列中。 c 1 定时管理模块: 该模块负责在此次业务中提供时钟管理,例如如果在一段时间后被叫进程 没有进行应答时,则该模块负责发送超时消息给交换进程。 d ) 内存管理模块: 该模块负责管理此次通讯业务过程中所需要进行的内存的申请和释放操 作,并保证内存不会泄漏,同时提供对内存使用情况的查询接口。 e 1 适配层模块( 即v o s 和w i n n t 和x 8 6 ) : 该模块负责屏蔽底层操作系统的差异,如上图可以看出,本次业务中使用 的操作系统是w i n n t c p u 是x 8 6 型的,但这些差异都被v o s 模块屏蔽掉,不 需要关心底层的操作系统类型和c p u 的类型。 西南交通大学研究生学位论文第12 页 从这次通讯业务演示中可以看出,平台在很好的为上层应用提供了支持, 它实现了模块的可裁减性,上层应用需要使用平台的某个功能时,则调用相应 的模块进行支持。 1 ,8 本平台目前的实现情况和作者主要参与部分的介绍 “嵌入式软件开发平台”的设计在整个项目组经过一年多时间的努力,已经 基本完成,它的每一个模块( 如上图1 6 所示) 都已经实现,并且在经过反复 的测试和修改后,平台在功能和性能上都基本能满足我们预期设定的要求。作 为项目组的员,在一年多的时间中,我经历了整个平台的开发过程,并承担 了一定的工作,也收获颇多,我主要完成的工作有: a ) 参与平台的总体设计; b ) 参与平台调度模块的设计; c ) 参与平台通讯模块的设计: d ) 参与平台内存管理模块的设计; e ) 独立完成定时管理模块的设计; f ) 对整个平台系统迸行性能测试,并在实际的通讯设备中得到应用( 2 0 0 4 年5 月份被成功移植到a d s l 设备中) : 但我需要说明的是,“嵌入式软件开发平台”的实现是全体项目组成员共同 努力的结果。不是哪一个人能够完成的。 1 9 平台设计中遇到的难点问题 在参与“嵌入式软件开发平台”项目的过程中,遇到了一些难点问题,因为 平台是在通讯领域中应用,所以对平台的实时性和精度要求较高,并且需要考 虑到实际的运行环境是在内存非常有限的情况下,因此代码要尽量的精简,做 到模块的可裁减性,从而减少冗余代码,同时还需要有较高的稳定性能,能经 受住长时间的运行。在设计过程中,具体的难点问题如下: a ) 如何在现有的实时操作系统的基础上进一步的提高实时性能,任务阍的 切换效率是提高该性能的关键,在调度管理模块和通讯模块的设计中要充分考 虑该问题。 b ) 由于定时器在通讯领域中的广泛应用,如何设计一个高效率的定时器, 并能够独立于底层操作系统,在底层操作系统改变后,不影响其定时精度,并 且要考虑应用进程如何能够准时收到超时消息,在定时管理模块和调度及通讯 模块中都需要充分考虑该问题。 c ) 如何对内存进行管理,既要能够安排好整个系统对内存的使用,又不能 浪费过多的内存,并且还要做到能够效率较高地申请和释放内存,在内存管理 模块中需要考虑该问题。 d ) 如何确定进程在运行中发生了死循环现象,对死循环的理论知识容易掌 西南交通大学研究生学位论文 第1 3 页 握,但在程序的实现中如何通过分析来判断进程发生死循环,在系统监控模块 中需要慎重考虑对进程死循环的判断准则。 e ) 如何能最大限度地提高整个平台的效率,需要从整体上去把握,不是哪 一个模块能够解决该问题的,只有在整个平台设计完成后进行整体的性能测试, 然后加以分析和比较,再提出优化方案。 以上所述的难点问题,在后面的章节中都有具体的论述和解决办法。 1 1 0 论文的主要工作 本论文的主要工作是详细论述一个在通讯行业能够通用的“嵌入式软件开 发平台”的最小系统,该系统能够独立地运行起来,并且在性能和功能上能够 满足在通信领域中对“嵌入式软件开发平台”的基本要求。 论文的主要工作有: 1 ) 提出“嵌入式软件开发平台”的总体设计方案,此方案需要满足通讯行 业对“嵌入式软件开发平台”的功能上和性能上的要求,并由此划分出相应所需 要的功能模块,并对每一个模块进行功能描述。 2 ) 设计和实现“嵌入式软件开发平台”中的主要模块( 也是本人在该项目 中具体参与的工作部分) ,使整个平台能够独立地运行,并能提供以下基本功能: a )封装商用操作系统,屏蔽所有的具体操作系统特征,并提供跨多 种操作系统平台的能力; b ) 提供高效的内存管理,内存保护; c ) 提供定时器环形队列算法,支持相对定时器,绝对定时器,循环 定时器: d ) 提供两种调度任务的方法( 一级调度和二级调度) ; e ) 提供通讯机制,包括二级调度下任务内和任务间的通讯,以及进 程间同步消息和异步消息; f ) 对进程死循环和进程死锁进行检测,对c p u 占用率进行统计; 3 ) 对整个平台系统进行实际测试,检测平台在实际运行环境中的各项指标, 进行初步的分析,并提出优化方案。 1 11 论文组织结构 本论文的后续章节主要反映笔者所涉及的研究工作,其组织结构如下: 第二章提出了“嵌入式软件开发平台”的总体设计方案,并对每一个模块 进行了简要的描述。第三章描述了适配层模块的设计方法,并以封装v x w o r k s 操作系统作为例子进行详细的说明。第四章讨论了实时调度模块的设计方法, 西南交通大学研究生学位论文第1 4 页 提出了两种调度任务的方法( 一级调度和二级调度) ,并通过测试对两种调度方 法的性能进行了对比研究。第五章讨论了平台中的消息通讯机制,提出了一种 改进的消息传递机制和消息分类机制。第六章讨论了一种内存的管理方法,目 的在于能够高效地利用内存。第七章讨论了定时器的设计方法,该方法的实现 能够不依赖于底层操作系统,并提供精确定时功能。第八章讨论了平台的监控 系统,对进程死循环的判断进行了详细的描述。第九章对平台的性能进行了各 项测试和分析,并提出了对平台性能进行优化的办法。最后在对论文工作进行 总结的基础上,对今后的研究工作进行了分析和展望。 西南交通大学研究生学位论文 第1 5 页 第2 章嵌入式软件平台的总体设计 2 1嵌入式软件平台设计的总体架构 平台设计的总体架构如图2 1 所示 图2 1 系统总体结构图 嵌入式应用软件平台主要为上层提供基本的商用操作系统封装和基本的操 作系统功能,如:操作系统适配、调度、通信、定时器、内存、异常、文件系 统等。这些功能对不同的通讯产品都是相同的,该子系统对上层提供稳定高效 的服务,是整个设计的核一t l , 。该子系统包括以下几个模块: 1 ) 操作系统适配软件模块: 操作系统适配软件模块位于平台和操作系统之间,实现对底层操作系统的 屏蔽,对嵌入式软件平台及上层应用提供统一的系统调用。支持的操作系统包 括目前广泛使用的嵌入式实时操作系统v x w o r k s 、p s o s ,也包括研究和应用逐 渐成熟的开放源码和架构的嵌入式l i i q u x ,以及通用操作系统w i n d o w s n t 2 0 0 0 ,w i n d o w sn t 2 0 0 0 用于嵌入式软件的设计初期在p c 机上进行调试仿 真。 2 ) 调度管理软件模块: 调度管理软件模块完成对通信领域的业务封装,同时利用实时操作系统实 现多任务并发处理机制。通信系统多采用有限状态机f s m 来描述业务的状态、 西南交通大学研究生学位论文 第1 6 页 状态跃迁和事件处理。同时,在实际通信过程中,通信链路信息及链路状态等 数据需要保存,同时经常需要等待对端链路的应答,因此存在同步和互斥等操 作,这些都是由调度管理来实现。而当系统容量加大时,如支持1 0 0 0 0 0 个呼叫, 为了减少任务切换的开销和提高任务调度的效率,本系统设计了一个在任务之 下的调度机制,即在操作系统的任务调度基础之上构造针对业务的二级调度策 略,根据该调度策略,业务之间可以实现高效的消息通信。 3 ) 进程通信软件模块: 进程通信i p c 软件模块实现业务之间的消息互通,并提供一个统一的消息通 信接口。由于分布式通信系统的复杂性在通信系统往往存在着多种通信方式, 如主板和备板之间的主各通信:主控板和音板之间的板间通信:主控板和另一 模块的主控板之间的模块间通信;前台设备和后台监控中心之间的前后台通信: 以及同一单板同一c p u 内部的通信等。进程通信软件模块除了对应用层屏蔽这 些通信差异以外,还必须规定在整个系统中与具体产品结构无关的统一寻址方 式,以及统的消息结构类型。在这个基础上,提供开放的通信模式和统一的 同步和异步消息发送接口。这样,大大简化了通信系统应用软件的设计,同时 方便系统软件的移植。 4 ) 内存管理软件模块: 内存管理软件模块提供高效的内存申请与释放、内存保护、系统内存信息 查询等功能。该模块接管操作系统对内存的使用权,实现了对嵌入式系统内存 的统一管理。对于应用业务之间的消息通信使用的内存,因其使用频繁容易导 致内存碎片,因此该模块在系统内存中专门划分了一块内存对消息内存进行管 理,通过一套高效率的算法保证动态内存申请和释放的稳定和高效。内存保护 实现对系统核心数据区以及消息内存等的保护,利用处理器的m m u 虚拟内存的 保护机制提供内存的实时保护。 5 ) 定时管理软件模块: 定时管理软件模块提供整个系统的绝对时钟及其相关操作,同时提供各种 类型的定时器进行定时操作,这些定时器包括相对定时器、绝对定时器、循环 定时器、有名定时器以及带参定时器等。其中相对定时器是系统中应用最广泛 的以相对于当前时刻作为定时时间的定时器;绝对定时器是以绝对日期时间作 为定时的定时器;循环定时器用于周期性的定时;有名定时器是系统预先设置 好定时长度的定时器:带参定时器则是种带有特定信息的定时器。整个应用 软件通过这些定时器的灵活应用,实现协议或规范的定时操作。本定时任务的 核心处理由定时中断触发,作为优先级晟高的任务运行。本系统设计了一套高 效而稳定的定时管理算法,以支持大容量定时器( 如同时设定2 0 0 0 0 个定时器) 的需求。 6 ) 文件系统软件模块: 文件系统是操作系统一个重要的功能,嵌入式系统中应用程序经常需要进 行文件访问操作,有必要封装操作系统的文件系统,为上层应用提供创建文件、 删除文件,文件打开关闭、文件读写等操作接口。本文件系统提供对r a m d i s k , f a s h d i s k 等文件系统的支持。文件系统不仅仅是对操作系统提供的文件系统函 西南交通大学研究生学位论文 第1 7 页 数接口进行封装,还涉及到任务对文件访问的互斥,绑定f t p 协议实现文件下 载等处理。 7 ) 系统监控软件模块: 系统监测模块软件定时完成对系统运行时资源使用状况、任务状态等的监 测,并输出系统资源如c p u 的负荷、内存使用情况、定时器使用情况等。除此 之外,还对任务死循环、任务长时间占用c p u 以及任务死锁等异常情况进

温馨提示

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

评论

0/150

提交评论