已阅读5页,还剩58页未读, 继续免费阅读
(检测技术与自动化装置专业论文)pic24f系列微控制器实时操作系统的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 摘要 随着嵌入式系统性能的提高,嵌入式应用日益广泛,传统的前后台设计模式 已经不能满足日益复杂的应用需求,任务响应时间长,各功能模块之间耦合度高, 代码难以重用不便扩展等问题越来越突出,这使得在嵌入式系统中引入实时操作 系统变得越来越迫切。 在此背景下,本文设计并实现了一种以m i c r o c h i p 公司生产的高性能1 6 位 p i c 2 4 f 微控制器为硬件平台的嵌入式实时操作系统,主要由实时内核和精简的 t c p i p 协议栈组成。 实时内核是基于p i c 2 4 f 系列微控制器开发的,主要包括实时多任务调度、 任务间同步与通信、中断管理以及时间管理等模块。多任务调度采用基于优先级 的抢占式调度策略,实现了微秒级的响应时间,能够很好的满足嵌入式系统对实 时性能的要求。任务间通过信号量机制实现同步与互斥,通过消息和邮箱机制实 现任务间的通信。实时内核支持嵌套层数最多为3 层的中断嵌套,嵌套栈与任务 栈相互独立,并提供1 0 m s 的时钟节拍和以该时钟节拍为间隔的软件定时器供用 户使用。 为了满足嵌入式系统的数据通讯要求,本文以m i c r o c h i p 公司提供的协议栈 m c h p s t a c k 作为参考原型,对该协议栈内各层协议以及协议内功能函数进行裁剪 和修改,开发了精简t c p i p 协议栈,实现了基于r t l 8 0 1 9 a s 芯片的以太网驱动 程序和a r p 、i p 、i c m p 、t c p 等协议以及精简协议栈与嵌入式操作系统的融合, 最终实现了数据在局域网和i n t e m e t 上的正确传输。 最后,为了便于对嵌入式实时操作系统进行评价,在分析了系统各项实时性 能指标的基础上,设计了合理的测试项目对操作系统实时性能进行了实际测试, 测试结果表明本文设计的嵌入式实时操作系统具有较好的实时性,满足实际应用 需求。目前,本文设计的嵌入式实时操作系统已经在山东省寿光商务小区能量管 理系统中成功运行,通过该系统的运行,验证了设计的嵌入式实时操作系统具有 良好的稳定性和可靠性。 关键字:p i c 2 4 f ;微控制器;嵌入式系统;实时操作系统;t c p i p 协议栈 山东大学硕士学位论文 a b s t r a c t w i t ht h ei m p r o v e m e n to fe m b e d d e ds y s t e m sp e r f o r m a n c e ,e m b e d d e d a p p l i c a t i o n i s b e c o m i n gi n c r e a s i n g l yw i d e t r a d i t i o n a l f o r e g r o u n d b a c k g r o u n ds o f t w a r e a r c h i t e c t u r ei sn ol o n g e ra b l et os u p p o r tt h em o r ea n dm o r ec o m p l i c a t e da p p l i c a t i o n r e q u i r e m e n t al o to fp r o b l e m s ,s u c ha sl o n gr e s p o n s et i m eo ft a s k s ,h i g hc o u p l i n g b e t w e e nm o d u l e sa n dd i f f i c u l t yt or e u s ec o d e ,b e c o m em o r ea n dm o r ep r o m i n e n t i t m a k e st h ei n t r o d u c t i o no fe m b e d d e ds y s t e mi nr e a l - t i m eo p e r a t i n gs y s t e mb e c o m e u r g e n t b a s e do nt h e b a c k g r o u n d ,t h ep a p e rd e s i g n sa n di m p l e m e n t sa ne m b e d d e d r e a l t i m eo p e r a t i n gs y s t e mb a s e do np i c 2 4 fm i c r o c o n t r o l l e r t h es y s t e mc o n s i s t so f t h er e a l t i m ek e r n e la n dt i n yt c p i p p r o t o c o ls t a c k t h er e a l - t i m ek e r n e lc h i e f l yi n c l u d e st h er e a l t i m em u l t i t a s ks c h e d u l i n g ,i n t e r - t a s k s y n c h r o n i z a t i o na n dc o m m u n i c a t i o n ,i n t e r r u p ta d m i n i s t r a t i o na n dt i m ea d m i n i s t r a t i o n t h em u l t i t a s ks c h e d u l e ra d o p t sp r e e m p t i v es t r a t e g yb a s e do np f i o f i 哆l e v e l ,w h i c hc a n a c h i e v em i c r o s e c o n dr e s p o n s e ,t o s u p p o r tt h er e a l - t i m ee m b e d d e ds y s t e mt om e e t p e r f o r m a n c er e q u i r e m e n t s i n t e r - t a s k su s es e m a p h o r em e c h a n i s mt oa c h i e v e s y n c h r o n i z a t i o na n de x c l u s i o n ,a n du s em e s s a g ea n dm a i lm e c h a n i s m st oa c h i e v e c o m m u n i c a t i o n t h er e a l - t i m ek e r n e la l s os u p p o r t si n t e r r u p tn e s t i n g ,w h i c hc a nn e s t t h r e et i m e sa tm o s t t h ei n t e r r u p ts t a c ki si n d e p e n d e n to ft a s ks t a c k i na d d i t i o n , t h e k e r n e lp r o v i d e s10 m sc l o c kb e a ta n ds o f t w a r et i m e rf o ru s e r s i no r d e rt om e e tt h ec o m m u n i c a t i o n r e q u i r e m e n t so ft h ee m b e d d e ds y s t e m ,t h e p a p e rd e v e l o p sat i n yt c p i pp r o t o c o ls t a c kb a s e do nr t l 8 019 a se t h e r n e tc h i pb y c l i p p i n ga n dm o d i f y i n gt h em i c r o c h i pt c p i ps t a c k m c h p s t a c k t h i ss t a c kc o n s i s t s o fe t h e r n e td r i v e r , a r p , i p , i c m pa n dt c p p r o t o c o l s a n dt h i ss t a c ki se a s yt o i n t e g r a t e 晰t l lt h ee m b e d d e ds y s t e mt or e a l i z et h ee t h e r n e td a t at r a n s m i s s i o n a tl a s t ,b a s e do nt h ea n a l y s i so ft h ee m b e d d e ds y s t e m ,ar e a s o n a b l et e s t i n gp r o j e c t i sd e s i g n e dt oe v a l u a t et h i ss y s t e m sr e a l t i m ep e r f o r m a n c e t h er e s u l t ss h o wt h a tt h e d e s i g n e de 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 mh a si d e a l l yr e a l t i m ep e r f o r m a n c et o m e e tt h en e e d so fp r a c t i c a la p p l i c a t i o n s a tp r e s e n t ,t h i ss y s t e mh a sb e e n s u c c e s s f u l l y u s e di nt h ee n e r g y m a n a g e m e n ts y s t e mi nt h eb u s i n e s sd i s t r i c to fs h o u g u a n g , s h a n d o n gp r o v i n c e ,w h i c hs h o w st h eg o o ds t a b i l i t ya n dr e l i a b i l i t yo ft h i ss y s t e m i i 山东大学硕士学位论文 k e y w o r d s :p i c 2 4 f , m i c r o c o n t r o l l e r , e m b e d d e ds y s t e m ,r e a l t i m eo p e r a t i n gs y s t e m , t c p i pp r o t o c o ls t a c k i i i 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本 文的研究作出重要贡献的个人和集体,均已在文中以明确方式标 明。本声明的法律责任由本人承担。 论文作者签名:a 毕 e t 关于学位论文使用授权的声明 本人同意学校保留或向国家有关部门或机构送交论文的印刷件 和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或其他复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 蝣粼:篮学臌名:楚日期:毕勺 山东大学硕士学位论文 第一章绪论 1 1 课题研究背景与意义 随着计算机技术和通信技术的飞速发展,数字产品逐渐向小型化和智能化发 展,在其带动下,嵌入式技术已经成为现在最有生命力的技术之一,得到了迅速 发展和广泛应用。从日常用品到工业生产、从商业服务到科学教育乃至军事国防 等方方面面,嵌入式系统的身影无处不在【1 1 。 在嵌入式系统开发初期,系统资源较少,系统所需功能简单,应用程序的编 写主要采用前后台处理模式:前台的中断服务程序处理异步事件;后台应用程序 是一个无限的循环,循环中通过查询标志位的变化调用相应函数完成对应的操作 【2 1 。随着嵌入式应用的日益广泛,系统功能越来越强大,程序设计也越来越复杂, 前后台处理模式已经不能满足实际应用需求,如实时性差,各功能模块耦合度高, 难以重用已有代码,不适合团队合作开发等,这些问题的出现使得在嵌入式系统 中引入操作系统变得越来越重要。但目前使用比较多的大部分是商业化操作系 统,比较有代表性的是:v x w o r k s 、p s o s 、q n x 等,其昂贵的价格大大增加了 开发成本,封闭的代码也增加了对该公司的依赖性。个别的源代码开放的操作系 统,如g c o s i i 也因为任务堆栈占用存储空间过大等原因无法移植到我们的嵌入 式系统中。 p i c 2 4 f 系列微控制器是美国m i c r o c h i p 公司最近推出的1 6 位产品,由于其在 低成本和低功耗方面具有的突出优势,已经成为当下比较流行的一种工业控制芯 片。因此,基于以上考虑并为了满足实际工程应用的需要,决定针对p i c 2 4 f 系 列微控制器设计一个嵌入式实时操作系统。 1 2 嵌入式实时操作系统 1 2 1 嵌入式操作系统的发展过程 作为嵌入式系统的灵魂,嵌入式操作系统是随着嵌入式系统的发展而出现 的,它是嵌入式系统发展到一定阶段的产物,是嵌入式处理器性能和硬件复杂度 提高的必然结果。纵观嵌入式技术的发展,嵌入式操作系统的发展过程大致经历 了以下四个阶段【3 】: ( 1 ) 第一阶段是以单芯片为核心的可编程控制器形式的系统。该系统多应用 1 山东大学硕士学位论文 于专业性极强的工业控制系统中,一般没有操作系统的支持,主要是通过汇编语 言对系统进行直接控制,运行结束后消除内存。这一阶段系统的主要特点是系统 结构和功能相对单一,处理器效率较低,存储容量较小,几乎没有用户接口。由 于这种嵌入式系统使用简单、价格很低,以前在国内工业控制领域应用普遍,但 已远远不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家 电等领域的需求。 ( 2 ) 第二阶段是以嵌入式c p u 为基础,以简单操作系统为核心的嵌入式系 统。这一阶段系统的特点是c p u 种类繁多,通用性比较弱;系统开销小,效率高; 操作系统具有一定的兼容性和扩展性:应用软件较专业,多用于特定的硬件环境, 缺乏评审,移植性不好。 ( 3 ) 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段的系统的 主要特点是嵌入式操作系统能运行于多种微处理器上,兼容性较好;操作系统内 核小巧、执行效率高,并且具有较高的模块化和可扩展性:具有文件和目录管理、 设备管理,支持多任务、网络、图形窗口以及用户界面等功能;具有大量的应用 程序接口( a p i ) ,开发应用程序较简单;嵌入式应用软件丰富。 ( 4 ) 第四阶段是以接入i n t e m e t 为标志的嵌入式系统。目前大多数嵌入式系 统还是相互孤立的,没有网络连接,随着i n t e m e t 的发展和i n t e m e t 技术与信息家 电、工业控制技术等结合日益密切,嵌入式设备与i n t e m e t 的结合将代表着嵌入 式技术发展的真正未来。 1 2 2 嵌入式操作系统的发展现状 从2 0 世纪8 0 年代起,国内外许多计算机生产厂商和公司开始进行商业嵌入式 系统和专业操作系统的研制和开发,到目前已经有许多优秀的实时操作系统被开 发出来,种类繁多,主要分为商用型和免费型两种。 商用型的嵌入式操作系统主要有v x w o r k s 、w i n d o w sc e 、p s o s 、q n x 、p a l m o s 等,它们的优点是功能可靠、稳定,技术支持和售后服务比较完善,而且提供 了高端嵌入式系统要求的许多功能,包括文件系统、图形用户界面、网络支持等; 缺点是价格昂贵而且源代码封闭,影响了开发者的学习和使用的积极性。免费型 的嵌入式操作系统,包括嵌入式l i n u x 和i _ t c o s i i 。下面介绍几种常用的嵌入式操 作系统【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 公司设计开发的一种嵌 2 山东大学硕士学位论文 入式实时操作系统。它基于微内核结构,由4 0 0 多个相对独立、短小精悍的目标 模块组成,拥有良好的持续发展能力以及友好的用户开发环境,同时具有程序动 态链接和下载的功能,是目前嵌入式系统领域中使用最广泛、市场占有率最高的 实时操作系统。 ( 2 ) w i n d o w sc e :m i c r o s o f tw i n d o w sc e 是从整体上为有限资源平台而设计 的多线程、完整优先权、多任务的嵌入式操作系统,主要针对于小容量、移动式、 智能化、3 2 位、连接设备的模块化实时应用。高度模块化使得w i n d o w sc e 能够 对掌上设备、无线设备、专用工业控制器的用户电子设备等进行定制,并使得 w i n d o w sc e 能在多种处理器体系结构上运行,尤其适用于那些对内存占用空间 具有一定限制的设备。 ( 3 ) p s o s :p s o s 是i s i 公司研发的产品,是一个模块化、高性能、完全可 扩展的实时操作系统。它专为嵌入式微处理器设计,提供了一个完全的多任务环 境,在定制的或者商业的硬件上提供高性能和高可靠性,可以让开发者根据操作 系统的功能和内存需求定制每一个应用所需的子系统。开发者可以利用它来实现 从简单的单个独立设备到复杂的、网络化的多处理器系统。 ( 4 ) q n x :q n x 是加拿大q n x 公司的产品。它是一个实时、可扩充的操 作系统,部分遵循p o s i x 相关标准,提供了一个很小的微内核以及一些可选的配 合进程。q n x 内核非常小巧,运行速度极快。由于q n x 具有强大的图形界面功 能,因此非常适合作为机顶盒、手持设备、g p s 设备的嵌入式实时操作系统使用。 ( 5 ) p a l mo s :3 c o m 公司的p a l mo s 提供开放的操作系统应用程序接口 ( a p i ) ,开发商可以根据需要自行开发所需的应用程序。目前p a l mo s 在掌上电 脑和p d a 市场上占有很大的市场份额。 ( 6 ) 嵌入式l i n u x :l i n u x 是一种免费的、源代码完全开放的、符合p o s i x 标准规范的操作系统。随着l i n u x 的迅速发展,嵌入式l i n u x 现在已经有许多版 本,包括硬实时的嵌入式l i n u x ( 如r t - l i n u x ) 和一般的嵌入式l i n u x ( 如i - t c l i n u x ) 。 r t - l i n u x 通过把l i n u x 任务优先级设为最低,而所有实时任务的优先级都高于它, 最终达到即兼容通常的l i n u x 任务又保证强实时性能的目的。g c l i n u x 是针对于 没有内存管理单元( m m u ) 的处理器而开发的,它对内存的访问是直接的,对 内存空间不提供保护,各个进程共享一个运行空间。 ( 7 ) i _ t c o s i i :g c o s i i 是一个完整的,源代码公开的,可移植的、固化、 3 山东大学硕士学位论文 裁剪的占先式实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高, 占用空间小、可移植性强、实时性能优良和可扩展性强等特点。至今为止,g c o s i i 已在超过4 9 种不同架构的微处理器上成功移植,更因为其源代码完全公开,所 以国内外很多高校都将其用于实时系统教学。 1 2 3 现代嵌入式操作系统的特征 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统 极为重要的组成部分,通常包括与硬件相关的底层驱动程序、系统内核、设备驱 动接口、通信协议、图形界面、标准化浏览器等,以多任务管理的方式为用户应 用提供软件平台。它的引入提供了一种新的管理模式,改变了以往嵌入式软件设 计只能针对具体应用从头做起,软件不具有可重用性的历史 现代嵌入式操作系统主要具有以下几个特础6 】【8 】: ( 1 ) 面向硬件系统:嵌入式系统处理器一般都是独立工作,没有人的直接参 与,即使有人为参与,也没有大量的文字信息输出。因此嵌入式系统着重面向的 是硬件,而不是完整的人机界面。为此操作系统不是直接可以用的,一般需要经 过针对专门硬件平台的移植,嵌入式操作系统才能正常工作。 ( 2 ) 多任务:半导体技术的发展和应用复杂性的增长促使c p u 的处理能力 越来越高,在这样强大的处理器上运行应用程序,可以根据需要,将应用按要求 划分为数个任务以便于应用软件的开发和维护。为此嵌入式系统中采用的操作系 统必然是支持多任务的,并能够根据各个任务的轻重缓急,合理的在它们之间分 配c p u 和各种资源。 ( 3 ) 实时性:所谓实时性,核心含义在于执行时间的可确定性,即在规定的 时间内做完应该做的事情,并且系统对外部时间响应的最坏时间是可以预知的。 目前嵌入式系统已经广泛应用于监测、控制以及军工领域,这些工作都要求系统 具有实时性,一旦出现相关情况,系统能够及时响应,刻不容缓。 ( 4 ) 高可靠性:嵌入式应用一般和工业控制、交通工具、医用器械等机电系 统密切相关,不适当的输出甚至不及时的输出都可能带来财产损失和安全问题。 因此嵌入式应用中的操作系统要求高可靠性,发行之前必须进行严格的测试。 ( 5 ) 可剪裁性:嵌入式系统硬件环境只有标准化的c p u ,没有标准化的存储、 i o 和显示构架,是面向单一设备的单一应用。在研发时必须立足于改变自身、 开放自身,让开发人员可以方便的根据硬件环境和应用程序对功能、可靠性、成 4 山东大学硕士学位论文 本、体积以及功耗等要求对系统进行裁剪和配置,以实现软件构件的“即插即用”。 ( 6 ) 可移植性:嵌入式系统所采用处理器的结构、资源以及编译环境差别很 大,这对操作系统的通用性提出了很高的要求。因此嵌入式实时操作系统在设计 时必须考虑以后能够方便的在不同处理器上移植。 1 2 4 嵌入式操作系统的发展趋势 随着信息家电和信息产业的迅速发展,微电子技术发展迅速,片上系统使嵌 入式系统越来越小,功能却越来越强。近几年,嵌入式操作系统的发展有了以下 显著变化【1 】【9 】: ( 1 ) 应用领域更加广泛:以往,嵌入式操作系统多用于传统的工业控制和商 业管理领域,如智能工控设备、p o s a t m 机、i c 卡等,现如今嵌入式操作系统 的应用已涉及到生活中各个领域。在信息家电领域,机顶盒、w e b t v 、网络冰箱、 网络空调等众多的消费类和家庭医疗保健类电子设备的研究引起人们越来越多 的关注;医疗仪器领域大量医疗仪器的应用,如嵌入式心脏起搏器、嵌入式放射 设备及分析监护设备,也都需要r t o s 的支持;在智能汽车和智能交通领域,嵌 入式操作系统的引入必将大大提高系统的可靠性和智能化程度。 ( 2 ) 源代码的开放:开放源代码之风已波及到嵌入式系统厂家,越来越多的 操作系统厂家出售产品时附加了源程序代码。 ( 3 ) 新理念的引入:各种通用机上使用的新技术、新概念正逐步移植到嵌入 式系统中,如移动数据库、移动代理等,嵌入式操作系统也出现了基于面向对象 的分布式技术,如嵌入式c o r b a 、嵌入式c o r b a 、嵌入式平台正逐步建立。 ( 4 ) 网络化趋势明显:随着通信技术与信息家电、工业控制技术的结合日益 密切,嵌入式操作系统的网络化趋势明显,特别是与i n t e m e t 及无线网络的结合 对嵌入式操作系统提出了新的要求。 ( 5 ) 移植性能的提高:一方面嵌入式操作系统自身结构的设计更易于移植, 以便在短期内支持更多种微处理器;另一方面,系统能够使用驱动程序开发和配 置环境,造就一个新的板级支持包和驱动程序结构,以适应微处理器不断升级变 化所产生的需求。 ( 6 ) 标准化问题凸显:嵌入式操作系统应用愈加广泛,各个厂家推出了各自 的应用标准,为促进市场的融合统一,嵌入式操作系统的标准化研究越来越被重 视。 5 山东大学硕士学位论文 1 3 课题研究内容及章节安排 本课题选用m i c r o c h i p 公司的p i c 2 4 f 系列1 6 位微控制器作为开发芯片,将 充分发挥其功能,并结合人们对嵌入式系统性能的要求,设计一个微内核、高效 率的嵌入式实时操作系统,具体设计目标如下: ( 1 ) 采用基于优先级的抢占式调度策略,提供细粒度的实时多任务管理,以 期很好的满足嵌入式系统对实时性能的要求; ( 2 ) 任务间通过邮箱、消息、共享内存进行通讯,任务间通过信号量机制实 现同步和互斥: ( 3 ) 支持精简的t c p i p 协议栈,实现嵌入式操作系统的网络化; ( 4 ) 在满足系统功能的前提下,结构尽可能紧凑、简单,尽可能减少所占用 的程序、数据存储空间和c p u 开销; 本文共分为五章,结构安排如下: 第一章:绪论。介绍嵌入式操作系统的发展历程、发展现状、特点以及发 展前景,分析本课题的背景,提出课题研究内容和意义。 第二章:嵌入式操作系统结构设计。介绍了课题的硬件开发平台,详细论述 了操作系统的微内核设计与实现,主要包括任务调度,中断处理,任务同步及通 信等部分,并分析调试过程中出现问题,提出解决方法。 第三章:嵌入式t c p i p 协议栈。介绍嵌入式t c p i p 协议栈特点及各层协议 的工作原理,详细论述了嵌入式操作系统接入i n t e m e t 的设计与实现。 第四章:系统性能测试。简要介绍了系统性能评测指标体系,然后制定测试 方法,对本课题设计操作系统进行测试,并对测试结果进行分析以供参考使用。 第五章:总结与展望。对全文作出系统全面的总结,并对今后需要进一步深 入研究的方向做了展望。 6 山东大学硕士学位论文 第二章嵌入式实时操作系统的设计与实现 本文设计的嵌入式实时操作系统基于p i c 2 4 f 硬件平台,采用微内核体系结 构,采用基于优先级的抢占式调度策略,提供任务间通信与同步管理、中断管理, 提供i n t e r n e t 接入功能。为了最大程度地提高嵌入式操作系统的可移植性、可扩 展性和实时性,操作系统绝大部分代码采用c 语言编写,而对于一些时间要求苛 刻的应用,如中断处理、任务上下文切换等,使用效率高的汇编语言实现,既保 证了系统的实时响应能力,又降低了移植复杂性。 本章节将逐一介绍内核各部分的设计与实现。 2 1p i c 2 4 f 系列微控制器 美国m i c r o c h i p 公司最新推出的1 6 位p i c 2 4 f 系列微控制器采用了全新的内 核架构和流水线结构,最高性能为1 6 m i p s ,性价比高,主要适用于低成本和低 功耗的应用,是目前流行的一种工业控制芯片。本课题选用该系列的 p i c 2 4 f j 3 2 g a 0 0 2 微控制器作为开发平台,该微控制器主要具有以下特点u o - t 2 】: c p u 模块采用1 6 位改良的哈佛架构,并带有高度优化指令集; - 具有8 k b 的r a m 、3 2 k b 的f l a s h 程序存储区及丰富的片上外围模块, 包括u a r t 模块,s p i 模块、1 2 c 模块,定时器模块等; 最多可以设置1 1 8 个中断向量,每个中断源具有一个固定的自然优先级 和一个用户分配优先级。 一 m i c r o c h i p 公司提供专用的集成开发环境( m p l a bi d e ) 和硬件仿真器 ( m p l a bi c d 2 ) ,方便的实现了程序编写、模拟仿真和在线编程。 p i c 2 4 f 微控制器没有内存管理单元,系统直接对内存进行访问,因此在设计 操作系统之前,深入了解微控制器的内存结构十分必要。 微控制器具有8 k b 的r a m ,其中最主要的部分是软件堆栈。软件堆栈是一 个先进后出的位于内存的堆栈空间,其最大深度可占整个数据存储空间。系统通 过使用软件堆栈进行自动变量的分配、传递函数参数、在中断函数中保存处理器 状态、保存函数返回地址、存储临时变量、函数调用时保护寄存器等操作。运行 时堆栈是向上生长的,从低地址向高地址生长【1 1 】。系统运行时,使用两个工作寄 存器w 1 4 帧指针和w 1 5 堆栈指针来管理堆栈:w 1 4 是指向当前函数的指针,配 7 山东大学硕士学位论文 合指令i n k 、u l n k 指令使用实现帧链接和帧释放【1 3 1 ;w 1 5 是指向堆栈的指针,从 低地址向高地址方向生长,初始时指向栈顶,在弹出堆栈( p o p ) 时递减,在压 入堆栈( p u s h ) 后递增【1 4 1 【1 5 】。 2 2 嵌入式操作系统内核设计 嵌入式实时操作系统中最关键的部分是实时多任务内核,内核主要实现操作 系统必需的部分,包括任务管理、定时器管理、任务间通信与同步、中断管理等 功能,将那些不是非常重要的功能和服务,如网络通信、设备管理等作为内核之 上可以配置的部分,方便系统扩展【1 6 】【1 7 1 。如何实现一个效率高、体积小、移植功 能强大的实时操作系统内核是开发嵌入式操作系统的关键问题。 2 2 1 任务管理 软件设计时,通常将大型应用程序分解成独立的、相互作用的程序集合,然 后在计算机中通过运行这些程序,最终达到完成某种应用目的。对于每个程序集 合,当其被执行时,我们称之为任务1 引。 任务是组成系统的一个元素,与承担其他功能的任务协同工作,从而形成一 个有机的整体,即多任务系统。操作系统所要完成功能就是要在多任务系统的各 个任务之间合理的分配c p u 和硬件资源【1 9 】。根据应用环境和规模的不同,操作 系统的任务数也不相同。本课题设计的嵌入式实时操作系统最多可以管理1 6 个 任务,这对于一般的嵌入式应用,已能完全满足需要。任务作为操作系统进行资 源分配和调度的最小单位,拥有各自独立的优先级、控制模块和堆栈空间等。 2 2 1 1 任务控制块 任务管理中涉及到的最重要的数据结构是任务控制块。任务控制块是描述任 务控制信息的数据结构,每个任务都有唯一的任务控制块与之对应,它是任务在 系统中存在的标志。当任务的c p u 使用权被剥夺时,操作系统用它来保存该任务 的状态;当任务重新恢复c p u 使用权时,任务控制块能保证该任务从中断执行的 那一点正确继续执行。任务控制块结构描述如下: t y p e d e fs t r u c tt a s k c o n t r o l b l o c k t a s k s t a c k t a s k s p ; b y t e t a s k l d ; b y t e t a s k s t a t u s ; 8 山东大学硕士学位论文 b y t e t a s k p r i o t y ; b y t et a s k d e l a y t i m e ; w o r dt a s k p c l ; w o r d t a s k p c h ; ) t c b ; 协k s p :指向任务堆栈栈顶的指针。嵌入式操作系统为每个任务分配独立的 任务堆栈,用于在任务切换或者中断时保存任务的上下文环境。 t a s k l d :任务i d 号,取值范围是0 1 5 ,不同任务i d 号互不相同。 t a s k s t a t u s :任务状态,共就绪态、运行态、挂起态和延时态四种状态。 t a s k p r i o t y :任务优先级,取值范围为o 1 5 ,数值越低,优先级越高。 t a s k d e l a y t i m e :任务延时的时间片数。 协k p c l :任务入口地址低字节部分。 t a s k p c h :任务入口地址高字节部分。 2 2 1 2 任务状态 在本课题设计的嵌入式操作系统中,每个任务都处在以下四种状态之一:就 绪态、运行态、挂起态和延迟态,具体定义如下: 就绪态( i 迮a d y ) :是指任务已经获得除c p u 之外的所需资源,已经准备好 可以运行,但由于该任务的优先级比正在运行的任务的优先级低,暂时不能运行。 运行态( r 州g ) :是指任务获得了c p u 的控制权,正在运行中。 挂起态( w a i t ) :是指任务在等待某一事情的发生,如等待某个消息的触发, 而这个事情又没有发生时该任务所处的状态。 延时态( d e l a y ) :是指任务主动让出控制权,而设定的唤醒时间还没到来 时所处的状态。 任务是按照明确定义的规则连续的在以上四种状态间移动的,在任务创建时 均被初始化为就绪状态。下图2 1 描述了四种状态间的相互转换关系。 图2 1 四种状态之间的相互转换 9 山东大学硕士学位论文 ( 1 ) 就绪状至运行态:处于就绪态的任务,在任务调度中,优先级最高,状 态迁移至为运行态。 ( 2 ) 运行态至就绪态:处于运行态的任务,被优先级更高的任务剥夺c p u 使用权,状态迁移至就绪态。 ( 3 ) 运行态至延时态:处于运行态的任务,在运行过程中执行了任务延迟函 数,状态迁移延迟态。 ( 4 ) 延迟态至就绪态:处于延迟态的任务,延迟函数设定的时间到,该任务 被唤醒进入就绪态。 ( 5 ) 运行态至挂起态:处于运行态任务执行完毕,或者等待的事情没有发生, 自动将自己变为挂起态。 ( 6 ) 挂起态至就绪态:处于挂起态任务等待的事情发生,或者触发条件满足, 状态迁移至就绪态。 2 2 1 3 任务上下文和任务堆栈 在多任务系统中,任务调度引发任务上下文切换。任务上下文是指任务的运 行信息,即c p u 寄存器的全部内容。任务运行过程中被剥夺c p u 使用权,操作 系统保存当前任务上下文内容到该任务对应堆栈之中,而后将下一个将要运行任 务的上下文内容从该任务堆栈内取出重新装入c p u 寄存器中,并开始该任务的运 行。 p i c 2 4 f 系列微控制器共由2 3 个内核寄存器【l o 】,包括1 6 个工作寄存器及7 个特殊功能寄存器,在任务切换或者中断发生时,作为任务上下文内容保存到相 应堆栈空间。内核寄存器名称及功能如下表2 1 所示: 表2 1p i c 2 4 f 内核寄存器介绍 寄存器名称说明 w 0 到w 1 5工作寄存器阵列 p c 2 3 位程序计数器 s r a l u 状态寄存器 s p l i m 堆栈指针限制值寄存器 t b l p a g 表存储器页地址寄存器 p s v p l a g 程序空间可视性页地址寄存器 r c o u n t r e p e a t 循环计数器寄存器 c o r c o n c p u 控制寄存器 在嵌入式操作系统中,为保证各个任务运行独立性,每个任务都有自己的堆 栈空间用于保存任务被打断时上下文的保护。本课题设计嵌入式操作系统中,任 1 0 山东大学硕士学位论文 务堆栈大小固定,共4 2 个字节,在系统创建任务时从软件堆栈中分配空间,自 下向上依次保存p c l 、p c h 、p s v p a g 、r c o u n t 、c o r c o n 、t b l p a g 、w 0 w 1 4 等2 1 个寄存器内容。需要注意的是:由于p c 为2 4 位宽,当p c 被压入堆栈时, p c 位被压入第一个可用的堆栈字,然后p c 位被压入第二个可用 的堆栈单元。中断处理期间,p c 的m s b 与s t a t u s 寄存器s r 的低8 位相连, 使s r l 的内容能被自动保存。 任务堆栈空间分配成功后,其栈顶地址保存至对应任务控制块中,当发生任 务切换或者中断时,操作系统根据任务控制块中栈顶指针找到任务堆栈并采用相 应入栈、出栈操作。任务控制块与任务堆栈关系如下图2 2 所示: 任备1 的任备堆栈 任务2 的任务堆栈任务3 的任务堆栈 图2 2 任务控制块与任务堆栈关系图 2 2 1 4 任务创建 任务由实时内核创建而得以存在,在本课题设计操作系统中,为保证系统的 正常运行,任务必须在多任务调度之前创建,也就是说,在任务调度之前,至少 要创建一个任务,系统使用任务创建函数e m c r e a t e t a s k ( ) 仓j 建任务。 任务创建函数:b y t ee m c r e a t e t a s k ( v o i d ( 幸t a s k n a r n e ) 0 ,b y t ei d ,b y t ep r i o , b y t e s t a t ) 输入参数:t a s k n a m e 任务函数指针;i d 任务编码:p r i o 任务优先级;s t a t 任 务状态。 返回值:成功返回1 ;错误返回出错码。 e m c r e a t e t a s k 函数伪代码2 1 : 】1 山东大学硕士学位论文 i f ( 参数i d 、p r i o 在合理的取值范围内) 为当前任务分配4 2 字节的任务堆栈; 初始化任务堆栈空间; 初始化任务控制块p t c b i d ; ) 2 2 1 5 任务延时 在操作系统中,调用延迟函数e m d e y 协k ( ) 可以将任务延时一段特定的时间, 这段时间的长短是由时钟节拍的数目来确定。由于延迟函数是不可重入函数,所 以在对任务控制块进行操作之前关闭中断,操作完成之后恢复中断。在调用完该 函数之后会进行一次任务调度,并且执行下一个优先级最高的就绪任务。任务延 时时间期满后会马上进入就绪状态,但是,只有当该任务在所有就绪任务中具有 最高的优先级时,该任务才会立即运行。 任务延迟函数:v o i de m d e y t a s k ( b y t ed t i m ) 输入参数:d t i m 需延迟的时钟节拍数目。 返回值:无。 e m d e y t a s k 函数伪代码2 2 : i f ( d t i m ) 0 ) 关闭中断; p t c b c u r r e n t t a s k l d t a s k s t a t u s2 d e l a y ; p t c b c u r r e n t t a s k l d t a s k d e l a y t i m e = d t i m ; 恢复中断; 执行函数e m s c h e d t a s k 重新开始任务调度; ) ) 任务的恢复与时钟中断相关,其恢复操作在时钟中断处理子函数中处理,将 在时钟节拍章节具体介绍。 1 2 山东大学硕士学位论文 2 2 1 6 任务挂起 当任务运行完毕且不需要继续运行时,任务挂起函数e m c u r r e n t t a s k w a i t 0 可 以把自身挂起,也就是把任务状态置为挂起态。任务挂起函数只能挂起自身,对 其他任务没有操作,在挂起自身以后,系统会进行任务调度,查询优先级更高的 任务执行。等到挂起任务触发条件满足,任务会转入就绪状态。 2 217 任务优先级的修改 操作系统创建任务时,会为每个任务分配一个优先级。在系统运行过程中, 可以根据实际运行条件的变化调用函数e m c h a n g e t a s k p r i 0 0 改变指定任务优先 级。 任务优先级修改函数:b y t ee m c h a n g e t a s k p r i o ( b y t ei d ,b y t ep r i o ) 输入参数:i d 待改变优先级的任务i d 号;p r i o 新优先级。 返回值:成功返回l ;错误返回出错码。 e m c h a n g e t a s k p r i o 函数伪代码2 3 : i f ( 任务i d 、优先级取值在有效范围内) 关闭中断; p t c b i d t a s k p r i o t y = p r i o ; 恢复中断; ) 2 218 任务调度 在多任务系统中,任务调度是内核的主要职责之一。调度是指根据一定的约 束规则,在多任务系统的各个任务之间合理的分配c p u 和硬件资源【2 0 1 。对单处 理器系统而言,多任务系统属于伪并行模式,即从宏观上看是一段时间内若干任 务并行处理,本质上是这些任务的串行执行。 操作系统的实时性和多任务能力在很大程度上取决于他的任务调度机制,大 部分实时内核采用基于优先级的调度策略,每个任务根据其重要程度的不同被赋 予一定的优先级,系统总是让处于就绪态的具有最高优先级的任务运行。基于优 先级的调度策略又可分为两种情况:非抢占式和抢占式【2 1 1 。 1 3 山东大学硕士学位论文 在非抢占式调度中,每个任务自我放弃c p u 的使用权。中断服务可以使一个 高优先级任务由挂起态变为就绪态,但不执行任务切换,中断服务程序结束后控 制权还是返回原来被中断打断的任务之中,直到当前任务运行结束主动放弃c p u 使用权,更高优先级的任务才能获得c p u 使用权开始运行。由于运行着的任务占 有c p u 而不必担心被别的任务抢占,因此非抢占式内核的共享资源的保护机制比 较简单,但同时严重影响任务响应时间。即使高优先级的任务已经处于就绪状态, 也不一定能够立即运行,由此可见,非抢占式调度中任务响应时间是不确定的, 最高优先级何时获得c p u 使用权完全取决于当前任务何时释放c p u 。 在可抢占式优先级调度策略中,任一时刻占有c p u 、正在运行的任务总是当 前就绪任务之中优先级最高的任务。如果当前任务运行过程中,由于某种条件的 满足或者某个异步事件的发生使得另一个具有更高优先级的任务进入就绪态,当 前任务的c p u 使用权被剥夺,具有更高优先级的任务将立刻得到c p u 的使用权, 从而保证了实时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年北师大版小学二年级数学上册图形计数拓展卷含答案
- 《JBT 10611-2021牙嵌式电磁离合器》专题研究报告
- 《JBT 10420-2004 摩托车 花键轴冷挤压件 技术条件》专题研究报告
- 湖南中考:语文高频考点大全
- 湖南高考:历史重点知识点总结
- 2026年全市义务教育均衡考核题库
- 2026年粉丝群追星应援集资类诈骗防骗问答
- 2026年学校教师师德师风表彰奖励机制题
- 2026年社区康复站康复室器材使用与维护管理测试卷
- 2026年品牌故事营销及其成功案例解析
- 更换工业园彩钢瓦施工方案
- 2025四川蜀道资本控股集团有限公司招聘15人笔试历年参考题库附带答案详解
- 南农《土壤学》课件
- 单色渐变美甲课件
- 印章管理员培训课件
- GB/T 45816-2025道路车辆汽车空调系统用制冷剂系统安全要求
- 2025年羽毛球裁判员理论考试试题(附答案)
- 国家安全生产特种作业证件复审
- 脚手架围挡施工方案
- 养猪贷款管理办法
- 《无人机飞行控制技术》全套教学课件
评论
0/150
提交评论