已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)基于μcosⅡ的嵌入式实时系统的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机和通信技术的快速发展,嵌入式系统以其简洁、高效 等优点越来越多地受到人们的广泛关注。嵌入式系统已经逐渐渗透到 人们生活的方方面面,今天几乎所有的电子设备中都包含了嵌入式系 统。嵌入式系统不仅在民用中发挥巨大的作用,在国防建设中,它也 在发挥越来越大的作用。 嵌入式微处理器和嵌入式实时操作系统是嵌入式系统中的核心, 本文选取了性能稳定的实时操作系统pc o s - i i 作为本文的主要研究 内容,对1 tc o s i i 移植到a r m 的基本理论进行了介绍,并给出了移 植的核心代码。其主要工作和研究成果体现在以下几个方面: 首先研究了u s b 通信原理,进行了u s b 设备端驱动程序设计,为 水力发电监控系统中数据采集和控制模块提供了的数据传输支持,保 证了系统的实时性、可靠性和稳定性; 接着详细介绍了优先级反转的现象及解决方法,在深入研究相关 协议和uc o s i i 内核的基础上提出了一种改进的优先级继承协议并 在1 tc o s i i 上实现了基于该协议的算法; 最后总结了各种经典的实时调度算法,对最早截止时间优先调度 算法进行了评估分析,在l ac o s i i 中设计和实现了该调度算法,并 结合实际以水力发电监控系统为应用研究对象,从实时的角度分析对 象的特点,着重讨论实时任务的构造和实时任务调度方案,为实际系 统设计提供指导。 关键词嵌入式操作系统,实时性,优先级反转,任务调度 a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n to fc o m p u t e r a n dc o m m u n i c a t i o n s t e c h n o l o g y ,e m b e d d e ds y s t e mh a sa r o u s e dw i d ec o n c e r nf o ri t ss i m p l i c i t y , h i g h e f f i c i e n c ya n de t c i th a sb e e ng r a d u a l l ya p p l i e dt oe v e r ya s p e c to f p e o p l e sl i f ea n da l m o s tc o n t a i n e di na l le l e c t r o n i cd e v i c e s n o to n l yh a s i t p l a y e da ni m p o r t a n tr o l ei nt h ec i v i lf i e l d ,i th a sa l s op l a y e da n i n c r e a s i n gr o l ei nn a t i o n a ld e f e n s ec o n s t r u c t i o n t h ec o r eo fe m b e d d e ds y s t e mi n c l u d e se m b e d d e dm i c r o p r o c e s s o ra n d 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 m t h er t o sg c o s 1 1w i t hs t a b l e p e r f o r m a n c ei ss e l e c t e da st h em a i nc o n t e n t i ti sp o r t e dt ot h ea r m a n d t h er e l a t e dc o d e sa r ed i s p l a y e d t h em a i nw o r ka n dc o n t r i b u t i o n si nt h i s d i s s e r t a t i o na r ea sf o l l o w s : f i r s t l y ,a f t e rs t u d y i n gt h ec o m m u n i c a t i o np r i n c i p l e so fu s b i t sd e v i c e d r i v e ri sd e s i g n e df o rt h ed a t aa c q u i s i t i o na n dc o n t r o lm o d u l e sd a t a t r a n s m i s s i o ni nt h e h y d r o - e l e c t r i cp o w e rm o n i t o r i n gs y s t e m ,w h i c h g u a r a n t e et h es y s t e m sr e a l - t i m e ,r e l i a b i l i t ya n ds t a b i l i t y s e c o n d l y p r i o r i t yi n v e r s i o na n di t ss o l u t i o n sa r ei n t r o d u c e d o n e i m p r o v e dp r i o r i t y i n h e r i t a n c ep r o t o c o li s b r o u g h tu p a n da l g o r i t h m r e l a t e dt ot h ep r o t o c o li sd e s i g n e di ng c o s - i ia f t e rs t u d y i n gs o m e r e l a t e dp r o t o c o l sa n dt h ec o r eo f 卜t c o s - i i f i n a l l y ,t h ev a r i e t yo ft h ec l a s s i cr e a l t i m es c h e d u l i n ga l g o r i t h m si s s u m m e du p t h ee a r l i e s td e a d l i n ef i r s ts c h e d u l i n ga l g o r i t h mi se v a l u a t e d , d e s i g n e d a n di m p l e m e n t e di n g c o s i i ,a n d c o m b i n e dw i t ht h e a p p l i c a t i o n o fh y d r o - e l e c t r i c p o w e rm o n i t o r i n gs y s t e m ,a n a l y z i n g c h a r a c t e r i s t i c so ft h eo b j e c tf r o mt h ep e r s p e c t i v eo fr e a l - t i m e ,f o c u s i n go n t h es t r u c t u r eo fr e a l - t i m em i s s i o na n dr e a l - t i m et a s ks c h e d u l i n gp r o g r a m , w h i c hp r o v i d e sg u i d a n c ef o rt h ed e s i g no f p r a c t i c a ls y s t e m s k e yw o r d se m b e d d e d o p e r a t i n gs y s t e m ,r e a l - t i m e ,p r i o r i t y i n v e r s i o n ,t a s ks c h e d u l i n g 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名:缢堡日期:逝年皇月数日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文并根据国家或湖南省有关部门规定送交学位论文, 允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 作者签名:弹导师签名壁皇辔日期:力盈乏- 年上月丝日 硕上学位论文第一章绪论 第一章绪论 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适 用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统 【l 】。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用 程序等四个部分组成。由于具有体积小,结构紧凑的特点,它通常作为一个部件 埋藏于所控制的装黄中,可提供用户接口、管理有关信息的输入输出、监控设备 工作,使设备及应用系统有较高智能和性价比。 1 1 嵌入式系统的发展现状及研究意义 嵌入式系统的出现至今己经有3 0 多年的历史了,嵌入式技术也经历了几个 发展阶段。进入9 0 年代后,以计算机和软件为核心的数字化技术取得了迅猛发 展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、 娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体技术与 i n t e m e t 的应用迅速普及,电子、计算机、通信一体化趋势日趋明显,嵌入式技 术再度成为一个研究热点。综观嵌入式技术的发展,大致分为以下几个阶段【l 】: 第一阶段是以单片机为核心的可编程控制器形式的系统,同时具有与监测、 伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控 制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制, 运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一, 处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简 便、价格低廉,以前在国内外工业领域应用中较为普遍,但是已经远远不能适应 高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领域的需 求。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。 这一阶段系统的主要特点是:c p u 种类繁多,通用性比较弱,系统开销小,效 率高;操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友 好;系统要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特 点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系 统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设 备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程 硕士学位论文第一章绪论 序接n ( h p i ) ,开发应用程序简单;嵌入式应用软件丰富。 第四阶段是以基于i n t e m e t 为标志的嵌入式系统,这是一个正在迅速发展的 阶段。目前大多数嵌入式系统还孤立于i n t e r a c t 之外,但随着i n t e r n e t 的发展以 及i n t e m e t 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与i n t e m e t 的结合将代表着嵌入式技术的真正未来。 “a r m + l - tc o s i i 是当前嵌入式系统中被广泛研究和应用的一款平台。 a r m 具有体积小、功耗低、速度快等特点,是非常适合于嵌入式应用的微控制 器( m i c r oc o n t r o l l e ru n i t ,m c u ) 。uc o s i i 是一个基于抢占式的实时多任务 内核,可固化、可剪裁、具有高稳定性和可靠性,其性能完全可以与商业产品竞 争【2 1 。因此基于uc o s i i 的嵌入式系统的研究和应用具有巨大的学术和商业价 值。 1 2 实时操作系统关键技术指标 实时操作系统( r e a lt i m eo p e r a t i o ns y s t e m ,r t o s ) 分为软实时操作系统和 硬实时操作系统。软实时操作系统的宗旨是使各个任务运行的越快越好,并不要 求限定某一进程必须在多长时间内完成。硬实时操作系统则要求各任务不仅要执 行准备无误而且要做到准时完成任务。大多数实时系统是软实时操作系统和硬实 时操作系统的结合。 由于r t o s 在实时应用中的特殊地位,在r t o s 的研究设计中对其性能指标 的要求比通用操作系统严格。对于通用操作系统来说,其目的是方便用户管理计 算机资源,追求系统资源的最大利用率,而r t o s 追求的是实时性、可确定性和 可靠性。评价一个r t o s 一般可以用以下几个技术指标来衡量【3 1 。 ( 1 ) 任务调度算法。实时操作系统的实时性在很大程度上取决于它的任务 调度算法。 ( 2 ) 任务切换时间。当由于某种原因使一个任务退出运行时,r t o s 保存 它的运行现场信息,插入相应队列,并依据一定的调度算法重新选择一个新任务 使之投入运行,这一过程所需时间称为任务切换时间。它包括保存当前j 下在执行 任务的现场信息所需要的时间,r t o s 决定下一个调度任务所需的调度时间以及 把另外一个任务调入系统运行所需要的时间。 ( 3 ) 中断禁止时间和中断延迟时间。当r t o s 运行在核心态或执行某些系 统调用时,是不会因为外部中断的到来而中断执行的。只有当r t o s 重新回到用 户态时才响应外部中断请求,这一过程所需的最大的时间就是中断禁止时间。中 断延迟时间是指系统确认中断开始直到执行中断服务程序的第一条指令为止整 个处理过程所需要的时间。 2 顾 :学位论文第一章绪论 1 3 实时操作系统中优先级反转和任务调度 对于可剥夺型内核有个很常见的问题,那就是优先级反转。在这种特殊情况 下,高优先级的任务可能会被低优先级的任务阻塞,结果会在比自己优先级低的 任务之后运行,甚至有时还会得不到运行的机会,这在实时要求比较高的情况下 是无法忍受的。优先级反转问题会影响到应用程序的运行速度和对系统资源的合 理分配,是多任务实时操作系统中普遍存在的问题,uc o s i i 也不例外。关于 优先级反转问题及其解决也是本文研究的一个重点,在以后的章节中将会作更进 一步的介绍。 实时任务的调度问题早己引起人们的关注,1 9 7 3 年l i u 和l a y l a n d 提出了单 调速率调度算法( r a t e m o n o t o n i cs c h e d u l i n g ,r m s ) ,赋予周期短的任务以高 优先级,优先级高的任务抢占处理机执行,证明了r m s 是最优的静态优先级调 度算法,并从处理机利用率角度分析了独立周期任务可调度性充分条件【4 】。后来 文献 5 】和 6 从时间需求角度给出了可调度性的充分必要条件。由于r m s 成熟的 理论基础和实现的简便性,己作为一种事实上的工业标准获得了广泛的应用。对 于动态到达系统的任务,最早截止时间优先算法( e a r l i e s td e a d l i n ef i r s t ,e d f ) 在任何时刻总是调度运行具有最早截止时限的就绪任务,e d f 也被证明是最优 的动态优先级调度算法【4 】。r m s 和e d f 都是针对单处理机系统提出的,是实时 系统调度理论中最经典的调度算法,后来的许多算法都是在此基础上发展而来 的。 根据对任务运行模式的不同设定,调度算法可分为抢占式和非抢占式。抢占 式调度允许任务在其执行期间被中断,而由其它就绪的任务抢占处理机运行,它 一般采用基于优先级的调度算法,任务的确切开始执行时间事先不知道,取决于 任务当时在系统中的优先级;而非抢占式算法不允许任务在执行期间被中断,通 常建立一个时间列表,安排任务的运行起始时间、运行长度等参数,主要用于那 些在执行过程中任务不能被中断或者任务之间的切换开销比较高的系统。 按调度方式的不同,调度算法可分为静态调度算法和动态调度算法。静态调 度用于任务参数比较确定的情况,它在编译时就决定每个任务的执行时刻,形成 一个可调度性任务的调度表,在系统运行过程中,每次任务切换时调度器仅需将 调度表中的下一个任务设置为运行状态即可。它最大的优点是任务调度不会消耗 系统的在线运行开销,这就允许为复杂的调度问题寻找优化调度方案,但是该算 法也使得系统对环境的适应能力差,系统可预测性的好坏取决于对参数所做假设 的正确性【6 】。动态调度主要用于任务参数不确定的情况,它在程序运行过程中根 据当前任务调度情况,临时决定每个任务的执行时间。它能根据系统当前的运行 状况决定任务的执行,适应性强,但也不可避免地带来了系统的额外开销。 硕士学位论文第一章绪论 1 4 本文的主要研究内容 本文的主要研究内容是基于uc o s i i 的嵌入式实时系统研究和应用,具体 研究工作如下: 1 首先详细分析了l jc o s i i 的内核结构及工作机制,并对核心源代码进行 剖析研究,剖析的内容涉及到该操作系统内核的运行方式、临界段代码处理、任 务状态、任务调度及实时性等方面。接着对a r m 的体系结构进行了简单的阐述, 介绍了a r m 处理器核,并综述了a r m 的处理器状态、处理器模式等a r m 体 系的核心问题。最后在基于a r m 体系结构和uc o s i i 内核的研究基础上,对 pc o s i i 移植到a r m 实现技术的基本理论进行了探讨,给出了移植中涉及到 的主要函数的核心代码。 2 充分研究u s b 通信原理的基础上,对u s b 设备端驱动程序进行了设计, 采用模块化、结构化函数编程,使之具有可读性强、移植性高等特性,能很好地 满足系统实时性要求,为水力发电监控系统中u s b 通讯模块提供了技术支持。 3 描述了优先级反转的现象及解决方法的基本原理,分析和比较了1 tc o s i i 和l i n u x 等操作系统优先级反转问题的解决方法。在深入研究相关协议和u c o s i i 内核的基础上提出了一种改进的优先级继承协议并在lc o s i i 上实现 了基于该协议的算法。 4 简要介绍了各种经典的调度算法并对最早截止时间优先调度算法进行评 估分析。在1 - tc o s i i 中的设计和实现了最早截止时间优先调度算法。最后结合 实际以水力发电监控系统为应用研究对象,从实时的角度分析对象的特点,着重 讨论实时任务的构造以及实时任务调度方案,为实际系统设计提供了指导。 4 硕l 学位论文第二章嵌入式实时操作系统uc o s i i 确:a r m 上的移植 第二章嵌入式实时操作系统uc o s i i 在a r m 上的移植 本章首先介绍了嵌入式实时操作系统uc o s i i 的内核结构及工作机制,并 对核心源代码进行剖析研究,接着阐述了a r m 的发展及其体系结构,最后将u c o s i i 移植到a r m 上,并给出了移植中主要函数的核心代码。 2 1uc o s i i 简介 2 1 1uc o s i i 特点 l ac o s i i 是由美国人j e a nj l a b r o s s e 编写的一个公开源代码的,微内核嵌 入式实时操作系统,其实时性能和内核的健壮性早已经在大量的实际应用中得到 了证实。它是由uc 0 s 升级而来的,并且做了很大的改进。下面简单介绍一下 它的特点: ( 1 ) 公开源代码,且源代码中有详细的注释,源代码清晰易读且结构协调、 组织有序,对实时操作系统的基本原理做了非常详细的解释,简单易懂。 ( 2 ) 移植性好,uc o s i i 的源代码绝大部分是用a n s ic 编写的,与微处 理器相关的部分是用汇编语言写的,使得uc o s i i 便于移植到其它处理器上。 ( 3 ) 可裁剪,用户可以根据自己的寄存器空间的大小和实际需要,只保留 1 - tc o s i i 中应用程序需要的那些系统服务。 ( 4 ) 稳定性和可靠性高,抗干扰能力强。 ( 5 ) uc o s i i 完全是占先式的实时内核。这意味着uc o s i i 总是运行就 绪状态下优先级最高的任务。 ( 6 ) uc o s i i 每个任务的优先级必须是不同的,这意味着uc o s i i 不支 持时间片轮转调度法( r o u n d r o b i ns c h e d u l i n g ) 【2 1 。 ( 7 ) pc o s i i 的函数调用与服务的执行时间具有其可确定性。 ( 8 ) uc o s i i 提供很多系统服务,例如邮箱、消息队列、信号量、块大小 固定的内存的申请与释放、时间相关函数等。 2 1 2uc o s i i 内核分析 uc o s i i 内核负责管理各个任务,或者说为每一个任务分配c p u 时间及其 相关的资源,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用 实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任 务,由实时内核来管理它们。接下来从几方面对uc o s i i 的内核作出介绍: 1 临界段( c r i t i c a ls e c t i o n s ) 硕士学位论文 第二章嵌入式实时操作系统uc o s i i 在a r mj - 的移植 代码的临界段也称为临界区,指处理时不可分割的一段代码。一旦这部分代 码开始执行,则不允许任何中断。为确保临界段代码的执行,在进入临界段之前 要关中断,而临界段代码执行完以后要立即开中断。 和其它内核一样,1 tc o s i i 为了处理临界段代码需要关中断,处理完毕后 再开中断。这使得uc o s i i 能够避免同时有其它任务或中断服务进入临界段代 码。关中断的时间是实时内核开发商应提供的最重要的指标之一,因为这个指标 影响用户系统对实时事件的响应性。uc o s i i 努力使关中断时间降至最短,但 就使用l jc o s i i 而言,关中断的时间很大程度上取决于微处理器的架构以及编 译器所生成的代码质量【剐。 微处理器一般都有关中断开中断指令,用户使用的c 语言编译器必须有某 种机制能够在c 中直接实现关中断开中断地操作。uc o s i i 定义两个宏来关中 断和开中断,以便避开不同c 编译器厂商选择不同的方法来处理关中断和丌中 断。uc o s i i 中的这两个宏调用分别是:o se n t e rc r i t i c a l ( ) 和 o s e x i t _ c r i t i c a l o 。 2 任务定义及状态 uc o s i i 的任务是一个无限的循环,也称作一个线程,是一个简单的程序, 该程序可以认为c p u 完全只属该程序自己。一个任务可以有返回类型,有形式 参数变量,但是任务是绝不会返回的。当任务完成以后,任务可以自我“删除”, 即lc o s i i 不理会这个任务了,这个任务的代码也不会再运行。实时应用程序 的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部 分,每个任务被赋予一定的优先级,有它自己的一套c p u 寄存器和自己的栈空 间。uc o s i i 可以管理多达6 4 个任务,其中空任务( i d l e ) 和统计任务 ( s t a t i s t i c s ) 被系统占用。任务在建立时必须被赋予不同的优先级,优先级 的数值越小,则表示任务的优先级越高。uc o s i i 总是运行进入就绪状态的优 先级最高的任务【2 1 。 图2 - 1 任务的状态 6 硕士学位论文 第二章嵌入式实时操作系统uc o s i i 在a r m 上的移植 多任务运行的实现是靠c p u 在许多任务之间转换、调度,c p u 只有一个, 轮番服务于系列任务中的某一个。多任务运行使c p u 的利用率得到最大的发 挥,并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可 以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。 uc o s i i 中任务的状态包括运行态、就绪态、等待状态、睡眠态和中断服 务态。图2 1 是uc o s i i 控制下的任务状态转换过程。在任一给定的时刻,任 务的状态一定是这五种状态之一。 3 任务控制块( t a s kc o n t r o lb l o c k s ,o st c b s ) 任务控制块( o st c b ) 是一个数据结构,是用来描述任务的一些属性,包 括任务标识号、任务优先级、任务状态信息、任务控制信息以及堆栈信息等。 l ac o s i i 中是采用任务控制块的方式对任务进行管理的【2 】。任务控制块在 任务被建立时被初始化,当任务的c p u 使用权被剥夺时,i jc o s i i 用任务控制 块来保存该任务的状态。而当任务重新得到c p u 使用权时,任务控制块能恢复 任务到被中断前的状态,确保任务从中断的那一点继续执行下去。任务控制块全 部驻留在r a m 中。 应用程序中可以有的最多任务数( o sm a xt a s k s ) 是在文件o sc f g h 中定义的。这个最多任务数也是uc o s 1 1 分配给用户程序的最多任务控制块的 数目。将o sm a xt a s k s 的数目设置为用户应用程序实际需要的任务数可以 减小r a m 的需求量。所有的任务控制块都是放在任务控制块列表数组 o s t c b t b i 中的。 在uc o s i i 初始化的时候,所有任务控制块o st c b s 被链接成单向空任 务链表。当任务一旦建立,空任务控制块指针o s t c b f r e e l i s t 指向的任务控制块 便赋给了该任务,然后o s t c b f r e e l i s t 的值调整为指向下链表中下一个空的任务 控制块。一旦任务被删除,任务控制块就还给空任务链表。 4 任务调度( t a s ks c h e d u l i n g ) 在pc o s i i 中,最多支持6 3 个任务,每个任务只能有独立的优先级,即 不能有2 个相同优先级的任务,系统也不支持时间片轮番调度。因此,按照 r h e a l s t o n e 方法的定义,l ac o s i i 的实时性主要体现在抢占( p r e e m p t i o n ) 时间 和中断等待时间( l a t e n c y ) 【r ,j 。 l ac o s i i 是一种基于优先级调度的占先式内核。在系统运行的过程中,可 能发生任务调度的时机有: ( 1 ) 对任务操作的时候,包括:创建或者删除任务,挂起或者恢复任务, 改变任务优先级。 ( 2 ) 任务主动使用o s t i m e d l y 函数延时的时候。 7 硕士学位论文第二章嵌入式实时操作系统uc o s i i 在a r m 上的移植 ( 3 ) 发送( 或者等待) 信号量、邮箱、消息的时候。 ( 4 ) 中断函数返回的时候。中断往往会使一个更高优先级任务处于就绪状 态,包括使用信号量等或者直接恢复某个任务。所以,在系统退出中断的时候, 就需要判断是否有更高优先级的任务处于就绪状态,如果有,则需要进行任务调 度。 ( 5 ) 给系统的任务调度器解锁的时候。 在大多数情况下,uc o s i i 中断级的任务调度是按照如图2 2 所示的流程 进行的。其中t r 为系统的中断等待时间。t p 为系统的抢占时间。t s 为系统的中 断响应与查找的时间,主要包括中断入口程序的执行,注册在系统中的中断向量 的查找等。t d 为执行中断处理所用的时间。t w 为系统判断并查找处于就绪状态 下优先级最高的任务和中断级任务切换的时间。而t c 则可以认为满足:o t c 系统的最长关中断时间。 一l i 写jj l刀 产生停些 t p 较高优 1r 先级任务 较低优 t c t s 一 任务 l 先级任务切换 中断响应 一t d 一 查找就绪 与分派任务 执行中 一 t r 一tw 断处理 图2 - 2uc o s i i 的任务调度 当有多个中断产生的时候,如果因为中断的优先级低或者系统不允许中断嵌 套,则uc o s i i 的中断级任务调度将按照如图2 3 所示的流程进行。因为u c o s i i 是依靠任务的查找表来确定处于就绪状态的最高优先级任务,而任务切 换的实质是对于处理器寄存器入栈和出栈的操作,所以在同一系统中,l - tc o s i i 中任务调度所花的时间t w 是常数,与应用程序中所建立的任务数无关【8 】。 考虑系统的极端情况,系统的最长中断等待时间是发生在多个中断同时产生 的时候。假设系统中有n 个中断源,中断的优先级按照由高到低的顺序排列,且 对于任意中断,中断分派时间t s 是固定的。则uc o s i i 系统中,当允许中断 嵌套的时候,第k ( k = 1 ,2 ,n ) 个中断源的最长中断等待时间t r k 。可以 表示为【9 】 k - i t r k 一= k i s i + ( 1 【- 1 ) t w + 财, i = l 公式( 2 1 ) 硕t r 学位论文 第二章嵌入式实时操作系统uc o s i i 在a r m 上的移植 当不允许中断嵌套的时候,系统的中断源的最长中断等待的时间t r m x _ t m 啪。 系统最长的抢占时间t p n 啪。可以表示为 t p n 嘲。= ( t w + t s ) n + t d f f = l 中断2 公式( 2 2 ) 图2 - 3 多重中断的“c o s - i i 任务调度 uc o s 1 i 是一个实时性比较强的多任务操作系统,很容易评估出系统调度 的最长响应时间。 2 2a r m 体系结构 1 a r m 的发展 a r m ( a d v a n c e dr i s cm a c h i n e s ) ,既可以认为是一个公司的名字,也可以 认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1 9 9 0 年1 1 月a r m 公司成立于英国剑桥,是专门从事基于r i s c 技术芯片 设计开发的公司,主要出售芯片设计技术的授权。目前,采用a r m 技术知识产 权( i p ) 核的微处理器,即我们通常所说的a r m 微处理器,已遍及工业控制、 消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于a r m 技术的微处理器的应用约占整个3 2 位r i s c 微处理器7 5 以上的市场份额【l u 1 , a r m 技术正在逐步渗入到我们生活的各个方面。 a r m 公司自成立以来,在3 2 位r i s c 微处理器开发领域不断取得突破,其 结构已经从v 3 发展到v 6 ,作为知识产权供应商,本身不直接从事芯片生产, 靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从 a r m 公司购买其设计的a r m 微处理器核,根据各自不同的应用领域,加入适 当的外围电路,从而形成自己的a r m 微处理器芯片进入市场。现在,设计生产 a r m 芯片的国际大公司已经超过5 0 多家,国内多家大公司也已经购买a r m 公 司的芯核用于通讯专用芯片的设计,这样使得a r m 技术可以获得更多的第二方 9 硕士学位论文 第二章嵌入式实时操作系统uc o s 1 1n ! a r mi :的移植 工具的支持,整个系统成本降低,产品更容易进入市场被消费者所接受,更具有 竞争力【10 1 。 2 a r m 微处理器r i s c 指令体系结构的特点 传统的计算机指令体系采用c i s c ( c o m p l e xi n s t r u c t i o ns e tc o m p u t e r ) 的体 系结构,采用这种结构的以i n t e l 公司的x 8 6 系列c p u 为代表;而a r m 采用的 是r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 的体系结构,下面就r i s c 和c i s c 两种体系结构的主要差别做一下简单的介绍。 传统的c i s c 结构有一个固有的缺点】:随着计算机技术的发展而不断引入 新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂。 然而,在c i s c 指令集的各种指令中,其使用频率却相差悬殊,大约有2 0 的指 令会被反复使用,占整个程序代码的8 0 ,而余下的8 0 的指令却不经常使用, 在程序设计中只占2 0 ,显然这种结构是不太合理的。 基于以上的不合理性,1 9 7 9 年美国加州大学伯克利分校提出了r i s c 的概念, r i s c 并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更 加简单合理地提高运算速度上。r i s c 结构优先选取使用频率最高的简单指令, 避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为 主,不用或少用微码控制等措施来达到上述目的。 采用r i s c 架构的a r m 微处理器一般具有如下特点【1 0 】: ( 1 ) 体积小、低功耗、低成本、高性能; ( 2 ) 支持t h u m b a r m 双指令集,能很好的兼容8 位1 6 位器件; ( 3 ) 大量使用寄存器,指令执行速度更快; ( 4 ) 大多数数据操作都在寄存器中完成; ( 5 ) 寻址方式灵活简单,执行效率高; ( 6 ) 指令长度固定。 3 a r m 微处理器系列 a r m 微处理器目前包括下面几个系列,a r m 7 系列、a r m 9 系列、a r m 9 e 系列、a r m l 0 e 系列、s e c u r c o r e 系列、i n t e l 的x s c a l e 、i n t e l 的s t r o n g a r m 。 其中a r m 7 、a r m 9 、a r m 9 e 和a r m l 0 e 为4 个通用处理器系列,每一个 系列提供一套相对独特的性能来满足不同应用领域的需求。s e c u r c o r e 系列专门 为安全要求较高的应用而设计。其它厂商基于a r m 体系结构的处理器,除了具 有a r m 体系结构的共同特点以外,每一个系列的a r m 微处理器都有各自的特 点和应用领域。 4 a r m 7 t d m i 核 a i 洲7 t d m i 基于a r m 体系结构v 4 版本,是目前低端的a r m 核( 并非芯 l o 硕1 :学位论文第二章嵌入式实时操作系统1 tc o s i i 在a r m 上的移植 片,a r m 核与其它部件如a r m 、r o m 、片内外设组合在一起在构成现实的芯 片) ,具有广泛的应用,其最显著的应用为数字移动电话。 a r m 7 t d m i 是从a r m 6 核发展而来的。在a r m 体系结构中a r m 6 核最早 实现了3 2 地址空间编程模式( 早期的a r m 为2 6 位地址) ,但现在己经被取代。 a r m 6 所使用的电路技术使它很难稳定的在低于5 v 的电源电压下工作。a r m 7 弥补了这一不足,且在短时间增加了高密度1 6 位的t h u m b 指令集扩展( 带t 后 缀的) 、支持片上调试( 带d 后缀的) 、6 4 位乘法指令( 带m 后缀的) 和e m b e d d e d i c e 观察点硬件( 带i 后缀的) ,形成了a r m 7 t d m i 屹j 。 a r m 7 t d m i s 是a r m 7 t d m i 的可综合版本。对应用工程师来说,除非芯 片生产厂商对a r m 7 t d m i s 进行了裁减,否则在逻辑上a i 蝴7 t d m i s 与 a r m 7 t d m i 没有太大区别,其编程模型与a r m 7 t d m i 一致。 a r m 7 t d m i 处理器是删通用3 2 位微处理器家族的成员之一。a r m 处 理器具有优异的性能,但功耗却很低,使用门的数量也很少。a r m 结构是基于 r i s c 原理而设计,指令集和相关的译码机制比复杂指令集计算机要简单得多。 这样的简化实现了高的指令吞吐量、出色的实时中断响应和小的、高性价比的处 理器宏单元l i 引。 a r m 7 t d m i 处理器使用三级流水线来增加处理器指令流的速度。这样多个 操作同时进行,并使处理器和存储器系统连续运作,能提供0 9 m i p s m h z 的指 令执行速度。a r m 7 t d m i 处理器使用了冯偌依曼结构结构,指令和数据共用一 条3 2 位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 5 a r m 7 t d m i 处理器状态 a r m 7 t d m i 处理器内核使用a r m v 4 t 结构实现,该结构包含3 2 位指令集 和1 6 位t h u m b 指令集。因此a r m 7 t d m i 处理器有两种操作状态:a r m 状态, 3 2 位,这种状态下执行的是字方式的a r m 指令。t h u m b 状态,1 6 位,这种状 态下执行半字方式的t h u m b 指令。 在t h u m b 状态中,程序计数器( p c ) 使用b i t l 来选择切换半字。其中a r m 和t h u m b 状态间的切换并不影响处理器模式或寄存器内容。可以使用b x 指令 将a r m 7 t d m i 内核的操作状态在a r m 状态和t h u m b 状态之间进行切换。 6 a r m 7 t d m i 工作模式 a r m 7 t d m l 支持如下7 种处理器模式: 用户模式u s e r 一般的a r m 程序执行状态; 快中断模式f i q :设计为高速数据传输或通道处理; 中断模式瓜q :用于通常的中断处理; 管理模式s u p e r v i s o r :用于操作系统的保护模式; 硕士学位论文 第二章嵌入式实时操作系统l ac o s i i 在a r m :的移植 中止模式a b o r tm o d e :当数据或指令预取终止时进入该模式,可用于虚拟存 储及存储保护; 系统模式s y s t e m :操作系统的特权用户模式; 未定义模式u n d e f i n e d :当未定义的指令执行时进入该模式,可用于支持硬 件协处理器的软件仿真。 模式之间的转换可以通过软件进行控制,也可能由中断或例外处理引起。大 多数应用程序运行于u s e r 模式。而非用户模式,或特权用户模式,则针对中断 或例外,或者是访问受保护的资源。 2 3pc 幻s i i 在a r m 上的移植研究 所谓移植,是指使一个实时操作系统能够在某个微处理器或控制器平台上运 行起来。为了方便移植,大部分l ac o s i i 的代码都是用c 语言编写的,但是仍 然需要用汇编语言编写一些与处理器硬件相关的代码,这是因为uc 0 s i i 在读 写处理器寄存器时,只能通过汇编语言来实现,而c 语言不支持该功能。本节 介绍如何将l ac o s i i 移植到l p c 2 2 1 0 微处理器上。l p c 2 2 1 0 是基于1 6 3 2 位 a r m 7 t d m i s 内核的c p u 微控制器。 2 3 1uc o s i i 移植的条件 要使l ac o s i i 可以正常工作,处理器的编译器必须满足如下要求【1 4 】: 1 处理器的c 编译器能产生可重入代码。 可重入的代码指的是一段代码可以被多个任务同时调用,而不必担心会破坏 数据。也就是说,可重入型的函数在任何时候都可以被中断执行,过一段时间以 后又可以继续运行,而不会因为在函数中断的时候被其他的任务重新调用,影响 函数中的某个特定任务使用的那些数据。 代码的可重入性是保证任务正确无误的完成的基础条件,除了在c 程序中 使用局部变量以外,还需要c 编译器的支持。本文选用的是a d s 集成开发环境, 它可以生成可重入的代码,并且编译效率高。 2 在程序中可以打开或者关闭中断。 在uc o s i i 中,可以通过定义o se n t e r o se x i t 持。在a r m 7 t d m i 的处理器上,可以设置相应的寄存器来关闭或者打开系统的 所有中断。 3 处理器支持中断,并且能产生定时中断( 通常在1 0 至l o o h z 之间) 。 l ac o s i i 是通过处理器产生的定时器中断来实现多任务之间的调度的。在 a r m 7 t d m i 的处理器上可以产生定时器中断。 1 2 硕上学位论文 第二章嵌入式实时操作系统uc o s i i 在a r m 上的移植 4 处理器支持能够容纳一定量数据( 可能是几千字节) 的硬件堆栈。 5 处理器必须有对堆栈指针和c p u 寄存器进行操作的指令。因为寄存器的 入栈和出栈是i _ t c o s i i 多任务调度的基础。 2 3 2l x c o s i i 在a r m 上的移植 根据i _ t c 0 s i i 的要求,移植i t c 0 s - i i 到一个新的体系结构上需要提供3 个 文件:o sc p u h 、o sc p uc c 、o s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三基三严医师定期考核之抗菌药物试题(妇产科)
- 2026年内科护理学模拟考试题(附答案)
- 2026年全国生态日知识竞赛考试题库(含答案)
- 内部控制信息系统建设方案设计
- 2026年吉林省磐石市高一历史下册期末考试模拟卷含完整答案【夺冠】
- MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-教案 项目1-5 搭建数据库运行环境 - -优化检索网上商城系统数据
- 2025年河南省巩义市高三历史上册期末考试检测卷含完整答案【必刷】
- 【同步课件】2022年鲁科版(2019)高中化学必修二 3.2.1 化石燃料(乙烯) 课件
- 2026八大局面试题目及答案
- 2026安乡县事业编面试题目及答案
- 广东广州2012-2024年中考满分作文130篇
- DGTJ08-2271-2018 工程物探技术标准
- 监狱安防报警管理制度
- 2024年中考科学易错点随身记(新统考)
- 2025年高考历史一轮复习“近代中国革命史”核心考点梳理
- 四川乐山市中区2025届高三下学期联合考试语文试题含解析
- 临床用血储备计划制度
- 2024年中国辅酶Q10胶囊行业投资分析、市场运行态势、未来前景预测报告
- 急救医疗管理系统(紫云)
- NB-T31111-2017风电机组高电压穿越测试规程
- 公园设施维修投标方案
评论
0/150
提交评论