




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)μcosⅡ下tcpip协议栈的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学硕士研究生学位论文 p c o s i i 下t c p i p 协议栈的研究 摘要 随着i n t e m e t 的发展和后p c 时代的到来,人们开始越来越多地接触到一 个新概念e i ( e m b e d d e di n t e m e t ,嵌入式in t e r n e t ) 。e i 是指把t c p i p 协议 作为一种嵌入式应用,从而实现接入i n t e m e t 功能的技术。现在i n t e r n e t 的应 用已经开始深入到生活的方方面面,接入i n t e m e t 的主体也从传统的计算机 发展到大量其他的电器设备,e i 就是为了使众多的小型设备接入i n t e m e t 而 提出来的,其主要目的就是解决小型设备的上网问题。 对于很多体积较小、成本低廉的小型设备来说,一个i n t e r n e t 协议的实 现应该充分考虑其有限的硬件资源,并且在实际应用当中,由于很多小型 设备接入i n t e r n e t 需要的网络功能比较单一,因此实现一个小型化的t c p i p 协议栈就变的十分必要。 本文首先对在嵌入式系统上实现t c p i p 协议进行了讨论和研究,介绍 了e i 的概念、特点和研究背景、研究意义、应用前景、发展动态以及国内 外的一些比较成熟的技术,并根据小型嵌入式系统接入i n t e m e t 的客观条件 和嵌入式系统本身实时性、灵活性和简单性的特点总结了t c p i p 协议栈实 现的一般要素。 其次,本文对嵌入式操作系统p c o s 。i i 实时内核的工作原理作了深入的 分析,并对p c o s - i i 在a r m 处理器上的移植过程作了详细的描述。本文实 验方案用的以太网接口控制芯片是r t l 8 0 1 9 a s ,文章完整的叙述了网卡驱动 程序的实现过程。然后就协议栈内存管理的设计思想、实现过程和协议栈 的整体设计结构的实现以及协议栈和g c o s i i 操作系统的接口的设计作了 详细的说明。 接下来,在遵从t c p i p 协议标准的前提下,根据以上总结的关于实现 嵌入式t c p i p 协议栈的特点和要求,本文对其进行了具体实现,在g c o s 。i i 操作系统上编写了嵌入式t c p i p 协议栈,实现了t c p i p 协议簇的基本协议 触冲、i p 、i c m p 和t c p 。协议栈的a p i ( a p p l i c a t i o np r o g r a m si n t e r f a c e s ,应 用程序接口) 是专门设计的,它和b s d ( b e r k e l e ys o f t w a r ed i s t r i b u t i o n ,伯克 利软件套件) a p i 非常类似,但执行起来相对高效、消耗资源较少。 最后,在l i n u x 平台下,本文用了一个模拟的网络环境对实现的各个协 太原理工大学硕士研究生学位论文 议的功能进行了测试。测试结果证明在g c o s i i 操作系统上已经可以实现基 本的t c p i p 协议,通过了网络通讯测试,达到了设计目标,可以运用到实 际嵌入式系统当中。 关键词:e i ,嵌入式系统,g c o s i i ,t c p i p i i 太原理工大学硕士研究生学位论文 r e s e a r c ho ft c p i pp r o t o c o ls t a c k o n p c o s - i io s a bs t r a c t w i t ht h ed e v e l o p m e n to f i n t e m e ta n dt h ea r r i v a lo fl a t e rp ct i m e ,m o r ea n d m o r e p e o p l es t a r tt og e ti nt o u c hw i t h an e wc o n c e p t e i ( e m b e d d e di n t e m e t ) e i t e c h n o l o g yi sm a k i i l gt c p i pp r o t o c o la s ai m p l e m e n t a t i o nt or e a l i z et h e c a p a b i l i t i e so fi n t e r a c ta c c e s s i n g n o wt h ea p p l i c a t i o no fi n t e m e th a sc o m ei n t o e v e r y w h e r ef o rp e o p l e sd a i l yl i f e b e s i d e sc o m p u t e r , ag r e a tn u m b e ro fe l e c t r i c i n s t r u m e n t sb e g i nt oa c c e s si n t e r n e t t h et e c h n o l o g yo f e ii sf o ral o to fs m a l l i n s t r u m e n t s ,i t sa i mi st or e s o l v et h ep r o b l e mo f a c c e s s i n gi n t e m e tf o rt h e m s i n c es m a l ld e v i c e sa r eo f t e n r e q u i r e d t ob e p h y s i c a l l y s m a l la n d i n e x p e n s i v e ,a l li m p l e m e n t a t i o no ft h ei n t e m e tp r o t o c o l sw i l lh a v et od e a lw i t h h a v i n g l i m i t e dh a r d w a r e r e s o u r c e s ,b e s i d e s ,i np r a c t i c e ,l o t so fs m a l l i n s t r u m e n t s d e m a n d sa r ev e r ys i m p l ef o rt h ef u n c t i o no fa c c e s s i n gi n t e m e t ,i t b e c o m e sn e c e s s a r yt or e a l i z eas m a l lt c p 仰s t a c k f i r s t l y t h et h e s i s f o c u s e so n a ni n t r o d u c t i o nt ot h ec h a r a c t e r i s t i co f e m b e d d e dt c p i p ,i ti n t r o d u c e st h ed e f i n i t i o n ,c h a r a c t e r i s t i c ,b a c k g r o u n d , m e a n i n g ,f o r e g r o u n do fa p p l i c a t i o n ,d e v e l o p m e n tt r e n d ,a n ds o m em a t u r a t i o n a l t e c h n o l o g i sa th o m ea n da b r o a d t h et h e s i ss u m su pt h ef a c t o r so fr e a l i z a t i o no f t c p i ps t a c kb a s e do nt h ec h a r a c t e r i s t i c so f r e a l t i m e ,f l e x i b l ea n ds i m p l eo f t h e e m b e d d e ds y s t e ma n di m p e r s o n a lc o n d i t i o n so ft h er e a l i z a t i o no fa c c e s s i n g i n t e m e to f l o t so f s i n a i l i n s t r u m e n t s s e c o n d l y , t h et h e s i sa n a l y s e st h ew o r k i n gp r i n c i p l eo f t h er e a lt i m ei n n e ro f t h ei x c o s - i ia n dt h ep o r t i n go fp c o s - i io na i 洲p r o c e s s o r 1 1 1 ee t h e m e t i n t e r f a c ec a r di si u l 8 0 1 9 a s ,t h et h e s i sd e s c f i b e st h er e a l i z a t i o no fn e t w o r k c a r dd r i v e r t h e nt h et h e s i sd e s c r i b e st h ei d e ao fd e s i g n i n ga n dt h er e a l i z a t i o no f m a n a g e m e n to fm e m o r y ,t h ew h o l er e a l i z a t i o no ft c p i ps t a c ka n dt h e d e s i g n i n go fi n t e r f a c eo ft c p i ps t a c ka n di u c o s - i i i i i 太原理工大学硕士研究生学位论文 t h e n ,f o l l o w i n gt h e s t a n d a r do ft c p i pp r o t o c o la n dt h en e e d o f r e a l i z a t i o no ft c p i ps t a c k ,t h et h e s i sd e s c r i b e st h er e a l i z a t i o no ft h ee m b e d d e d t c p i ps t a c ko nr t c o s i ia n dc o m p i l i n ga r p , i p , i c m pa n dt c pp r o t o c 0 1 t h ea p p l i c a t i o np r o g r a m si n t e r f a c e so f t h i st c p i ps t a c ki ss p e c i a l i z e d ,i tl i k e s t h eb e r k e l e ys o c k e ta p p l i c a t i o np r o g r a m si n t e r f a c e sb u tm o r ee f f i c i e n tt h e ni t i no p e r a t i n g a tl a s t ,w eh a v eat e s to nt h ep r o t o c o li no p e r a t i n gs y s t e mo fl i n u x ,t h e t e s t i n gr e s u l ts h o w st h a tt h eb a s i cf u n c t i o n so ft c p i pp r o t o c o lc a nw o r kv e r y w e l l k e y w o r d s :e i ,e m b e d d e ds y s t e m ,i t c o s - i i ,t c p i p i v 声明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体己经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名:i 纽鸭 日期: 论文作者签名:j 么达絮卜 日期:逸:臣 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定。其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文; 学校可允许学位论文被查阅或借阅;学校可以学术交流为目的, 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) o 签名: 导师签名:务 太原理工大学硕士研究生学位论文 1 1 嵌入式系统 1 1 1 嵌入式系统的基本概念 第一章技术背景 嵌入式系统的定义是什么呢? 一般来说,从我们经常接触到的m p 3 、手机、p d a 等微型数字化用品到大型的工业控制设备、车载g p s 卫星定位器等都可以称为嵌入式 系统。 根据i e e e ( r 司际电气与电子工程师协会) 的定义:嵌入式系统是“用于控制、监视或 者辅助操作机器和设备的装置【l 】”。 国内般定义为:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁 减,系统功能、可靠性、成本、体积、功耗等要求非常严格的计算机系统【2 】。整个系统 是软件与硬件的集合体,硬件以芯片、模板、组件、控制器形式埋藏于设备内部,软件 是实时多任务操作系统和各种专用软件,一般固化在r o m 或f l a s h 中。整个系统设 计目的在于满足某种特定功能。嵌入式系统一般可分为五个部分:处理器、内存、输入 与输出设备、操作系统与应用软件。 1 1 2 嵌入式系统的基本特征 ( 1 ) 嵌入式系统通常使用面向特定应用的嵌入式c p u 。与通用型c p u 的最大不同 就是嵌入式c p u 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积 小、集成度高等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部,从 而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 ( 2 ) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体 应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、 不断创新的知识集成系统。 ( 3 ) 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在 同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争 力。 ( 4 ) 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步 进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 1 太原理工大学硕士研究生学位论文 ( 5 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯 片或单片机本身中,而不是存贮于磁盘等载体中。 1 2 嵌入式i n t e r n e t 技术 1 - 2 1 嵌入式i n t e r n e t 的概念和特点 嵌入式i n t e m e t 技术是一种设备接入技术或者说是一种异种网络互联技术,它最初 主要是指如何把嵌入式系统与i n t e m e t 实现互联p 1 。对于嵌入式i n t e m e t ,我们使用下面 的概念:嵌入式i n t e m e t 是指把t c p i p 协议作为一种嵌入式应用,从而实现接入i n t e m e t 的功能,也可以简单理解为是一种采用嵌入式模块而非p c 系统直接接入i n t e m e t 的技 术。当然,这里的t c p i p 协议与p c 上所采用的有较大差别。由于嵌入式系统资源的 有限性,嵌入式系统所采用的协议是经过裁剪后的简化t c p i p 。 1 2 2 嵌入式i n t e r n e t 的研究背景 嵌入式计算机在应用数量上远远超过了各种通用计算机。在制造工业、过程控制、 通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入 式计算机嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体 应用相结合后的产物,今天嵌入式系统带来的工业年产值已超过了1 万亿美元,1 9 9 7 年来 自美国嵌入式系统大会( e m b e d d e ds y s t e mc o n f e r e n c e ) 的报告指出,未来5 年仅基于嵌入 式计算机系统的全数字电视产品,就将在美国产生一个每年1 5 0 0 亿美元的新市场。 如今,i n t e m e t 已经遍布全球,成为人们获得各类信息、相互交流的重要渠道后p c 时代将是一个嵌入式系统和i n t e m e t 相结合的时代,将是一个具有联网功能的嵌入式系统 代替p c 在i n t e m e t 网络中占据主导地位的时代。这种趋势促进e i 技术的发展。 1 2 3 嵌入式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 大大提高了终端设备产品的竞争能力,并为信息家电和智 2 太原理工大学硕士研究生学位论文 能家居的发展提供了强有力的技术保证,但国内嵌入式产品网络化研究起步较晚,跟国 际上仍有一定差距,因吃对嵌入式i n t e r n e t 研究具有重要意义。 嵌入式i n t e m e t 的应用前景十分广阔,它可以应用在各个领域,主要有t i n j l 类【4 1 : ( 1 ) 智能公路 交通管理、车辆导航、流量控制、信息监测与汽车服务: ( 2 ) 智能家居 电视、电冰箱等家用电器网络化,机顶盒、智能家居防盗系统、安全防火、网 络可视电话、水,电,气自动抄表系统等; ( 3 ) 工业自动化 冷库、中央空调、超级市场冰柜、网络化工业控制系统、p o s 网络及电子商务 等【5 1 ; ( 4 ) 公共服务系统 公共交通无接触智能卡发行系统、公共电话卡发行系统、公共i p 电话,自动售 货机等。 ( 5 ) 大型实时监测系统 地震监测网、实时气象信息监测、环境实时监测、水源和空气污染监测、防洪体 系及水土质量监测、堤坝安全监测。 1 2 4 嵌入式i n t e m e t 技术实现方案 近几年国内外嵌入式i n t e m e t 研究的公司及科研院所逐渐增多,从嵌入式i n t e r n e t 的实现方案来分,如今已经取得的成果大致分如下几类 6 1 : ( 1 ) t c p i p 协议栈作为嵌入式实时操作系统的一部分。 ( 2 ) 有硬件实现的t c p h p 协议栈 ( 3 ) 商品化的t c p d p 协议栈,并提供可裁减的源代码。 由于嵌入式系统应用千差万别,系统可用资源差别较大,因而在这一方面没有形成 嵌入式i n t e m e t 的一个统一标准,还处于针对具体应用做相应设计的独立应用阶段。 本课题主要研究如何结合嵌入式i n t e m e t 应用以及嵌入式系统的软硬件系统环境, 设计并实现一种协议栈与应用分离,同时具有占用系统资源少、可配置、易于移植、接 口简单易用等特点的t c p a p 协议栈。使用这种t c p a p 协议栈,可以让嵌入式i n t e m e t 应用开发人员省去t c p a p 通讯协议部分的设计与实现,把主要的工作放在应用程序( 协 议) 的分析和设计上。因此本课题的研究无论在理论上,还是实际的应用中都具有重要 3 太原理工大学硕士研究生学位论文 的现实意义。 、 本课题的具体方案可以描述为在一个嵌入式操作系统上面设计实现一套t c p i p 协 议,从而实现该操作系统对网络的支持。在这个方案中,引入了嵌入式操作系统,即在 嵌入式系统上首先安装并运行操作系统,然后运行t c p i p 协议栈,从而实现嵌入式 i n t e m e t 。目前各类嵌入式操作系统非常多,常见的有p s o s ,n u c l e u s ,l i n u x ,g c l i n u x ;w i nc e , e m b e d d e dw i n n t 等等。这些操作系统都带有完整的t c p i p 协议栈,因此在实现上没有 什么技术难点。本课题的嵌入式操作系统i x c o s i i 仅仅是一个实时的任务调度及通信 内核,缺少对外围设备和接口的支持,没有文件系统、网络协议、图形界面本课题就 是要在嵌入式实时操作系统“c o s i i 上设计实现一套t c p i p 协议栈,使i | l c o s i i 成为 支持网络的实时多任务操作系统。 1 2 5t c p i p 协议栈及实现要素 把嵌入式设备连接到i n t e m e t ,实现数据信息交换、远程访问和设备控制,必须给 它们嵌入t c p i p 协议栈或者给它们构建一个嵌入式w e b 服务器,t c p i p 协议栈是其核 心技术p 】。 利用嵌入式本身有限的资源实现互联网方案的技术难点是如何对信息进行t c p i p 协议处理,使之变成可以在互联网上传输的i p 数据包。我们的宗旨就是要最大限度地 利用嵌入式系统资源,根据t c p i p 协议对网络数据信息进行最高效的处理【8 1 。 分层的原理是将每一层协议的实现细节对相邻协议层加以屏蔽,提供服务访问接口 进行层问数据传递,各层数据独立封装。发送和接收端的各层协议存在逻辑上点对点 ( p e e r - t o - p e e r ) 连接。 数据封装体现协议层次模型的重要特征。每层协议按照自己的方式进行数据成帧。 数据发送时,各层在收到的上一层数据前面添加对应的头部信息,进行数据封装,然后 传递到下一层;数据接收时,各层对数据进行解包,剥离出头部信息,进行适当的保存, 然后将数据传递到上一层处理。 随着嵌入式工业的持续增长,各种t c p i p 源代码被直接或者经过修改以后移植到 i n t e m e t 。大多数r t o s 厂商和协议厂商将t c p i p 源代码进行修改并移植到嵌入式实时 环境中时,必须对以下的因素加以考虑f 9 】: ( 1 ) 缓存管理 网络固有的异步特性要求系统创建并管理缓冲区保持网络数据。缓冲区管理是实时 系统设计的重要方面。缓冲区分配方案可分为:静态分配和动态分配。方案的选择由嵌 4 太原理工大学硕士研究生学位论文 入式系统的实际需要决定。 ( 2 ) 最小化数据拷贝 现在大多数n i c 采用d m a 方式将接收到的数据直接存放到缓冲区,系统通过指针 操作,而不是数据拷贝方式,将缓冲区中的数据沿协议栈向上传递,减少由于数据拷贝 引入的系统开销。 ( 3 ) 最小延迟时间 实时操作系统r t o s 的存在不应增加额外的延迟。处理中断的接口必须快并且具有 确定性。在处理物理帧的发送和接收请求的中断过程中,r t o s 不应增加任何延迟【1 0 1 。 处理分组要求大量的上下文转换和c p u 处理,这样就增加了使用操作系统的重要性, 即具有最小线程任务切换时间的操作系统。 ( 4 ) 并发处理 最早的t c p i p 协议实现是基于u n i x 系统,依靠操作硬件中断级和软件中断级的 临时改变来消除资源竞争问题。但是在由任务构造的系统中,共享资源的访问需要额外 的保护方法。 ( 5 ) 定时器管理 为了减少c p u 资源的使用,避免并发问题的发生,协议中用于连接管理的定时器, 要由r 1 o s 统一负责超时和重设定时。 5 太原理工大学硕士研究生学位论文 第二章g c o s i i 系统的分析与移植 2 1 j - t c o s i i 操作系统概述 p c o s i i 是j e a nj l a b r o s s e 在1 9 9 0 年前后编写的一个实时操作系统内核【1 1 1 。可以 说g c o s i i 也是像l i n u st o r v a l d s 实现l i n u x 一样,完全出于l a b r o s s e 个人对实时内核 的研究兴趣而产生的,并且开放源码,在网上供使用者下载。经过十多年的发展,特别 是在2 0 0 1 年清华大学邵贝贝老师翻译出版了全面系统介绍肛c o s i i 的书籍之后, i _ t c o s i i 开始在国内得到迅速的普及和广泛的应用,使用p c o s i i 构建嵌入式应用系 统的人越来越多,尤其是高校和研究机构将p c o s i i 直接作为实时系统的教学材料。 严格的说,p c o s 1 1 只是一个实时操作系统的内核,它仅仅包含了任务调度、任务 管理、时间管理、内存管理和任务间的通信与同步等基本功能,没有提供输入输出管理、 文件系统网络等额外的服务i ”j 。但由于p c o s i i 良好的扩展性的源码开放,这些非必 须的功能完全可以由用户自己根据需要分别实现。目前,已经出现了基于p , c o s i i 的 相关应用:包括文件系统g c f s 、图形系统“c g u ! 、f l a s hl o a d e rp , c f l 以及第三方提 供的t c p i p 网络协议栈等。 c o s 1 i 的目标是实现一个基于优先级调度的抢占式实时内核,并在这个内核之上 提供最基本的系统服务,例如信号量、邮箱、消息队列、内存管理、中断管理等。虽然 p c o s i i 并不是一个商业的实时操作系统。但肛c o s u 的稳定性和实时性却被数百个 商业级的应用所验证,其应用领域包括便携式电话、运动控制卡、自动支付终端、交换 机等。 2 2g c o s i i 的原理分析 为了更好的了解g c o s - i i 的工作原理,下面分5 个方面介绍i t c o s - i i 的内核执行 机制。 1 任务调度 p , c o s i i 的任务调度是完全基于任务优先级的抢占式调度,也就是高优先级的任务 一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统 设计,g c o s i i 规定所有任务的优先级不同,因此任务的优先级也同时唯一的标识了给 任务的本身。 任务调度将在以下情况出现时发生: 7 太原理工大学硕:t 研究生学位论文 高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器。此时将调度 就绪状态的低优先级任务获得执行i ”】。这种调度也称为任务级的上下文切换。高优先级 的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执 行条件( 例如休眠时钟的到来) ,则在中断态直接切换到高优先级任务执行。这种调度 也称为中断级的上下文切换。 这两种调度方式在l a c o s i i 的执行过程中非常普遍,一般说来前者大多发生在服 务中( 例如请求信号量) 中,后者则都是发生在时钟中断的服务程序中。 2 任务管理 p c o s - i i 最多可管理6 4 个任务,系统保留了4 个最高优先级的任务和4 个最低优 先级的任务,所以用户可以使用的任务数有5 6 个,用户使用任务前必须给每个任务赋 以不同的优先级,优先级从0 到o s l o w e s t _ _ p r l 0 2 。优先级号越低,任务的优先 级越高。a c o s i i 总是运行进入就绪态的优先级最高的任务。 o s i a s k d e l 0 图2 - 1g c o s - 任务状态图 f i g 2 1t a s ks t a t e s 睡眠态( d o r m a n t ) 指任务驻留在程序空间之中,还没有交给r t c o s i i 管理, 当任务一旦建立,这个任务就进入就绪态准备运行,如果一个任务是被另一个任务建立 的,而这个任务的优先级高于建立它的那个任务,则这个刚刚建立的任务将立即得到 c p u 的控制权。一个任务可以通过调用o s t a s k d e l 0 返回到睡眠态,或通过调用该函数 8 太原理工大学硕士研究生学位论文 让另一个任务进入睡眠态。 正在运行的任务是可以被中断的,除非该任务将中断关了,或者p c o s i i 将中断 关了。被中断了的任务就进入了中断服务态( i s r ) 。响应中断时,正在执行的任务被挂 起,中断服务子程序控制了c p u 的使用权。中断服务子程序可能会报告一个或多个事 件的发生,而使一个或多个任务进入就绪态。在这种情况下,从中断服务予程序返回之 前,p c o s i i 要判定,被中断的任务是否还是就绪态任务中优先级最高的。如果中断服 务子程序使一个优先级更高的任务进入了就绪态,则新进入就绪态的这个优先级更高的 任务将得以运行,否则原来被中断了的任务才能继续运行。 p c o s i i 提供了任务管理的各种函数调用,包括创建任务、删除任务、改变任务的 优先级、任务挂起和恢复等。 任务控制块 一旦任务建立了,任务控制块o st c b s 将被赋值。任务控制块是一个数据结构, 当任务的c p u 使用权被剥夺时,p c o s i i 用它来保存该任务的状态。当任务重新得到 c p u 使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。 o st c b s 全部驻留在r a m 中。任务建立的时候,o st c b s 就被初始化了。 建立任务 想让p c o s i i 管理用户的任务,用户必须要先建立任务。用户可以通过传递任务 地址和其它参数到以下两个函数之一来建立任务:o s t a s k c r e a t e o 或 o s t a s k c r e a t e e x t o 。o s t a s k c r e a t e 0 与p c o s 是向下兼容的,o s t a s k c r e a t e e x t 0 是 o s t a s k c r e a t e 0 的扩展版本,提供了一些附加的功能。用两个函数中的任何一个都可以 建立任务。任务可以在多任务调度开始前建立,也可以在其它任务的执行过程中被建立。 在开始多任务调度( e p 调用o s s t a r t o ) 前,用户必须建立至少一个任务。任务不能由中断 服务程序( i s r ) 来建立。 任务堆栈 每个任务都有自己的堆栈空间。堆栈必须声明为o ss t k 类型,并且由连续的内 存空间组成。用户可以静态分配堆栈空间( 在编译的时候分配) 也可以动态地分配堆栈空 间( 在运行的时候分配) 。用户可以用c 编译器提供的m a l l o c 0 函数来动态地分配堆栈 空间。在动态分配中,用户要时刻注意内存碎片问题。特别是当用户反复地建立和删除 任务时,内存堆中可能会出现大量的内存碎片,导致没有足够大的一块连续内存区域可 用作任务堆栈,这时m a l l o e 0 便无法成功地为任务分配堆栈空间。p c o s 1 1 支持的处理 器的堆栈既可以从上( 高地址) 往下( 低地址) 长也可以从下往上长。用户在调用 9 太原理工大学硕士研究生学位论文 o s t a s k c r e a t e o 或o s t a s k c r e a t e e x t 0 的时候必须知道堆栈是怎样长的,因为用户必须得 把堆栈的栈顶传递给以上两个函数,当o s _ c p u h 文件中的o ss t kg r o w t h 置为 0 时,用户需要将堆栈的最低内存地址传递给任务创建函数;当o s c p u h 文件中的 o ss t kg r o w t h 置为l 时,用户需要将堆栈的最高内存地址传递给任务创建函数。 堆栈检验 有时候决定任务实际所需的堆栈空间大小是很有必要的。因为这样用户就可以避免 为任务分配过多的堆栈空间,从而减少自己的应用程序代码所需的r a m ( 内存) 数量。 t t c o s i i 提供的o s t a s k s t k c h k 0 函数可以为用户提供这种有价值的信息。假定堆栈是 从上往下递减的( 即o s s t kg r o w t h 被置为1 ) 。p c o s - i i 是通过查看堆栈本身的内 容来决定堆栈的方向的。只有内核或是任务发出堆栈检验的命令时,堆栈检验才会被执 行,它不会自动地去不断检验任务的堆栈使用情况。在堆栈检验时,r t c o s i i 要求在任 务建立的时候堆栈中存储的必须是0 值( a o 堆栈被清零) 。另外,t t c o s i i 还需要知道 堆栈栈底( b o s ) 的位置和分配给任务的堆栈的大小。在任务建立的时候,b o s 的位置及 堆栈的这两个值储存在任务的o s t c b 中。 删除任务 有时候删除任务是很有必要的。删除任务,是说任务将返回并处于休眠状态,并不 是说任务的代码被删除了,只是任务的代码不再被 _ t c o s i i 调用。通过调用o s t a s k d e l 0 就可以完成删除任务的功能。o s t a s k d e l ( ) - - 开始应确保用户所要删除的任务并非是空 闲任务,因为删除空闲任务是不允许的。接着,o s t a s k d e l 0 还应确保用户不是在i s r 例 程中去试图删除一个任务,因为这也是不被允许的。调用此函数的任务可以通过指定 o sp r i os e l f 参数来删除自己。挂起任务有时候将任务挂起是很有用的。挂起任务 可通过调用o s t a s k s u s p e n d 0 函数来完成。被挂起的任务只能通过调用o s t a s k r e s u m e o 函数来恢复。任务挂起是一个附加功能。也就是说,如果任务在被挂起的同时也在等待 延时的期满,那么,挂起操作需要被取消,而任务继续等待延时期满,并转入就绪状态。 任务可以挂起自己或者其它任务。 恢复任务 被挂起的任务只有通过调用o s t a s k r e s u m e 0 才能恢复。因为 o s t a s k s u s p e n d o 不能挂起空闲任务,所以必须得确认用户的应用程序不是在恢复空闲 任务。要恢复的任务必须是存在的,因为用户需要操作它的任务控制块 o s _ t c b l 4 1 7 ( 2 ) 】,并且该任务必须是被挂起的。o s t a s k r e s u m e 0 是通过清除o s t c b s t a t 域中的o ss t a ts u s p e n d 位来取消挂起的。最后,任务调度程序会检查被恢复的任 1 0 太原理工大学硕士研究生学位论文 务拥有的优先级是否比调用本函数的任务的优先级高。 系统初始化时会自动产生两个任务:一个空闲任务,它的优先级最低,该任务仅仅 给一个整型变量作累加运算;另一个是统计任务,它的优先级为次低,该任务负责统计 当前c p u 的利用率。 3 时间管理 p c o s i i 的时间管理是通过定时中断来实现延时与超时控制等功能,这个定时中断 叫做时钟节拍。该定时中断一般每l o m s 或者l o o m s 发生一次,实际的频率通过用户对 硬件系统的定时器编程来决定,中断发生的时间间隔是固定不变的,该中断也成为一个 时钟节拍。p c o s i i 要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相 关的系统函数,例如中断级的任务切换函数、系统时间函数。时间管理对于系统提供的 时间功能函数至关重要,任务延迟一定数量的时间( 分、秒、毫秒等) 都是通过时钟节 拍来提供的。 任务延时 肛c o s i i 提供了这样一个系统服务:申请该服务的任务可以延时一段时间,这段时 间的长短是用时钟节拍的数目来确定的。实现这个系统服务的函数叫做o s t i m e d l y 0 。 调用该函数会使p c o s i i 进行一次任务调度,并且执行下一个优先级最高的就绪态任 务。任务调用o s t i m e d l y 0 后,一旦规定的时间期满或者有其它的任务通过调用 o s t i m e d l y r e s u m e o 取消了延时,它就会马上进入就绪状态。只有当该任务在所有就绪 任务中具有最高的优先级时,它才会立即运行。o s t i m e d l y ( ) _ 量, 然是一个非常有用的函 数,但用户的应用程序需要知道延时时间对应的时钟节拍的数目。o s t u n e d l y h m s m 0 是使用户可以按小时( h ) 、分( m ) 、秒( s ) 和毫秒( m ) 来定义时间了,这样会显得更自然些。 与o s t i m e d l y o - - 样,调用o s t i m e d i y h m s m 0 i 函数也会使p c o s - i i 进行一次任务调 度,并且执行下一个优先级最高的就绪态任务。任务调用o s t i m e d l y h m s m 0 后,一旦 规定的时间期满或者有其它的任务通过调用o s t i m e d l y r e s u m e 0 取消了延时,它就会 马上处于就绪态。同样,只有当该任务在所有就绪态任务中具有最高的优先级时,它才 会立即运行处在延时期的任务结束延时。 p c o s i i 允许用户结束正处于延时期的任务。延时的任务可以不等待延时期满,而 是通过其它任务取消延时来使自己处于就绪态。这可以通过调用o s t i m e d l y r e s u m e 0 和指定要恢复的任务的优先级来完成。o s t i m e d l y r e s u m e 0 也可以唤醒正在等待事件的 任务。在这种情况下,等待事件发生的任务会考虑是否终止等待事件。 系统时间 太原理工大学硕士研究生学位论文 无论时钟节拍何时发生,i r t c o s i i 都会将一个3 2 位的计数器加l 。这个计数器在 用户调用o s s t a r t 0 初始化多任务和4 ,2 9 4 ,9 6 7 ,2 9 5 个节拍执行完一遍的时候从0 开始 计数。在时钟节拍的频率等于1 0 0 h z 的时候,这个3 2 位的计数器每隔4 9 7 天就重新 开始计数。用户可以通过调用o s t i m c g e t 0 来获得该计数器的当前值。也可以通过调用 o s t i m c s e t 0 来改变该计数器的值。 4 任务间的通信与同步 对于一个多任务的操作系统来说,任务间的通信和同步是必不可少的。在i _ t c o s 中提供了4 中同步对象,分别是信号量、邮箱、消息队列和事件。在i t c o s 1 1 2 5 1 中还 提供了互斥锁来解决实时系统的优先级反转问题。 所有这些同步对象都有创建、等待、发送、查询的接口用于实现进程间的通信和同 步。这一部分也是多任务的操作系统必须提供的系统服务,否则任务间的同步和互斥就 无法实现。 5 内存管理 在a n s ic 中可以使用m a l l o c 和f r e e 两个函数来动态分配和释放内存。但是在嵌入 式实时操作系统中,多次这样的操作会导致内存碎片,并且由于内存管理算法的原因, m a l l o c 和f r e e 的执行时间是不确定的。这对于嵌入式领域的应用非常不利。 为了消除内存碎片和执行时间的不确定性,在i t c o s i i 中把连续的大快内存按分 区来管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存块大小可 以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放 内存时将该块放回它以前所属的分区。这样就能有效解决内存碎片问题,同时执行时间 也是固定的。 2 3i _ t c o s - i i 在a r m 处理器上的移植分析 g c o s - i i 实际上可以简单的看作是一个多任务的调度器,在这个任务调度器上完 善并添加了和多任务操作系统相关的一些系统服务,如信号量,邮箱等。他的9 0 的代 码都是用c 语言写的,因此只要有相应的c 语言编译器,基本上就可以直接移植到特 定处理器上,这也是_ i c o s - i i 具有良好的可移植性原因f l4 】。移植工作的绝大部分都集 中在多任务切换的实现上,因为这部分代码主要是用来保存和恢复处理器现场( 即相关 寄存器) ,因此不能用c 语言,只能使用特定的处理器汇编语言完成。 “c o s - i i 的全部源代码大约是6 0 0 0 - 7 0 0 0 行,一共有1 5 个文件。将”c o s - i i 移 植到a r m 处理器上,需要完成的工作就非常简单,只需要修改3 个和a r m 体系结构 1 2 太原理工大学硕士研究生学位论文 相关的文件,代码量大约是5 0 0 行,移植的环境是s k y e y 模拟的基于a r m 7 t d m i 核的 a t 9 1 开发板。以下分别介绍这3 个文件的移植工作。 2 3 1o sc p u h 文件移植分析 1 数据类型定义 这部分的修改是和所用的编译器相关的,不同的编译器会使用不同的字节长度来表 示同一数据类型。这里使用的是g n u 的r r l n - e l f - g c c 编译器,相关的数据类型的定义如 下。 t y p e d e f u n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第5课 制作弹性球动画教学设计初中信息技术(信息科技)八年级上册人教版
- 基于改进YOLOv8n算法的绝缘子缺陷检测系统
- 考点解析-人教版八年级上册物理《长度和时间的测量》定向训练练习题(含答案详解)
- 基于荧光法的高精度耐压智能溶解氧检测技术研究
- 2.3 原子结构的模型(第2课时)(说课稿)八年级科学下册同步高效课堂(浙教版)
- 人防防护门安装技术方案
- 园林景观绿化养护管理
- 3.3.3物质运输的途径说课稿-2025-2026学年济南版生物七年级下册
- DB11T 2491-2025 文物保护工程勘察规范 长城
- 欠数据场景下离心泵复合故障诊断方法研究
- 招商银行笔试题库及参考答案
- 挂靠公司走帐协议书范本
- 2025年中国电信集团校园招聘笔试模拟试题集
- 全屋定制经销商合同协议
- 2024年仁怀市辅警真题
- 知道智慧树有礼同行伴礼一生-大学生礼仪修养满分测试答案
- 2025-2026学年苏科版(2023)小学劳动技术四年级上册教学计划及进度表
- 胸腺-胸腺瘤课件
- 供管水员知识培训课件
- 学堂在线 科学研究方法与论文写作 章节测试答案
- 精细化学品建设项目投资计划书
评论
0/150
提交评论