




已阅读5页,还剩66页未读, 继续免费阅读
(通信与信息系统专业论文)基于微内核的nucleus系统智能手机方案及系统软件实现方法设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 如今手机越来越智能化。几乎要将掌上电脑“整合”进去。今后,可能没有 手机和掌上电脑的分界限了,而就叫做智能终端。智能手机相对传统手机的最大 差异是前者在传统的基带处理器之外还增加了一块应用处理器,并采用了可以运 行应用软件的嵌入式操作系统。而内核是指大多数操作系统的核心部分。它由操 作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内 核通常运行进程,并提供进程间的通信。微内核是内核的精简版本,它设计成在 很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口。使 用微内核设计,对系统进行井级,只要用新模块替换旧模块,不需要改变整个操 作系统。所以,研究基于微内核技术的智能手机具有很大的实用价值。 文章首先介绍了智能手机设计方案在国内的研究状况,然后重点讲述了基于 微内核的n u c l e u s 操作系统的特点和其所支持的c p u 硬件开发平台,以及系统架 构和内部软件结构。在此基础上,重点提出了基于微内核技术的智能手机终端的 系统软件架构实现方案,其中包括整体系统设计,底层驱动程序开发,中间层的 模块功能介绍和实现,最后是上层应用软件程序的开发。其中,重点介绍了模块 实现部分包括介绍a l a p 珊模块,播放器模块等;底层驱动程序各个接口模块的实 现,包括功能实现,程序设计流程,以及部分上层的应用程序设计流程和在研究 中遇到的问题和解决方法。同时在最后一章介绍了智能手机的低功耗的软件实现 方法。在提出方案后,本文进行了详细的方案论证并使用c 语言对方案进行设计。 最后文章总结了整个方案的可行性以及在实现中所遇到的问题,并对智能手机研 究设计的进一步研究方向进行了讨论。 本文提出的基于微内核技术的n u c l e u s 操作系统智能手机软件架构设计方 案,已经应用的实际的智能手机系统中,各项指标完全符合中国移动g s l 4 终端总 体标准规范。 关键词:微内核n u c l e u s 操作系统智能手机系统软件架构设计 i nr e c e n ty e a r s ,t h em o b i l ep h o n e sh e m es m a r t e ra n ds m a r t e r i ti sa l m o s t e q u a l sac o m p u t e r i nt h ef u t u r e ,m a y b et h e r ei sn od i f f e r e n tb e t w e e nt e l e p h o n ea n d c o m p u t e r a s3 gt i m e sc o m e ,t h es m a r tp h o n e si n c r e a s ei nt h em a r k e t , a n di t c a n r e a l i z et h ef u n c t i o no fc o m p u t e r t h ed i f f e r e n c eb e t w e e ns m a r tp h o n ea n dt r a d i t i o n s p h o n e i st h a tt h es m a r tp h o n e sh a v ea na p p l i c a t i o np r o c e s s o ra n de m b e ds y s t e mi ni t t h eo p e r a t i n gs y s t e mi sv e r yi m p o r t a n ts o f t w a r ef o rs m a r tp h o n e n o wt h em a i n s y s t e m sa r el i n u x 、s y m b i a n 、w i n d o w sm o b i l e 和p a l m ,t h e yh a v ed i f f e r e n tm e a t t h e k e r n e li st h e 佗o fw h o l es y s t e m i tc o n s to fp r o c e s s o r , m e m o r y , d e v i c ea n ds oo n , t h ek e r n e lu s u a l l yr b np r o c e s s o ra n dc o r r e s p o n d m i c r ok e r n e li sa s i m p l i f yk e r n e l ,i t d e s i g n e di nas m a l lm e m o r y , a n db e a :o m em o r et r a n s p l a n t a b l e i tc a np r o v i d em o d u l e f u n c t i o n , a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ( a t d ,w h e ns y s t e m sn e e du p g r a d e ;w e o n l yr e p l a c et h eo l dm o d u l ea n dn o tn e e dc h a n g et h ew h o l es y s t e m , w ec a ns u p p l y e x p a n s i b i l i t ya n da p p l i c a t i o n s o ,i ti su t i l i t yt or e s e a r c hs m a r tp h o n e b a s e do nm i c r o k e r n e lt e c h n o l o g y f i r s t l y , t h ea r t i c l ed e f m i t e l yi n t r o d u c e st h er e s e a r c hs t a t u so fs m a r tp h o n ei n c h i n aa n do v e r s e a s t h e nw ef o c u so nt h ef e a t u r eo fn u c l e u ss y s t e ma n dt h ec p u p l a t f o r m st h a ti t 伽h o l d o na n ds y s t e ms o f t w a r es t r u c t u r e o nt h eb a s eo ft h o s e w e p u tw a r dt h er e a l i z a t i o np r o j e c to fs m a r tp h o n es o f t w a r ed e s i g n , i n c l u d i n gt h ei n t e g r a l s y s t e ms o f t w a r ed e s i g n , m o d u l ef u n c t i o na n dm o d u l er e a l i z a t i o n i n t h em o d u l e r e a l i z a t i o np a r t ,t h ea l a r mm o d u l e ,m e d i am o d u l ea n db i o sm o d u l ea r ci n t r o d u c e d i nd e t a i l s a f t e ri t , t h ep a p e rd e m o n s t r a t e st h i sp r o j e c tf u l l y , a n dc o d e si nc p r o g r a mt o c a r r yo u t ,w h i c hp r o v e st h er a t i o n a l i t ya n df e a s i b i l i t yo ft h i sp r o j e c t a tl a s t , w es u m m a r i z et h ek e yt e c h n o l o g i e se x i s t i n gi nt h i sd e s i g na n dt h e p r o b l e m sm e e t i n gd u r i n gt h ed e s i g na n d t h ef u r t h e rr e s e a r c ho nt h es o f t w a r ed e s i g no f s m a r tp h o n e t h ed e s i g nh a sb e e nu s i n gi nr e a lg s mm o b i l ep h o n es y s t e m ,a n de v e r y c r i t e r i o nc o n f o r mt oc m c c g e n e r a ls t a n d a r ds p e c i f i c a t i o no ng s m t e r m i n a l k e yw o r d s :m i c r ok e r n e ln u c l e u ss y s t e ms m a r tp h o n es y s t e ms o f t w a r e s t r u c t u r e n 西北工业大学硕士学位论文第一章绪论 1 1 智能手机发展趋势 第一章绪论 伴随着通信产业的不断发展,今天的移动终端已经由原来单一的通话功能 向话音、数据、图像综合的方向演变。像可拍照手机、摄像手机、彩屏手机、音 乐手机,游戏手机等都是迎合受众的需要所产生的。随着手机的日益普及,手机 功能也越来越完善,以数据业务为主导的无线互联业务正在成为电信市场的主流 趋势,移动通信与i n t e r n e t 的融合,新应用的出现必将对手机的技术含量提出 更高的要求。无线i n t e r n e t 业务要求手机在单一应用上结合各种实时信号处理 技术,如视频流和音频流、与位置相关的服务、语音识别、移动电子商务和安全 技术等。其中,智能手机以其强大的功能和便捷的操作等特点得到人们的青睐。 经过几年漫长的等待和发展,目前智能手机在各方面都已有了重大突破,昔日外 形笨重、功能单一的手机已是明日黄花,智能手机能够实现网上浏览下载、收 发邮件、视频、网络游戏和移动电子商务等功能,必然会成为移动终端领域的主 角 与传统手机相比,智能手机的优势非常明显,不但内容丰富。还具有可以 无限扩展的强大功能以及硬件的可升级性,这使得智能手机能够真正实现通信、 电脑和互联网的融合,而要实现智能手机的这些功能,必须依靠移动互联网。智 能手机的发展之所以如此迅速,正是因为移动互联网所提供的丰富数据业务使得 其销量大增。 智能手机是和3 g 技术相伴而生的概念,是移动通信终端与p c 融合的产物。 自去年以来,智能手机这一新兴的高端2 5 g 终端就一直被媒体誉为“3 g 手机的 敲门砖”、“3 g 的试金石”。相关人士表示,由于智能手机与3 g 手机有着诸多 共同点,智能手机已经成为厂商进入3 g 终端领域的预演,以智能手机为突破将 为厂商在未来的3 g 之争中提供重要的基础和经验,从某种意义上说,智能手机 已经敲开了3 g 的大门。从外观看,智能手机更像个p d a ,它能在手机上欣赏咿3 、 下载游戏和m t v 、用m s n 和q q 进行在线聊天。而这些功能都代表了未来3 g 手机 的发展趋势,此外智能手机在软硬件架构的开发、应用的集成和提供等方面也与 3 g 手机非常相似。 3 g 时代离我们越来越近,但是我们应该清楚地看到3 g 技术在我国的商用仍 西北工业大学硕士学位论文第一章绪论 有待发展。所以手机终端厂商如果现在就开始生产3 g 手机,可能会因为时机不 恰当给自己带来较大的风险。而从智能手机入手,积累经验,无疑是一种明智之 举,同时也是智能手机真正理性地过渡到3 g 的一种表现。 就目前来看,智能手机以其特有的优势跻身主流市场,并且承载着众多的 数据业务,成为3 g 来临前的预演,在融合了i t 、互联网、通信三大产业后,相 信会有越来越多的手机设计者更加清晰地看到手机技术和产品的智能化发展趋 势,从而更好地把握手机设计产业的现在和未来1 1 1 。 1 2 智能手机技术特点 从硬件角度来看:传统手机主要由基带和射频两大部分模块组成,其中, 基带主要组件为d s p 、微控制器、内存( g us r 枷、f l a s h ) 等单元,主要功能为 基带编码译码、声音编码及语音编码等。而3 g 时代智能手机相对传统手机的最 大差异是前者在传统的基带处理器设计中加强了应用处理功能或者额外增加了 应用处理器,并采用了运行应用软件的嵌入式操作系统。丰富的功能实现离不开 先进的应用处理器,早期的应用处理器通常是手机相机控制或照相后段信号处 理,随着手机音乐应用、短片拍摄、手机电视等逐渐出现,应用处理器也随之变 为多种应用的处理器,有视频处理芯片、音频处理芯片等 3 1 。 目前的一般处理方案是采取多芯片封装的方式将基带处理器和应用处理器 封装到一个封装体里,目前更为先进的处理方式是采取s o c 设计理念将基带处理 器和应用处理器集成到一个芯片上。采取了s 0 c 先进设计理念的多内核技术可以 更有效的协同处理单元,进而实现灵活的功耗管理,且内部时钟频率远远快于芯 片的i 0 速度,因此,若设计合理,s o c 理念要优秀于多芯片封装方案。 另外电池容量的不足使得智能手机设计者们面临低功耗设计的挑战,在电 池容量有限的条件下采用新的节能技术是唯一出路。总体看来,3 g 时代智能手 机将向高集成度、低功耗、多功能方向发展。 从软件角度来看:智能手机软件可以粗略地分成启动模块、操作系统、协 议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。手机软件和p c 机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第 一个跳转指令当然是跳到复位的处理程序,后面是中断处理、错误处理的跳转指 令。一上电,手机就跳转到复位的处理程序,开始检查内存、初始化c 运行环境, 然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多数智能手 机程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统, 它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。 2 西北工业大学硕士学位论文第一章绪论 操作系统在手机软件只占很小一部分。它的主要功能就是提供多任务调度、 通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。 例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块 和预测内存需求1 2 】 大多数智能手机的操作系统都是一个很小的内核,例如r e x 、h i o s 等。高 通r e x 的源代码连c 代码加汇编也不过一千多行,编译后不过是2 、3 k 的代码量。 而完整的智能手机程序一般总有3 、4 百个c 文件,超过一百万行的代码。协议 栈是手机软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相 关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯 片的所有资源、包括d s p 核。 数据业务主要有两种:在前一种,智能手机相当于一个调制解调器,p c 机 通过手机上网,网络协议全在p c 机上,智能手机提供数据链路。另一种是嵌入 式数据业务,手机内部包含t c p i p p p p 等协议,有时还要实现h t t p 和嵌入式浏 览器,不需要p | c 机就可以接入w e b 或w a p 网络。 “ 智能手机都有本地存储功能,存储电话本、短消息、用户设定等。一般手 机都有一个基于f l a s h 的文件系统。早期的手机存储是基于e e p r o m 的。硬件驱 动一般是指外设驱动,但也有一些设备是集成在基带处理芯片中的。驱动程序包 括:键盘、电源管理模块、l c d 、f l a s h 、r t c 、串口、u s b 、s i m 卡或u i m 卡、射 频驱动等。 用户界面( g u i ) 又称作人机界面( 删i ) ,它负责和用户的交互,在必要的 时候调用其它模块的功能。用户界面处理手机必备功能外,也包含一些相对独立 的应用程序,例如日程表、游戏等。美工设计也是用户界面设计的重要环节其它 应用包括j a v a 虚拟机、f l a p 浏览器、邮件软件等,是一些比较大,又相对独立 的应用模块。 智能手机的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要 协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的c p u 核、d s p 核都可 以买到现成的单元,但通信协议部分就需要自己设计了。智能手机比较难做好的 是耗电量、恶劣信号环境的性能等【4 】。 1 3 本论文的主要任务 本论文的核心任务即提出基于微内核的n u c l e u s 系统智能手机方案及系统 软件实现方法研究,整个软件的设计是以展讯公司的s c 6 6 0 0 芯片组为平台的, 本产品的技术水准符合智能手机产品的发展方向,是在已有技术上的创新技术, 3 西北工业大学硕士学位论文第一章绪论 属于国内领先技术并达到了国际先进水平,在国内外市场都具备竞争优势。设计 这一任务主要分为以下几个阶段: 首先,研究g s m 通信系统的基本工作原理,重点了解终端和无线接入部分 的原理,以及通信系统的协议规范等理论的研究,了解展讯的基带芯片平台特点 和所提供的解决方案;然后要熟悉嵌入式n u c l e u s 操作系统特点和部分需要了解 的任务调度进程管理模块;最后根据文档要求进行模块化代码设计。 其后续内容安排如下: 第二章对嵌入式n u c l e u s 操作系统进行了综述,介绍了系统的整体特点和 架构,并且提出了一个多进程的解决方案,而且根据开发情况总结了系统的部分 优劣。 第三章为整个设计方案的重点,介绍了整个智能手机系统软件的系统架构, 然后给出了基于嵌入式n u c l e u s 操作系统的软件设计方案,接着以典型模块为例 详细介绍了各个模块的设计,从底层驱动到上层应用程序,包括功能实现。 第四章介绍了系统低功耗的软件解决方法,因为电池容量的不足使得智能 手机设计者们面临低功耗设计的挑战。 第五章全文的结束和总结。 4 西北工业大学硕士学位论文第二章嵌入式n u c l e u s 实时操作系统 2 1 概述 第二章嵌入式n u c l e u s 实时操作系统 n u c l e u s 实时操作系统是a c c e l e r a t e rt e c h n o l o g y 公司开发的嵌入式r t o s 产品,只需一次性购买l i c e n s e s ,就可以获得操作系统的源码。n u c l e u s 购买的 灵活性比较大:k e r n e l ,n e t w o r k i n g ,f i l es y s t e m ,w e bt e c h n o l o g y ,t a r g e t d e b u g g e r 可以分开购买,如果我们只需要微内核的话只要购买k e r n a l 和 d e b u g g e r ,当前的下位机就是这样配置的。但是,如果以后我们要开发接入服务 器和i pp h o n e 的话就必须购买一堆网络协议;上位机要用的话还要购买文件系 统。v x w o r k s 就不是这样,其0 s 基本部分中已经包括了很多基本的网络协议, 只有一些比较特殊的网络协议需要单独购买,比如ts n 肝1 2 ,o s p f 2 ,i p x 等。 当然,n u c l e u s 的好处在于各层协议都提供的是源码,v x w o r k s 则不提供。 n u c l e u s 的另一大好处是程序员不用写板支持软件包( b s p ) ,因为操作系统 已经开放给程序员,不同的目标板在操作系统b o o t 时可以通过修改源码进行不 同的配置。对于程序员来说。写b s p 是一项比较繁琐的任务,有了0 s 的源码这 项工作就简单多了,同时调试时也可以跟踪到中断、寄存器那一级,简化了硬件 的调试。v x w o r k s 和p s o s 都必须购买标准的b s p 模板工具来写板支持软件包, 开发工作量就比较大了。 n u c l e u s 对c p u 的支持能力比较强,支持当前流行的大多数r i s c 、c i s c 、d s p 处理器,比如:8 0 x 8 6 ( 实时、保护模式) 、6 8 x x x 、p o w e r p c 、i 9 6 0 、m i p s 、s h 、 a 跚、c o l d f i r e 。n u c l e u s 系统对于不同的处理器,操作系统的源码大部分是相 同的,只有5 的源码是用汇编写的跟c p u 有关。如果使用另外的c p u ,则只用修 改5 、6 个汇编程序就可以进行移植,但是对于不同系列的处理器,它们的 c o m p i l e r 、l i n k e r 、d e b u g g e r 是不同的( 要另外购买) ,而且编译预处理的过程 也是不一样的,这就要投入一部分力量去进行操作系统的移植。当然,这也是 n u c l e u s 的一个优点,v x w o r k s 和p s o s 都没有源码,换一个系列的c p u 操作系统 又要重新购买,实际上他们0 s 开发的工作量并没有多少,但却造成了用户的重 复性投资。 当然,n u c l e u s 作为一个非主流的操作系统,其自身也存在着很多不足之处, 比如:实时性不够、定时中断管理不可靠、m d 管理太简单、操作系统的调试工 具太少等。 西北工业大学硕士学位论文第二章嵌入式n u c l e u s 实时操作系统 2 2 n u c l e u s 的微内核( m i o r o k e r n e i ) 由于集成电路、计算机网络、分布式处理、多机并行处理、容错等技术的迅 速发展,面向单处理机,采用内核不可抢占技术的操作系统已经很难适应硬件技 术的发展。因此,各大公司纷纷推出了基于微内核结构的操作系统、d 微内核技 术已成为新一代操作系统体系结构的研究热点。基于微内核结构的操作系统和传 统操作系统相比,具有以下特点:内核精巧通常内核只由任务管理,虚存 管理和进程间通信3 个部分组成传统操作系统内核中的许多部分都被移出内 核采取服务器方式实现;面向多处理机和分布式系统基于微内核的操作 系统,在内核中引入了多处理机调度和管理机制,并引入了细粒度并发机制线 程,使得多个处理机可以在同一个任务中并行地执行;基于客户服务器体 系结构在微内核结构的操作系统中,任务间通信机制一消息机制是系统的基 础,操作系统的各种功能都以服务器方式实现,向用户提供服务用户对服务器 的请求是以消息传递的方式传给服务器的。下来我们以n u c l e u s 操作系统为例说 明。 n u c l e u s 的核心是一个实时的多任务内核- - - - - - - - n u c l e u sp l u s ,具有以下特性: 可移植性: n u c l e u sp l u s 可用于大多数流行的处理器。因为n u c l e u sp l u s 主要是用 标准c 写的,移植到新的处理器系列相对很直接。这也就意味着用n u c l e u sp l u s 开发的应用程序也具有很高的可移植性。 可用性: 不像其他的商业内核,n u c l e u sp l u s 的系统调用名直接表明了它的功能。 比如,你可以通过n u _ c r e a t e _ t a s k 系统调用来创建一个任务。n u c l e u sp l u s 的 系统调用都设计成具有类似的入口参数和返回值类型。n u c l e u sp l u s 的对象都 不隐式地和别的对象相关。比如,邮箱和任务之间是不相关的。因此,用户可以 利用多个n u c l e u sp l u s 对象之间的结合形成混合系统调用。 配置: n u c l e u sp l u s 最终是以c 库的形式提供给用户,你可以选择所需要的部分 链入到你的应用程序中。但是,其可裁剪性并不好,如果某些系统功能不要的话, 必须在n u c l e u s h 的头文件中加一些宏定义,比如定义;# d e f i n e n ue n a b l es t a c k _ _ c h e c k ,那么每个系统调用时都要进行堆栈检查,否则就不进 行堆栈检查,可以删除的功能并不多。v x w o r k s 的可裁剪性就强多了,有3 0 0 多 个独立模块,微内核6 k ,最小系统 t c _ p r i o r i t y ,设置优 优先级组t c 时r i o r i t y _ g r o u p s和予优 先级组 t c ds u bp r i o r i t y _ g r o u p s t a s k - t cp r i o r i t y 8 t c ds u bp r i o r i t y _ g r o u p s i t a s k - y t c _ p r i o r i t y 8 中本任务优先级对应的b i t ,指示本优先级有任务r e a d y 。 如果要恢复的任务优先级比当前最高优先级t c d _ h i g h e s t p r i o r i t y 要高,且当 前任务t c d _ e x e c u t e _ t a s k 可以抢占,则将要恢复的任务置为当前任务,同时会 产生任务抢占,返回n ut r u e ,否则返回n uf a l s e 。 6 ) 挂起任务( t c cs u s p e n d _ t a s k ) 如果任务不能获得执行所需要的系统资源,比如:对于傲蝴_ s e n d _ t op i p e 系统调用的任务如果消息管道已满,或者做n u _ r e v e i v ef r o mp i p e 系统调用的 任务如果管道已空,那么任务就会被挂起。 任务挂起首先判断要挂起的是不是当前任务t c d _ c u r r e n t _ t h r e a d ,如果不是 挂起当前任务,则要释放任务的当前保护结构t c _ c u r r e n t _ p r o t e c t 。 其次,如果任务的状态为n ur e a d y 且该任务优先级就绪任务链表 t c d _ p r i o r i t yl i s t 中只有这一个任务r e a d y ,则要清空该优先级就绪任务链 表,同时要清除子优先级组t c ds u bp r i o r i t y _ g r o u p s 和优先级组 t c d _ p r i o r i t yg r o u p s 对应的b i t 。如果要挂起的任务具有最高优先级,则要根 据优先组和子优先组重新搜索最高优先级,如果其他组中没有任务就绪,贝f j t c d i g h e s t _ p r i o r i t y = 2 5 5 。然后根据最高优先级,重新调整 t c d _ e x e c u t e _ t a s k ,如果最高优先级为2 5 5 ,则t c de x e c u t e _ t a s k 舢n u l l 。 如果任务的状态为n ur e a d y 且该任务优先级就绪任务链表 t c op r i o r i t y _ l i s t 中不只这一个任务r e a d y ,则将该任务从优先级就绪任务 链表中删除,不用修改子优先级组和优先级组,另外也不用调整最高优先级 西北工业大学硕士学位论文 第二章嵌入式n u c l e u s 实时操作系统 t c d _ h i g h e s t _ p r i o r i t y ,只是利用最高优先级重新调整t c d _ e x e c u t e _ t a s k 。 如果要挂起的是当前线程t c dc u r r e n tt h r e a d ,则将控制交给 t c d _ c o n t r o l _ t o _ s y s t e m ,在t c d _ c o n t r o lt o _ s y s t e m 中给当前线程创建一个 s o l i c i t e d 类型的堆栈帧,线程入口是调用t c d _ c o n t r o l _ t os y s t e m 的下一条指 令,任务恢复时从这条指令开始继续执行。t c d _ c o n t r o l _ t o _ s y s t e m 随后又将控 制交给t c ts c h e d u l e ,t c t _ s c h e d u l e 根据t c de x e c u t eh i s i 或 t c d _ e x e c u t et a s k 开始下一轮的任务调度,如果调度过程中发现挂起任务需要 的系统资源可以满足,就会把任务恢复,按照优先级重新调度 n u c l e u s 的中断分为管理的和非管理的中断。管理的中断需要向操作系统注 册该中断向量,中断产生后通过该中断向量注册的低级中断服务程序( l i s r ) 来 激活高级的中断服务程序( h i s r ) 。l i s r 主要完成硬件中断的处理,及激活h i s r 。 h i s r 的调度类似于任务,具有优先级,可以使用大多数n u c l e u s 的系统调用。 非管理的中断,则不需要通过操作系统进行管理,直接将中断服务程序挂到中断 向量表上,上下文的保存与恢复都要用户自己来做,该中断自己不能嵌套,最好 不要被管理的中断再次中断否则会引起堆栈出错,而且非管理的中断不能使用绝 大多数的n u c l e u s 系统调用,因为它可能会破坏操作系统某些保护的数据结构 ( 当有线程在运行时) 。非管理的中断适用于那些比较频繁的中断,如果通过操 作系统来管理这些中断的话,其上下文保存与恢复的时间就比较长,中断的实时 性就不能满足要求。 非管理的中断比较简单,类似于以前我们写的中断服务程序,这里就不多说。 下面我们讨论的中断的调度都指的是n u c l e u s 管理中断的调度。 中断的调度需要用到以下比较重要的数据结构: t c d _ _ r e g i s t e r e d _ l i s r s 2 5 6 :对应6 8 3 6 0 的2 5 6 个中断向量。0 表示该中 断向量没有注册,是操作系统不能处理的中断( u n h a n d l e d _ i n t e r r u p t ) ;非0 表示该中断向量已注册,且其值为在l i s r 函数指针数组t c d l i s rp o i n t e r s 中 的索引下标。 t c d j i s r _ p o i n t e r s 3 0 :l i s r 函数指针数组,指向当中断产生时要调用的 低级中断服务程序l i s r 的入口函数。 t c d - i n t e r r u p t s o u n t :表示有多少个中断服务程序( i s r s ) 正在进行处理。 0 :没有中断;l :只有一个中断; 1 :中断嵌套。 t c d _ i n t e r r u p t l e v e l :允许中断的级别,用来给6 8 3 6 0 的状态寄存器s r 赋 值。o x 7 0 0 表示屏蔽所有中断,o x 5 0 0 表示屏蔽5 级及5 级以下的中断,0 表示 打开所有中断。 1 2 西北工业大学硕士学位论文第二章嵌入式n u c l e u s 实时操作系统 t c d n h a n d l e di n t e r r u p t :系统出错时,表示不能处理的中断向量号。 t c d _ c r e a t e d _ h i s r s _ l i s t :已创建的h i s r 链表的头指针。 t e d _ a c t i v e _ h i s r _ h e a d s 3 :对应h i s r 优先级0 2 ,每个数组元素是该优先 级已激活h i s r 链表的头指针。 t c d _ _ a c t i v e _ _ h i s r _ t a i l s 3 :对应h i s r 优先级o 2 ,每个数组元素是该优先 级已激活h i s r 链表的尾指针。 t c d _ e x e c u t e _ h i s r :当前正在执行或要执行的具有最高优先级的h i s r 指针。 每个h i s r 具有一个0 2 的优先级,o 表示最高优先级,2 表示最低优先级, 相同优先级的h i s r 按照先入先出的顺序处理,优先级不同的h i s r 按照优先级的 高低进行调度。h i s r 是不能被挂起的,因此其所有的系统调用都要加上 n u n o s u s p e n d 参数。 中断的调度包括:中断向量的注册( t c c _ r e g i s t e r _ l i s r ) 、h i s r 的创建 ( t c c _ c r e a t e _ h i s r ) 与删除( t c c _ d e l e t e _ h i s r ) 、上下文的保护与恢复 ( t c t _ i n t e r r u p t _ c o n t e x t _ s a v e ) 、l i s r 的执行( t c c _ d i s p a t c h _ l i s r ) 、h i s r 的激活( t c t _ a c t i v e _ h i s r ) 以及h i s r 的调度等。 2 2 3 操作系统数据结构的保护 由于n u c l e u s 操作系统的线程是可以抢占的,高优先级的任务可以抢占低优 先级的任务,h i s r 可以抢占任务,h i s r 之间也可以抢占。 如果某个低优先级的任务正在通过系统调用对操作系统的某个数据结构进 行操作,比如:正在修改已创建任务链表t c d _ c r e a t e d _ t a s k s _ l i s t ,或正在往 某个消息管道p i p e 中填消息( 要修改消息管道的数据成员) ,这时发生了任务抢 占,如果发生抢占的高优先级任务也要修改同一数据结构,就必须等待低优先级 的任务完成修改数据结构的系统调用后,再让高优先级的任务运行,否则就会破 坏操作系统的数据结构。 这一机制是通过操作系统结构保护( p r o t e c t ) 实现的。任务运行时如果要 修改操作系统的数据结构,就要通过系统调用t c t _ p r o t e c t ( t c _ p r o t e c t * p r o t e c t ) 把该数据结构的保护结构保护起来,当任务对该数据结构的操作结束 就会通过系统调用t c tu n p r o t e c t ( v o i d ) 或t c t _ u n p r o t e c t _ s p e c i f i c ( t cp r o t e c t * p r o t e c t ) 来释放保护结构。 如果低优先级的任务没有释放保护结构之前,发生了任务抢占,高优先级的 任务抢占了低优先级的任务,如果高优先级的任务也要修改同一系统数据结构, 那么在做系统调用t c t _ p r o t e c t 时,就会发现该数据结构的保护结构已经被另一 西北工业大学硕士学位论文 第二章嵌入式n u c l e u s 实时操作系统 个线程拥有,当前的线程就会暂时被挂起,将控制交给拥有保护结构的线程,等 待拥有该保护结构的线程释放掉保护结构后,也就是拥有保护结构的线程在做 t c t _ u n p r o t e c t 时,高优先级的任务才能真正地把控制权抢占过来。 n u c l e u s 共有四种跟线程调度有关的比较重要的保护结构: t c d _ l i s t _ p r o t e c t :已创建任务链表的保护结构; t c ds y s t e m _ p r o t e c t :系统保护结构,用于任务调度; t c d _ l i s r _ p r o t e c t :用于l i s r 的创建和删除; t c d - h i s r _ _ p r o t e c t :用于h i s r 的创建和删除: 保护结构的结构体是这样定义的: t y p e d e fs t r u c tt c _ p r o t g e t _ s t r u c t t c _ t c bt c _ t c b _ p o i t e r ;幸拥有保护结构的线 程指针奉 u n s i g n e d t c _ t h r e a d _ w a i t i n g ;a 有线程在等待该保 护结构的标志衫 t c _ p r o t e c t ; 1 ) 数据结构的保护( t c t _ p r o t e c t ) 当线程在操作的数据结构不想因为线程的抢占而破坏时,就要申请对该数据 结构的保护,比如:在创建h i s r 时,就要申请h i s r 链表的保护 t c t _ p r o t e c t ( & t c d _ h i s r - p r o t e c t ) ;在链表插入完成后,就要调用 t c t _ u n p r o t e c t ( ) 释放当前线程拥有的保护结构。 另外,如果线程正在执行的系统调用不想因为线程的抢占而中断时,就要申 请系统保护结构的保护t c t _ p r o t e c t ( t c d _ s y s t e m _ p r o t e c t ) ,比如:任务的恢 复、任务的挂起、消息管道的收发等,这些操作都要申请系统保护结构,当系统 调用结束后,就要调用t c t _ u n p r o t e c t ( ) 释放当前线程拥有的保护结构。 t c tp r o t e c t 首先判断要保护的结构是否被其它线程拥有,如果没有其它线 程拥有要保护的结构,则将当前线线程t c d _ c u r r e n t _ t h r e a d 赋给 p r o t e c t 一 t c _ t c b _ p o i n t e r ,表示当前线程要占用该保护结构,清除保护结构的 线程等待标志,将保护结构的指针送给 t c d _ c u r r e n t _ t h r e a d 一 t c _ c u r r e n t _ p r o t e c t ,表示当前线程拥有一个保护结构, 然后返回。 如果其它线程拥有要保护的结构,则要调用t c t _ s c h e d u l e _ p r o t e c t d ,直至 其它线程释放掉该保护结构,然后重复上面的处理,表示当前线程拥有该保护结 1 4 西北工业大学硕士学位论文第二章嵌入式n u c l e u s 实时操作系统 构。 2 ) 保护结构的释放( t c t _ u n p r o t e c t ) 当拥有保护结构的线程处理完系统调用后,就要释放被保护的结构。保护结 构的释放有两个系统调用:t c o _ _ u n p r o t e c t 释放的是线程当前的保护结构 t c _ c u r r e n t _ p r o t e c t = t c d _ u n p r o t e c ts p e c i f i c 释放的是用户或操作系统指定 的保护结构。 t c dl n p r o t e c t 首先判断当前线程是否拥有一个保护结构,再判断保护结构 的线程等待标志,看看是否有其它线程在等待该保护结构,如果这些条件都成立, 则将控制权交给t c tc o n t r o l _ t os y s t e m 。t c t _ c o n t r o l _ t o _ _ s y s t e m 为当前线程 创建一个s o l i c i t e d 类型的堆栈帧,清除当前线程拥有的保护结构以及保护结构 上挂的线程,清除t c d _ c u r r e n tt h r e a d ,将堆栈从线程堆栈切换到系统堆栈, 然后将控制权交给t e d _ s c h e d u l e 重新进行调度,从而引起t a s k 或h i s r 的竞争 ( 线程的抢占) 。 , 如果没有其它线程在等待该保护结构,则直接清除当前线程的 t c _ c u r r e n tp r o t e c t ,以及保护结构的t ct c b _ p o i n t e r ,然后返回。 t c du n p r o t e c t _ _ s p e c i f i c 首先清除指定保护结构上挂的线程 t ct c b _ p o i n t e r ,如果没有其它线程在等待该保护结构就直接返回。如果还有其 它线程在等待该保护结构,则为当前线程建立一个s o l i c i t e d 类型的堆栈帧,清 除当前线程t c o _ c u r r e n tt h r e a d ,将堆栈从线程堆栈切换到系统堆栈,然后将 控制权交给t c d _ _ s c h e d u l e 重新进行调度,从而引起t a s k 或h i s r 的竞争( 线程 的抢占) 。 3 ) 保护的调度( t c t _ s c h e d u l e _ p r o t e c t e d ) 保护结构的调度也就是调度拥有保护结构的线程,直至其释放保护。 t c ts c h e d u l e _ p r o t e c t e d 首先为想得到保护结构的当前线程建立一个 s o l i c i t e d 类型的堆栈帧,将拥有保护结构的线程置为当前线程 t c d _ _ c u r r e n t _ t h r e a d ,将堆栈切换至系统堆栈,将控制权交给 t c tc o n t r o lt ot h r e a d ,这里将恢复运行因线程抢占而挂起的拥有保护结构的 线程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年南通初一考试试卷及答案
- 2025年丹东生物中考试题及答案
- 2025年阳江公务员考试题目及答案
- 枝江生物地理考试试卷及答案
- 云南音乐中考试卷及答案
- 消防常识考试题目及答案
- 油漆安全考试题及答案
- 上海高二考试试题及答案
- 急救培训知识大全课件
- 消控室考试试题及答案
- 国际投资学(investment)讲义课件
- 施工机具进场检查验收记录
- 二年级健康成长上册教案
- 民俗学概论 第一章 概述课件
- 时代邻里4度°服务美学品质关怀体系
- 供水公司主要安全风险公告栏(总)
- 《农产品贮藏与加工》课件第三章稻谷精深加工
- 外研版五年级上册英语(全册)单元教材分析
- 【课件】音响的感知课件-高中音乐湘教版(2019)音乐鉴赏
- 华为-计划、预算和核算
- 膝关节置换术的护理
评论
0/150
提交评论