




已阅读5页,还剩78页未读, 继续免费阅读
(计算机应用技术专业论文)一个教学用嵌入式实时操作系统的开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个教学用嵌入式实时操作系统的开发 摘要 一个教学用嵌入式实时操作系统的开发 中文摘要 随着嵌入式技术的发展,越来越多的嵌入式系统中使开始用实时操作系统 ( r t o s ) 。嵌入式实时操作系统正逐渐成为嵌入式研究热点。但许多r t o s 由于发展 历史悠久、规模较为庞大、实现技术复杂,已不适合学习研究之用。为了促进嵌入 式实时操作系统的教学和研究,本文设计实现了一个面向教学领域的微内核嵌入式 实时操作系统剧o s 。 本文首先介绍了嵌入式实时操作系统的相关概念,给出了嵌入式实时操作系统 的基本功能、关键特性等,并针对国际著名的两大操作系统v x w o r k s 、uc o s 1 i 做了简要介绍。然后针对e d o s 的任务管理、信号量管理、消息队列管理、时间管 理和存储管理五大功能模块的设计和实现作了详细介绍,并给出了设计体会。为了 验证e d o s 内核的正确性,设计开发了硬件系统平台、软件开发平台,并将e d o s 内核移植到该平台上,做了测试实例。本文最后给出了论文总结并对未来的设计工 作进行了展望。 本文实现的e d o s ,将有利于学生从微观上观察r t o s 的行为特征,并帮助他 们理论联系实际,促进教学研究。此外作为一个微型的r t o s 内核,e d o s 也可在 项目开发中使用。 关键字:微内核、实时操作系统、c c m 3 1 1 8 、教学工具 作者:陈帅 指导老师:王宣怀 t h e d e v e l o p m e n to f t h ee m b e d d e dr e a l t i m e o p e r a t i n gs y s t e m f o re d u c a t i o n a b s t r a c t a l o n g w i t ht h ee v o l u t i o no fe m b e d d e dt e c h n o l o g y , m o r ea n dm o r ee m b e d d e ds y s t e m u s er e a l t i m eo p e r a t i n gs y s t e m ,r t o s r t o si sb e c o m i n go n eo ft h em o s ti m p o r t a n t p a r t so fe m b e d d e dt e c h n o l o g y b e c a u s em a n yr t o sh a v eal o n gh i s t o r y , h u g es c a l ea n d c o m p l e xt e c h n o l o g y , t h e ya r en o tf i tf o re d u c a t i o na n ds t u d y t op r o m o t er t o ss t u d y a n dt e a c h i n g , t h i st h e s i sd e s i g na n di m p l e m e n tam i c r o - k e r n e le m b e d d e dr t o sf o r e d u c a t i o n , e d o s t h i st h e s i si n t r o d u c e st h ec o n c e p to fe 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 mf i r s to fa l l a n dg i v e si t sb a s i cf u n c t i o n , k e yc h a r a c t e r sa n ds oo n t h e ni ti n t r o d u c e st w of a m o u s r t o si nw o r l d , v x w o r k sa n di tc o s 一t h i st h e s i sd e s c r i b e st h ed e s i g na n d i m p l e m e n t a t i o no ff i v e f u n c t i o nm o d u l e sa n dd e s i g ne x p e r i e n c e t h e ya r et a s k m a n a g e m e n tm o d u l e ,s e m a p h o r em a n a g e m e n tm o d u l e ,m e s s a g eq u e u em a n a g e m e n t m o d u l e ,t i m em a n a g e m e n tm o d u l ea n dm e m o r ym a n a g e m e n tm o d u l e t ov a l i d a t ee d o s k e r n e l ,a u t h o rd e s i g na n dd e v e l o ph a r d w a r es y s t e mp l a t f o r ma n ds o f t w a r ed e v e l o p m e n t p l a t f o r m ,p o r te d o sk e r n e lt ot h i sp l a t f o r ma n dg i v et e s te x a m p l e s a tl a s t ,t h i st h e s i s g i v e ss u m m a r i z a d o na n df u t u r ew o r k s e d o si n t r o d u c e di nt h i sp a p e rw i l ld ob e n e f i t st os t u d e n t si nh e l p i n gt h e ml e a r n i n g e 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 mp r i n c i p l e sa n do 妇陆r i l l gt h e map l a t f o r mt op r a c t i c e s w h a tt h e yh a v el e a r n e di nc l a s s f u r t h e r m o r e ,a sam i c r or t o sk e r n e l ,e d o sa l s oc a l lb e u s e di np r o j e c t s k e y w o r d s :m i c r o k e r n e l ,r e a l t i m e o p e r a t i n gs y s t e m ,c c m 3 1 1 8 ,i n s t r u c t i o n a l t o o l i i w r i t t e nb yc h e ns h u a i s u p e r v i s e db yw a n gy l h u a i 苏州大学学位论文独剖性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师韵指导下,独立 进行研究工作所取得的成果。豫文中已经注明引用的内容辨,本论文 不禽其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏 州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作 出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本 声明的法律责任。 研究生签名:二陡韭日期:! 壁f 垒i g 婴 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论 文合作部、中国社科院文献信息情报中心有权保留本人所送交学位论 文的复印件和电子文档,可以采用影印、缩印或箕他复制手段保存论 文。本人电子文档的内容和纸质论文的i 内容相致。除在保密期内的 保密论文外,允许论文被查阅和供阅,可以公布( 包括刊登) 论文的 ,全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:盗吐日期:生l ! g 幽 导师签名:一礁# 日期:趔:垂型 一个教学用嵌入式实时操作系统的开发第一章概述 第一章概述 随着嵌入式系统规模的日益增大,在嵌入式系统中使用实时操作系统 ( r e a l t i m eo p e r a t i o ns y s t e m , r t o s ) 经成为一种趋势。嵌入式实时操作系统将应用 分解成多个任务,极大简化了应用系统的软件设计,使得嵌入式系统的稳定性与可 靠性得到大幅度的提高。同时,r t o s 还使得控制系统的实时性得到保证,可以接 近理想的实时。嵌入式实时操作系统现在已经应用到国防、军事、商业、民用等各 个领域,并正发挥着越来越大的作用。 本章首先给出了嵌入式实时操作系统的概念、应用领域及其优缺点,然后说明 了研究嵌入式实时操作系统的意义,最后介绍了本课题所做的工作及文章的总体结 构。 1 1 嵌入式实时操作系统( e m b e d d e dr t o s ) 的概念 嵌入式系统,是指应用程序和操作系统和微控制器硬件集成在一起的系统。简 单地说,系统的应用软件与系统硬件一体化,类似于b i o s 的工作方式。这种系统 具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时性和多任 务的系统。 目前国际上对于实时系统还没有一个公认的、统一的定义。根据r e a l t i m e s y s t e m sd e s i 口m da n a l y s i s :a ne n g i n e e r sh a l l d b o o k 【l 】的定义,实时系统就是能够 无误地在规定时间内实现正确及时的输出逻辑的系统。实时系统的首要任务是调度 一切可以利用的资源完成实时控制任务。它必须满足有限的响应时间的约束,否则 将会造成控制系统严重故障甚至崩溃。、 嵌入式实时系统中使用的操作系统称为嵌入式实时操作系统,它既是嵌入式操 作系统又是实时操作系统。它具有嵌入式软件所共有的可裁减、低资源占用、低功 耗等特点;而作为一种实时操作系统,它具有通用操作系统( 如w i n d o w s 、l i n l l 】【等) 所不具备的高实时性【2 l 。 第一章概述 一个教学用嵌入式实时操作系统的开发 1 2 嵌入式实时操作系统的应用领域与优缺点 最早的嵌入式r t o s 应用于军事领域,比如导弹的飞行运动控制、飞机导航、 雷达探测等。在此之后,嵌入式r t o s 逐渐推广到工业、商用和民用领域,诸如自 动机器人、自动存取款机、高速公路电话系统、高端音响、医疗器械等等。现在嵌 入式实时操作系统已经应用到我们生活的方方面面【3 l 。 随着微电子技术的发展,微控制器的功能日益强大,加之嵌入式系统规模的增 大,越来越多的嵌入式系统中都使用了实时操作系统。 嵌入式实时操作系统具有可移植、可裁减、多任务、高可靠性等特点,大大简 化了应用系统的软件设计,提高了系统的稳定性。它的使用使得实时应用程序的设 计和扩展变得容易,无需大的改动就可以增加新的功能【4 】。实际上,如果用户给系 统增加一些低优先级的任务,那么用户系统对高优先级的任务的响应时间的影响几 乎可以忽略不计。通过将应用程序分割成若干独立的任务,r t o s 使得应用程序的 设计过程大为简化。通过有效的复位,如信号量、邮箱、队列、演示及超时等,r t o s 使资源得到了更好的利用。 当然,不可否认在嵌入式系统中使用实时操作系统也会带来一定的负面作用。 使用实时操作系统对嵌入式项目有一定的额外需求:内核的价格、额外的 r o m r a m 开销及2 - - 4 的c p u 额外负荷【4 】。但是,对于稍大一点的嵌入式系统, 尤其是以1 6 位或3 2 位d s p m c u 为主控芯片的嵌入式应用系统,r o m r a m 的开 销和少量的c p u 额外负担都是可以接受的。 唯一值得考虑的是使用嵌入式r t o s 所带来的内核和版权费用问题【”。当今有 1 5 0 个以上的r t o s 厂家,生产面向8 位、1 6 位、3 2 位甚至“位的微处理器的r t o s 产品。一些软件包是完整的操作系统,不仅包括实时内核,还包括输入,输出管理、 图形系统( 用于显示) 、文件系统、网络、语言接口库、调试软件及交叉平台编译器 等等【4 1 。而这样的商用r t o s 的价格从7 0 美金直至3 万美金不等。r t o s 厂商还可 能索取使用到每个目标系统的版权费用。如果产品销量较大,这也将会是一个不小 的数日。 2 一个教学用嵌入式实时操作系统的开发第一章概述 1 3 开发嵌入式实时操作系统平台的意义 计算机经过短短几十年的发展,现在已经进入了后p c 时代。嵌入式系统已经 广泛渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术、娱乐业以 及人们生活的方方面面。实时操作系统r t o s 集中了实时系统和操作系统的优点。 它是嵌入式系统的系统软件,一个优秀的r t o s 是嵌入式系统成功的关键。 我国到目前为止,还没有一个真正实用的、有影响力的实时操作系统。当前使 用的实时操作系统几乎全是由国外公司开发的。知名的r t o s 有:微软的w i n c e 5 1 、 i t n t e r g r a t e d s y s t e m s 公司的p s o s 、美国w i n d r i v e r 公司的v x w o r k s l 6 1 , l y n x 的l y n x o s 以及加拿大q s s l 公司开发的q n x 等等【”。这些操作系统存在的共同问题就是版 权费用特别昂贵。另外。这些操作系统都是商业r t o s ,内部的实现机理并不完全 公开。其封闭的源代码增加了用户对该软件厂家的依赖度。在这些平台上开发的嵌 入式系统必然会受到他们所制定的规则的限制,另外还有可能受到像w i n d o w s 操作 系统中的“后门”的威胁。 信息产业是国民经济的基础产业、支柱产业和先导产业,其发展水平已经成为 衡量一个国家现代化水平与综合国力的重要标志。信息产业的发展对于促进生产力 发展、推进先进文化传播、提高人民生活质量,具有十分重要的作用。而操作系统 是关系到国家信息安全的重要方面,是涉及国计民生的重要组成部分,而且具有广 阔的市场发展前景。国家在信息安全,特别是具有自主知识产权的操作系统研究方 面的投入也日益增加。因此目前对嵌入式实时操作系统进行研究就显得尤为重要。 针对目前我国嵌入式r t o s 的发展现状,设计实现一个嵌入式实时操作系统实 验开发平台,具体具有以下意义: 一、本课题开发了一个微内核的r t o s 平台,使学生从整个软件体系结构的角 度考察嵌入式r t o s 。并且由于其采用微内核结构,不但增强了系统的模块性,而 且源代码的可读性和易修改性也得到了提高。 二、由于我国目前嵌入式r t o s 的发展正处于起步阶段,设计实现一个微内核 的嵌入式r t o s ,整个系统及其开发实现过程对于将来的相关科研工作也有一定的 借鉴意义和启发作用。 第一章概述一个教学用嵌入式实时操作系统的开发 三、实现一个嵌入式实时操作系统实验开发平台,为学生及其嵌入式爱好者提 供一套完整软硬件的学习与动手实验平台,对于帮助学生学习软硬件知识、熟悉 r t o s 思想和工作原理、推广r t o s 编程具有一定的促进作用,从而在一定程度上 弥补了现有教学实验平台的不足。 四、硬件平台实现了高度的可重构性,仅需通过更换核心板即可实现c p u 核 心的更换,可以帮助学生学习到更多的硬件平台知识。 1 4 本课题所做的工作和论文的结构 在研究国际知名的嵌入式实时操作系统工作原理基础上,分析其内部实现机 制,结合实时操作系统的最新发展动态,对其加以改进,实现一个包括软硬件的面 向教学领域的嵌入式实时操作系统实验开发平台。该平台包括e d o s 内核代码、 e d o s 硬件和e d o s 软件开发平台三大部分组成。 本文的篇章组织如下: 第一章简要叙述了嵌入式实时操作系统的概念、应用领域,以及开发嵌入式实 时操作系统平台的重要意义。并说明了本课题所完成的工作和论文框架。 第二章介绍了嵌入式实时操作系统的基本概念。如共享资源、多任务、任务切 换、调度、可剥夺不可剥夺内核、可重入函数、任务优先级、优先级反转、互斥条 件、死锁和同步、时间标志、任务间通信、消息、中断、时钟节拍等等。同时还给 出了嵌入式实时操作系统的基本要素和分类方法。在本章的最后对v x w o r k s 和u c o s 一做了简要的分析。 第三章详尽介绍了e d o s 内核代码的体系结构和各个模块的设计与实现,包括 任务管理模块、信号量管理模块、消息队列模块、时间管理模块、存储管理模块。 同时给出了e d o s 内核代码的设计体会。 第四章详尽阐述了e d o s 硬件平台和软件开发平台的设计与实现。硬件平台由 六层的c c m 3 1 1 8 核心板和双层的通用扩展板组成。软件开发平台是一套基于 w i n d o w s 平台的类似于m i c r o s o f tv i s u a lc + + 的嵌入式集成开发系统。硬件平台通过 更换核心板可以方便地实现硬件移植。软件开发平台通过更换编译器可以实现对其 它嵌入式c p u 的开发。 4 一个教学用嵌入式实时操作系统的开发 第一章概述 第五章介绍了如何将e d o s 嵌入式实时操作系统移植至第四章所介绍的硬件平 台。给出了具体的移植代码说明以及实验实例。 第六章,对整个课题进行了一个总结,并指出了将来后续的工作方向。 第二章嵌入式实时操作系统的相关理论基础 一个教学用嵌入式实时操作系统的开发 第二章嵌入式实时操作系统的相关理论基础 嵌入式实时操作系统不同于原有的前台后台程序,也不同于通常意义上的计算 机操作系统,它是嵌入式操作系统和实时操作系统的集合,具有其特有的基本概念、 基本要素和分类等等。 本章首先给出了嵌入式实时操作系统的基本概念( 包括代码临界段、共享资源、 多任务、任务切换、内核、调度、可剥夺不可剥夺型内核、可重入函数、任务优先 级、静态动态优先级、优先级反转、互斥、死锁、同步、任务间通信、消息邮箱、 消息队列、中断、时钟节拍等等) ,然后提出了嵌入式实时操作系统的必备的基本要 素,最后给出了嵌入式实时操作系统的一种分类方法及其主要代表产品。 2 1嵌入式实时操作系统的基本概念 由于嵌入式实时操作系统集嵌入式系统和实时操作系统的特点与一身,因此它 具备一些其它操作系统所不具备的基本概念【4 】。本节将具体介绍嵌入式实时操作系 统的基本概念,并穿插介绍一些操作系统的理论基础。同时,为下文使用这些专有 名词提供铺垫。 ( 1 ) 代码临界段 代码临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执 行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中 断,而临界段代码执行完以后要立即开中断。 ( 2 ) 共享资源 任何被任务所占用的实体都可称之为资源,它可以是输入,输出设备、也可以是 一个变量、结构体或一个数组等。可以被一个以上任务使用的资源叫做共享资源。 为了防止数据被破坏,每个任务在于共享资源打交道时必须独占该资源。 ( 3 ) 任务( t a s k ) 也称作“线程”,它是一个简单的程序。该程序认为c p u 完全只属于该程序自 己。通常一个系统被划分为多个任务( 即“多任务”概念) ,每个任务都是整个应用 6 一个教学用嵌入式实时操作系统的开发第三章e d o s 实时操作系统 的一部分,被赋予一定的优先级,有自己的一套c p u 寄存器和堆栈空间。 ( 4 ) 任务切换( c o n t e x ts w i t c h ) 所谓任务切换是指当内核决定运行另外的任务时,它先把正在运行任务的当前 状态( a pc p u 寄存器中的全部内容) 保存在该任务自己的堆栈区中,然后把即将运行 的任务的当前状况从该任务的堆栈区中重新装入c p u 寄存器并开始下一个任务的 运行。 ( 5 ) 内核( k e r n e l ) 多任务系统中,内核负责管理各个任务,或者说为各个任务分配c p u 时间并负 责任务间的通信。内核提供的基本服务是任务切换。 微内核是内核的一种精简形式。通常与内核集成在一起的系统服务层被分离出 来,变成可以根据需求加入的选件,这样就可提供更好的可扩展性和更加有效的应 用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改 变整个操作系统。 ( 6 ) 调度( s c h e d u l e ) 系统内核根据任务状态、任务优先级等信息,决定将c p u 资源分配给某个任 务运行的过程称之为调度。 ( 7 ) 不可剥夺内核,可剥夺内核 不可剥夺内核要求每个任务主动放弃c p u 的使用权。不可剥夺内核无需考虑 函数可重入问题、不用使用信号量保护共享数据。 当系统响应时间很重要时,须使用可剥夺型内核。可剥夺型内核总是让就绪态 最高优先级的任务得到c p u 的使用权,中断服务可以抢占c p u 。目前商用的嵌入 式实时操作系统绝大多数采用的是可剥夺内核。本文所实现的嵌入式实时操作系统 内核也是可剥夺型内核。 ( 8 ) 死锁 死锁指两个或两个以上的任务无限期地互相等待对方释放其所控制着的资源。 ( 9 ) 同步 在较为复杂的应用系统中通常都需要几个任务协同工作。而几个任务按照一定 的逻辑顺序协同工作就称之为“同步”。通常使用信号量来解决任务之间的同步问 第二章嵌入式实时操作系统的相关理论基础一个教学用嵌入式实时操作系统的开发 题。 ( 1 0 ) 任务间通信 任务间或中断服务程序与任务间的信息传递称为“任务间通信”。任务间信息 传递有2 个途径:通过全局变量传递信息,或发送消息给另一个任务。 ( 1 1 ) 消息邮箱消息队列 一个任务或中断服务程序通过内核服务将一则消息放到邮箱中去。一个或多个 任务则通过内核服务从邮箱中接收到该消息。 ( 1 2 ) 时钟节拍 时钟节拍是特定的周期性中断。通过定时器产生周期性的中断供内核判断是否 有更高优先级的任务已达到就绪状态。 2 2 嵌入式实时操作系统的基本功能和关键特性 嵌入式实时操作系统的最关键部分是实时多任务内核,它的基本功能包括任务 管理、定时器管理、存储管理、事件管理、系统管理、消息管理、队列管理等。这 些管理功能是通过内核服务函数形式交给用户调用的,也就是r t o s 的a p i t 8 1 。 特别对于微内核嵌入式实时操作系统而言,各大基本功能都是可以定制裁减 的,以达到微内核的目的。 嵌入式实时应用领域的需求表明了r t o s 所需具备的关键特性。依据所开发的 嵌入式应用的类型,r t o s 主要有以下五大关键特性【3 1 。 ( 1 ) 可靠性 嵌入式系统必须是可靠的。在应用系统中,系统可能必须长期在无人职守的情 况下运行,这就要求系统具有高度的可靠性。不同的系统要求不同程度的可靠性。 虽然可以接收不同的可靠性程度,但是一般来讲,一个可靠的系统是一个可正常工 作的系统并且不能出现故障。 r t o s 必须是可靠的,注意r t o s 本身不能测量决定系统的可靠性。它是所有 系统元素的集合,包括硬件、b s p ( b o a r ds u p p o r tp a c k e t ,板级支持包) 、r t o s 和应 用。它们共同决定系统的可靠性。 ( 2 ) 确定性 8 一个教学用嵌入式实时操作系统的开发第三章e d 0 s 实时操作系统 由于许多嵌入式系统也是实时系统,因此满足时间需求是保证系统合理正常运 行的关键。这种情况下使用的r t o s 在某种程度上必须是可预见的。术语“确定性” ( d e t e r m i n i s t i c ) 描述r t o s 具有可预见的行为特征。操作系统调用在其已知的时间框 架内完成。 开发者可以写简单的基准测试程序来确认r t o s 的确定性,其测试结果是特定 r t o s 调用的响应时间。在具有良好确定性的r t o s 中,对每种类型的系统调用响 应时间的变化是非常小的。 ( 3 ) 性能 这项特性要求一个嵌入式系统必须执行得足够地快,以满足时间需求。对于硬 件来说,处理器的性能通常用每秒百万次指令m i p s ( m i l l i o ni n s t r u c t i o n sp e rs e c o n d ) 来衡量。 虽然基本硬件可以支持系统的处理能力,但是软件也是影响系统性能的关键。 对于软硬件组合在一起的系统而言,通常使用吞吐量( t h r o u g h p u 0 来衡量。吞吐量的 一个定义是系统根据输入数据量而产生输出数据量的比率。吞吐量也意味着传输的 数据量除以传输花费的时间。 某些嵌入式开发者使用“调用- 调用”( c a l l b y - c a l l l ) 为基础测量r t o s 的性能, 其基本单位是r t o s 的t i c k 数。所谓t i c k 数是指r t o s 的时钟周期节拍数。使用系 统调用开始到任务完成所花费的t i c k 数来评价一个r t o s 的性能优劣。虽然这一步 在设计分析阶段是有帮助的,但真正的性能测试只能通过测量系统的整体性能来获 得。 ( 4 ) 紧凑性 应用系统的设计限制和费用限制有助于决定一个实时系统该达到何种紧凑程 度。例如,移动电话必须很小巧,便于携带且售价较低。这些设计要求决定了系统 的内存、成本等诸多因素,同时也限制了应用软件和操作系统的功能、规模和尺寸。 在这样的嵌入式实时系统中,硬件资源十分有限,因此r t o s 必须小巧而高效。 这种情况下,r t o s 的内存花费可能就变得十分重要。为了满足系统的整体需求, 设计者必须对r t o s 的f l a s h 存储空间、r a m 空间的消耗十分敏感。 ( 5 ) 可裁减性 9 第二章嵌入式实时操作系统的相关理论基础一个教学用嵌入式实时操作系统的开发 由于r t o s 可以广泛应用于各种嵌入式系统,所以必须能够支持裁减以满足应 用系统的特别需求。依据所要求的功能,r t o s 应当具有增加或减少模块化部件的 功能。 应用于嵌入式环境的r t o s ,在研发的时候就必须立足于改变自身、开放自身, 让开发人员可以根据硬件环境和应用环境的不同而对操作系统进行灵活的裁剪和 配置。因为对于任何一个具体的嵌入式设备,它的功能是确定的,因此只要从原有 操作系统中把这个特定应用所需的功能拿进来即可。如果一个操作系统平台只能依 靠手工的方式去掉一些代码,这根本就不具备可裁剪性。所谓可裁剪性是在软件工 程阶段利用软件配置方法实现软件构件的“即插即用”。 可裁剪性带给用户的一个最直接的好处是硬件成本降低,这对于成本敏感的应 用,如消费电子类设备,具有重要的现实意义。由于设备中只包含应用程序用到的 那部分操作系统功能,这就使得系统变得简单、易把握,从而提高系统的可靠性。 2 3 嵌入式实时操作系统的分类 开发r t o s ,需要更多地关注将来的相关应用。根据不同的应用,可以有很多 种不同的侧重点,不同的侧重点对应了不同的分类方法。下面具体介绍两种分类方 法【9 1 。 ( 1 ) 周期性和非周期性 周期性就是系统通过传感器或者其他周期性设备对外部环境的变化做出探测, 对在这个周期内探测到的变化做出反应。比如在化工厂中反应炉的温度探测控制, 如果探测到温度升高到一定水平,需要添加某种材料,保证化学反应的效率,并使 其降温。 非周期性就是外部事件是循环性发生的但不是有规律性的,或者是突发事件。 比如说,一架客机飞入一个进行空中交通管制的管制范围内所产生的事件。使用非 周期性的检测就比周期性检测要好一些。 ( 2 ) 硬实时和软实时 实时系统是指有时间约束并以死线驱动( d e a d l i n e d r i v e n ) 的系统。因此,实时系 统可以划分为硬实时系统和软实时系统。硬实时系统和软实时系统的差别是丢失死 l o 一个教学用嵌入式实时操作系统的开发第三章e d 0 s 实时操作系统 线的容忍程度。对硬实时系统而言,丢失死线的容忍程度是极低的或者零容忍( z e r o t o l e r a n c e ) 的。死线之后得到的计算结果对许多系统是没有用的。丢失死线的惩罚是 灾难性的。然而,对软实时而言,容忍的程度是非零的。死线之后得到的计算结果 会贬值。超过死线后的结果的无用程度不会像许多硬实时系统那样为零。丢失死线 的物理影响是非灾难性的。 一个硬实时系统( h a r dr e a l t i m es y s t e m ) 是必须满足其灵活性接近零死线要求的 实时系统。死线必须满足,否则就发生灾难。这种灾难危害极大并危害人的生命。 死线之后得到的计算结果或是零级无用,或是高度贬值。 武器防御系统和导弹导航系统是硬实时系统。对于导弹导航系统而言,如果在 死线前不能对将到达的地域计算新的坐标,就没有足够的距离让导弹改变姿势。死 线之后得到的新坐标对于导弹飞行是无用的,因为姿态控制器没有足够的时间来引 导导弹进入新的飞行路径,最终将导致导弹无法命中目标。 一个软实时系统( s o f tr e a l t i m es y s t e m ) 是必须满足死线要求的,但可以有一定灵 活性的实时系统。死线可以包含可变的容忍等级、平均的时间死线,甚至是带不同 程度的响应时间的统计分布。在软实时系统中,死线的丢失不会导致系统失败;但 是根据应用的性质,代价会随延迟时间成比例增加。 d v d 播放器则是软实时系统。d v d 播放器根据用户命令实时解码视频和音频 流数据。当用户突然给d v d 播放器发送一系列命令,导致d v d 解码器丢失一个或 多个死线,除了会看到视频弯曲和音频变调外,损失是暂时的。d v d 仍可继续工 作,死线后得到的解码数据仍然是有用的。 硬实时系统和软实时系统的实现区别主要是在选择调度算法上。选择基于优先 级调度的算法足以满足软实时系统的需求,而且可以提供高速的响应和大的系统吞 吐率;而对硬实时系统来说,需要使用的算法就应该是调度方式简单,反应速度快 的实时调度算法了。 目前,国际上著名的硬实时r t o s 包括,v x w o r k s 、o s e 、n u c l e u s 、t h r e a d x 等,软实时r t o s 则包括uc o s 、e c o s 、w i n c e 等。i j c o s - i i 和本文所设计的 r t o s 都属于软实时r t o s ,但它们的实时性已与硬实时系统接近,可以满足一般 应用系统的实时性需要。 第二章嵌入式实对操作系统的相关理论基础一个教学用嵌入式实时操作系统的开发 嵌入式实时操作系统除了可以按照实时调度算法分为硬实时操作系统和软实 时操作系统外,还分为微内核系统和非微内核系统、开源系统和非开源系统等等。 2 4 国际著名嵌入式操作系统分析 从1 9 8 1 年r e a d ys y s t e m 发展了世界上第一个商业嵌入式实时内核( v r t x 3 2 ) , 到今天已经有近2 0 多年的历史。2 0 世纪8 0 年代的产品还只支持一些1 6 位的微处 理器,如6 8 i t , 8 0 8 6 等。这时期的r t o s 还只有内核,以销售二进制代码为主。当 时的产品除v r t x 外,还有口i 公司的m t o s 和8 0 年代末i s i 公司的p s o s 。产品 主要用于军事和电信设备。 进入2 0 世纪9 0 年代,现代操作系统的设计思想,如微内核设计技术和模块化 设计思想,开始渗入r t o s 领域。老牌的r t o s 厂家如r e a d ys y s t e m ( 在1 9 9 5 年与 m i c r o t e c r e s e a r c h 合并1 ,也推出新一代的v k t x s a 实时内核,新一代的r t o s 厂家 w l u d r i v e r 推出了v x w o r k s 。另外在这个时期,各家公司都有力求摆脱完全依赖第三 方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成一套完整的 开发环境。例如,i s i 公司的p r i s m t 、著名的t o m a d o ( w i n d r i v e r ) 和老牌的 s p e c t r a ( v r t x 开发系统1 等。 进入2 0 世纪9 0 年代中期,互联网在北美日渐风行。网络设备制造商、终端产 品制造商都要求r t o s 有网络和图形界面的功能。为了方便使用大量现存的软件代 码,他们希望r t o s 厂家都支持标准的a p i ,如p o s i x ,w i n 3 2 等,并希望r t o s 的开发环境与他们已经熟悉的u n i x ,w m d o w s 一致。这个时期代表性的产品有 v x w o r k ,q n x , l y n x 和v r m c e 等。 2 4 1 v x w o r k s 操作系统分析 v x w o r k s 操作系统是美国w i n d r i v e r 公司于1 9 8 3 年设计开发的一种嵌入式实 时操作系统( r t o s ) ,是嵌入式开发环境的关键组成部分。良好的持续发展能力、高 性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。 它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高 精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导 1 2 一个教学用嵌入式实时操作系统的开发 第三章e d 0 s 实时操作系统 航等【m 】。在美国的f 。1 6 、f a 1 8 战斗机、b 2 隐形轰炸机和爱国者导弹上,甚至 连1 9 9 7 年4 月在火星表面登陆的火星探测器上也使用到了v x w o r k s 。 v x w o r k s 实时操作系统由4 0 0 多个相对独立的、短小精炼的目标模块组成,用 户可根据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可 靠性。系统的链接器可按应用的需要自动链接一些目标模块。这样,通过目标模块 之间的按需组合,可得到许多满足功能需求的应用。因为v x w o r k s 比较复杂、庞大, 代价也极高,所以比较适合高端产品的应用。 v x w o r k s 操作系统的基本构成模块包括以下部分: ( 1 ) 高效的实时内核w i n d v x w o r k s 实时内核( v r m d ) 主要包括基于优先级的任务调度、任务同步和通信、 中断处理、定时器和内存管理。 ( 2 ) y o 系统 v x w o r k s 提供快速灵活的与a n s i - c 相兼容的y o 系统,包括u n i x 的缓冲y o 和实时系统标准p o s i x 的异步i o 。 ( 3 ) 本机文件系统 v x w o r k s 的文件系统与m s - d o s 、r t - 1 1 、r a m 、s c s i 等相兼容。 ( 4 ) 网络特性 v x w o r k s 网络能与许多运行其它协议的网络进行通信,如t c p i p 、4 3 b s d 、 n f s 、u d p 、s n m p 、f t p 等。v x w o r k s 可通过网络允许任务存取文件到其它系统 中,并对任务进行远程调用。 ( 5 ) 内存( 包含可选单元v x v m i 、v x m p ) 虚拟内存v x v m i 主要用于对指定内存区的保护,如内存块只读等,加强了系 统的健壮性。共享内存v x m p 主要用于多处理器上运行的任务之间的共享信号量、 消息队列、内存块的管理。 在整个v x w o r k s 中最为关键的部分是其内核w i n d 。而我们实现的面向教学的 嵌入式实时操作系统也是着重与系统内核的实现。v x w o r k s 的内核w i n d 是一个具 有较高性能的、标准的嵌入式实时系统内核。主要特点是支持多任务、快速任务切 换、抢占式任务调度、任务间通信手段多样化等。w i n d 的任务调度策略以可抢占 第二章嵌入式实时操作系统的相关理论基础 一个教学用嵌入式实时操作系统的开发 式调度为基础,辅以时间片轮转调度算法。这样的调度策略能够及时地响应高优先 级的任务,而同级任务则可以选择时间片轮转法使多个同优先级的任务并发执行。 w i n d 内核使用基于优先级的抢占式任务调度算法时,系统中的每一个任务都 有一个优先级。w i n d 内核有2 5 6 个优先级,编号0 - 2 5 5 ,优先级0 最高,2 5 5 最低。 任务的优先级在任务创建时制定。任一时刻,内核都将c p u 分配给处于就绪状态 的优先级最高的任务执行。如果某种任务的优先级比当前任务高,并处于就绪状态, 则系统内核将立即保存当前执行任务的上下文,并切换到高优先级任务的上下文中 去。需要特别注意的是,当w i n d 允许任务执行时,通过调用函数t a s k p r i o r i t y s e t 0 , 动态地改变自己的优先级。 2 4 2 uc 0 s - i i 操作系统分析 uc o s 一1 1 是j e a nj l a b r o s s e 开发的,一种源代码公开的嵌入式实时操作系统 内核。该内核以规模不大的代码实现了抢占式多任务调度、任务间的通信等功能【4 1 。 任务调度算法采用b i t m a p 实现,设计思想十分独特【1 1 1 。该内核裁减到最小状态后 编译出来的代码只有8 k b 左右,资源消耗非常小,适合于功能不十分强大的 c p u 皿讧c u 使用。尤为让人感至十惊喜的是,该r t o s 的网站上提供了针对近百种 c p u m c u 的移植实例,用户只要稍加修改就可以用到自己所使用的处理器上,极 大地方便了用户的开发。 弘c o s 一目前已经在世界范围内得到广泛使用,包括诸多领域,如手机、路 由器、集线器、不间断电源、飞行器、医疗设备及工业控制等。并且uc o s i i 通 过了非常严格的测试,得到了美国航空管理局的认证,可以用在飞行器上。因此, i ic o s - 是十分稳定可靠的,可以用于与人性命有关的安全紧要系统。 “c o s i i 内核按照其功能可以划分为任务管理模块、时间管理模块、信号量 管理模块、事件管理模块、消息邮箱和队列管理模块和内存管理模块。 l ac o s 。的任务状态根据一个任务状态机切换。任务存在等待、就绪和休眠 三个状态。运行状态只是就绪状态任务中最高优先级任务被调度执行的逻辑状态。 而中断状态则是最高优先级任务被设备中断运行的状态。运行状态和中断状态都是 逻辑状态。pc o s i i 任务调度器执行的功能就是按照任务有限状态机的规则,将 任务从一个状态迁移到另一个状态。任务调度器采用的是基于任务优先级的抢占式 1 4 一个教学用嵌入式实时操作系统的开发 第三章e d o s 实时操作系统 调度算法。使用独特的b i t m a p 算法,实现了常数时间的任务切换。 uc o s 应用程序的运行流程如下:主程序首先对系统进行初始化,给各个 参数赋值,根据任务的多少来建立任务控制块链表,并且首先建立一个最低优先级 的空闲任务。当没有其他任务需要运行时,对一个变量进行累加计算来计算空闲时 间。任务创建函数分配的一块内存,保存寄存器的值和该任务的代码地址,再把堆 栈的地址存入任务控制块,从而把任务程序代码、任务堆栈和任务控制块联系在一 起。操作系统内核可以通过任务控制块找到任务堆栈,从堆栈中取得任务代码地址。 而任务的切换发生在两个时候:一个是当某一任务运行完毕时就调用延时函 数,使自身延时一个或几个时钟周期,进行任务切换,运行就绪的最高优先级最高 任务;另一个是在每一次时钟周期中断时,中断程序处理事务时,可能使一些任务 运行准备就绪,然后重新整理和搜索任务就绪表,进行任务切换,选出其中的高优 先级任务运行。 2 5 小结 本章较为详尽地介绍了嵌入式实时操作系统的基本概念、功能和关键特性。给 出了两种嵌入式实时操作系统的分类方法,并从嵌入式操作系统发展历史的眼光针 对v x w o r k s 和“c o s i i 作了简要的分析。本章的介绍和叙述为下文特别是第五章 作了理论上的准备和铺垫。 第三章e d o s 实时操作系统内核代码设计与实现 一个教学用嵌入式实时操作系统的开发 第三章e d o s 实时操作系统内核代码设计与实现 依据前文的对当今著名嵌入式实时操作系统原理分析,设计并实现了基于微内 核的教学用嵌入式实时操作系统e d o s 。为了突出该r t o s 的教学性,在某些设计 方面更多地考虑了原理的实现而在一定程度上损失了效率。e d o s 操作系统的内核 是整个平台的灵魂之所在。学生通过学习该内核的原理和实现将能够充分掌握 r t o s 的思想和原理,为将来的进一步开发打下坚实的基础。 本章首先将从任务管理、信号量管理、消息队列管理、时间管理、存储管理五 大功能模块分别介绍其设计思路和工作原理,接着将针对前文介绍的硬件给出 e d o s 的移植方法,最后是内核开发过程中的体会。 3 1 e d o s 内核结构与模块划分 e d o s 内核代码根据其所处层次划分为两大部分,底层为与c p u m c u 紧密相 关的移植代码,上层为实现e d o s 内核功能的可移植、可裁减的c 语言代码。 底层的代码由标准c 语言和汇编语言针对特定的c p u m c u 编写,与硬件紧密 相关。为了降低e d o s 内核的移植难度,该部分的代码量已经尽可能降至最低限度。 并且在熟悉所使用的c p u m c u 硬件的基础上,根据已有的移植代码,可以很快地 移植到其它8 位、1 6 位、3 2 位c p u 、m c u 上。 为了便于初学者学习嵌入式实时操作系统,更好地理解掌握r t o s 基础知识, 特将上层的使用标准c 编写的e d o s 内核实现代码分为若干
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度景区专用观光车辆租赁及综合旅游服务合同
- 2025年网络公司间技术知识产权共享及数据保密合同
- 2025年度食品流通环节安全监管与风险评估委托合同
- 2025年新能源行业并购项目税务优化与合规管理合同
- 2025年北京车牌租赁代理业务合作协议书
- 2025年度跨境电商佣金代理及物流配套服务合作协议
- 2025年度上市公司财务顾问合同-详尽财务报表编制及分析服务
- 2025年智慧社区安全监控与应急响应服务合同标准
- 2025年软件开发公司软件源代码及设计文档保密合同
- 2025年绿色能源项目设备采购及安装服务合同
- 《更年期的中医调理》课件
- 《环形件模锻实验》课件
- DB37T 5059-2016 工程建设地下水控制技术规范
- 智慧安监大数据云平台建设方案
- 商务英语词汇大全
- 人教PEP版(一起)(2024)一年级上册英语全册教案(单元整体教学设计)
- 护士职业防护
- 酒店公共卫生事件应急预案
- DL∕T 1664-2016 电能计量装置现场检验规程
- DL∕T 1455-2015 电力系统控制类软件安全性及其测评技术要求
- 临床护理“三基”应知应会汇编
评论
0/150
提交评论