已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)基于arm和ucosⅡ的远程监控系统研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏大学硕士学位论文 摘要 近年来,嵌入式技术发展迅速,已经渗透到工业控制、智能设备 以及电子消费品等人们日常生活的各个领域,而i n t e r n e t 技术也取 得了巨大的发展,为人们所广为接受,于是嵌入式技术和i n t e r n e t 技术相结合形成的嵌入式i n t e r n e t 技术适时地出现了,并且成为实 现远程控制、信息共享的关键技术。本文对以嵌入式i n t e r n e t 为核 心技术的远程控制系统展开研究。首先介绍远程控制系统的概念、工 作模式和研究现状,然后分析了嵌入式操作系统u c o s i i 的工作原 理并描述了把它移植到三星公司a r k l 7 t d m i 芯片s 3 c 4 4 b o x 上的过程, 为嵌入式t c p i p 协议栈实现提供了操作系统支持。接着,开发了网 络接口芯片r t l 8 0 1 9 a s 的驱动程序,实现了t c p i p 协议栈的网络接 口层。然后在此基础上实现协议栈的i p 协议、a r p 协议、i c m p 协议、 u d p 协议、t c p 协议等几个核心协议。为了适应嵌入式系统有限的内 存资源和较慢的c p u 处理速度,在协议栈的实现过程中,对各协议进 行了有效的裁剪;采用了一次拷贝技术来减少数据包在内存中被拷贝 的次数;采用了跨层技术实现协议栈各层之间信息共享和直接交互; 结合u c o s i i 提出了一种高效的协议栈模块结构和内存管理机制; 特别是,针对t c p i p 协议栈缺乏安全机制的事实,分析了各协议的 安全漏洞,在协议的实现过程中部分的填补了漏洞,并且提出了如 s y nf l o o d 攻击检测算法等利用协议栈漏洞的攻击应对机制。最后, 结合具体项目船艇码头油水电供给远程监控系统的研制,分析了 该系统的结构和各功能模块,设计了监控子系统与主控制台的通信协 议。然后,基于嵌入式t c p i p 协议栈实现了h t t p 协议,在此基础上 又设计了一个小型的w e bs e r v e r 来实现远程客户对码头监控系统的 远程控制和操作。 关键词:嵌入式系统,远程监控,t c p i p ,u c o s i i ,a r m ? t d m i ,嵌 入式w e bs e r v e r 江苏= ;i - = 学硕士学位论文 a b s t r a c t i nr e c e n ty e a r se m b e d d e dt e c h n o l o g yi sf i l t e r i n gi n t op e o p l e sl i f ei n e v e r yf i e l d s u c ha s i n d u s t r yc o n t r o l l i n g 、i n t e l l i g e n tt e r m i n a l s a n d e l e c t r o n i cc o n s u m a b l e s a tt h es a m et i m ei n t e r a c tt e c h n o l o g yh a sa l s o m a d ea r a p i dp r o g r e s s s oe m b e d d e di n t e r n e tt e c h n o l o g ye m e r g e sa n di s u s e di nr e m o t e s u p e r v i s o r yc o n t r o ls y s t e ma n di n f o r m a t i o ns h a r i n g a p p l i c a t i o n s a n dn o wi tb e c o m e sak e yt e c h n i q u e t h ea r t i c l em a k e s s o m er e s e a r c ha b o u tr e m o t e s u p e r v i s o r y c o n t r o l s y s t e m i nw h i c h e m b e d d e di n t e r n e ti su s e da sk e yt e c h n i q u e a tf i r s tt h et e r m i n o l o g y 、 w o r k i n gm e c h a n i s ma n dl a t e s tr e s e a r c ha b o u tr e m o t es u p e r v i s o r yc o n t r o l s y s t e ma r ei n t r o d u c e d t h e nt h ew o r km e c h a n i s mo fe m b e d d e dr e a lt i m e o p e r a t i o ns y s t e mu c o s - i ii sa n a l y z e d t h e nu c o s i ii sm i g r a t e dt o s u m s u n g sc o n t r o l l e rs 3 c 4 4 b o x ,a r m 7 t d m ib a s e dc h i p ,a n di su s e d a so p e r a t i o ns y s t e mf o ri m p l e m e n to ft c p i ps t a c k s s e c o n d l yt h ed r i v e r f o re t h e r n e ti n t e r f a c e c h i pr t l 8 0 1 9 a si sd e v e l o p e d ,w h i c hi st h e n e t w o r ki n t e r f a c el a y e ro ft c p i ps t a c k t h i r d l ys e v e r a lk e r n e lp r o t o c o l s o f t c p i ps t a c ks u c ha si p 、a r p ,i c m p 、u d p ,t c pa r ei m p l e m e n t e d 。 t oa d a p tt ot h el i m i t e dm e m o r yr e s o u r c ea n ds l o wc p up r o c e s ss p e e d s o m ee f f e c t i v er e d u c t i o na n da m e l i o r a t i o ni sm a d e ;t or e d u c et h et i m e so f m e m o r yd a t ai sc o p i e dt h eo n et i m ec o p yt e c h n i q u ei s a d o p t e d ;t o i m p l e m e n tt h ei n f o r m a t i o n s h a r i n g a n dd i r e c tc o m m u n i c a t i o nt h e t e c h n i q u e so fc r o s s i n gt h ep r o t o c o ll a y e r i n gi su s e d t h e no n et i d ya n d ; 江苏大学硕士学位论文 e f f e c t i v em o d e ls t r u c t u r ea n dm e m o r ym a n a g e m e n tm e c h a n i s ma r ep u t f o r w a r d e s p e c i a l l yt h e r ei sn os e c u r i t ym e c h a n i s mi nt c p i ps t a c k ,s o t h e r ea r em a n yl e a k sw h i c hw o u l db ei m p o s e du p o nb ya t t a c k e r s u p o n t h a tt h el e a k sa r ea n a l y z e da n ds o m ea r em o d i f i e d a n ds o m ea n t i a t t a c k m e c h a n i s ms u c ha ss y nf l o o dc h e c ka r i t h m e t i ci so f f e r e d a tl a s tt h e s y s t e ms t r u c t u r ea n df i m c t i o nm o d u l e so fl a n dg a l l e y ss u p p l yc o n t r o l s y s t e mi sa n a l y z e d ,a n dt h ec o m m u n i c a t i o np r o t o c o lb e t w e e nt h ec o n t r o l s y s t e ma n dt h em a i nc o n t r o l l e ri sd e s i g n e d t h e nh t t pi si m p l e m e n t e d b a s e do nt c p d ps t a c k t oa c h i e v et h er e m o t e u s e r s w a t c h i n ga n d c o n t r o l l i n ga t h i nw e bs e r v e ri si m p l e m e n t e d u s i n gh t t p k e yw o r d s :e m b e d d e d s y s t e m ,r e m o t es u p e r v i s o r yc o n t r o l ,t c p i p , u c o s i i ,a r m 7 t d m i ,e m b e d d e dw e bs e r v e r 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部 内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密四。 学位论文作者签名:绮荟国夕导师签名:彦妖 签字日期:西年月呷日 学位论文作者毕业后去向: 工作单位: 通讯地址: 签字日期:哎r 年月f 日 电话 邮编 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容以外,本论文 不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名:野髫毯 日期:口r 年月 呷日 江苏大学硕士学位论文 第一章绪论 自上个世纪九十年代以来,随着i n t e r n e t 的广泛应用,计算机技术和网络 技术得到了迅猛发展。两者的结合对人们的生活方式产生了巨大的冲击,比如, 原来学生上课必须集中到教室由具体教师授课,现在不必了。只要有一台计算机, 连上i n t e r n e t 之后,学生就可以在家里实时地聆听在远方的老师授课。还有比 如网上医院、网上数字化图书馆等等都已经为人们所熟悉,并且得到了实际应用。 近年来,嵌入式技术也得到了飞速发展,于是嵌入式技术和网络技术的结合形成 的嵌入式i n t e r n e t 技术出现了。数字电视、空调、智能化洗衣机、p d a 、数码相 机等等数字化的电子设备都可以连到i n t e r n e t 上,网络已经深入到人们生活中 的每一个设备上来了。同样基于i n t e r n e t 的远程监控技术引起了工业界的广泛 关注,它在电网运行监控、水利枢纽调度、视频监控、工业机器人远程控制等等 方面得到了广泛的应用1 1 j 1 2 j1 3 】。基于i n t e r n e t 的远程监控系统实现了跨地域的 数据共享,具有数据传递快捷和交互性强的特点,推动着控制技术向网络化、分 布性和开放性的方向发展。以i n t e r n e t 为主要媒介的信息交换系统正迅速从商 业领域渗透到制造业领域,覆盖了工厂的现场设备控制、信息管理的各个层次, 引发了工业自动化信息系统的巨大变革。逐步形成了以i n t e r n e t 为基础的企业 信息系统。因此,研究基于i n t e r n e t 的远程监控技术无论在提高人们生活水平 方面还是在提高工业自动化和信息化程度上都有着重大的意义。 1 1 远程监控系统概述和研究现状 1 1 1 远程监控的概念 所谓远程监控系统指的是本地计算机系统通过网络系统对远端的控制系统 进行监测与控制,如果是以i n t e r n e t 作为网络形式,那么就叫基于i n t e r n e t 的 远程监控系统。由于监控系统监控的对象是远程的现场设备和控制系统,所以它 必须具有以下几个特点【4 】【5 h 6 j :第一,实时性。即要求控制系统网络能够在很短 的时间内完成控制命令和数据的传输和处理,因为大部分的控制系统都是实时系 统,实时性要求很高。第二,可靠性。首先要求控制命令和数据能在监控网络上 正确无误的传输,另外当出现故障时,系统要能继续工作而不能崩溃,并且在自 动或者人工干预的情况下恢复被破坏的数据,恢复正常运行。第三,网络安全性。 标准的i c p i p 协议栈是没有提供任何安全措施的,存在许多安全漏洞;另外, 扛苏人学硕士学位论文 监控数据是在公共网络上传输的,这就为攻击者提供了窃听、篡改的机会。因此 嵌入式t c p i p 协议栈的安全问题同样也很重要。 1 1 2 远程监控系统的工作模式 传统的远程监控系统大部分采用客户机服务器( c s ) 模式。c s 是指两个 系统或者两个进程的关系,客户机请求服务器为之完成工作,服务器提供客户要 求的服务。被监控的计算机系统工作于服务器模式,监控者为客户端。客户端主 要是负责向服务器端发送服务请求和控制命令,而服务器端负责响应客户端的请 求并发送信息。图1 1 为典型的三层c s 模式结构。应用系统的三个逻辑部分一 一用户界面表示、业务逻辑和数据各自独立,分别放置在客户机、服务器和数据 库服务器三个实体上,客户应用程序只负责提供用户界面,当需要进行数据访问 和复杂计算时,客户程序向服务器发出请求。服务器响应客户应用程序的请求, 完成复杂计算,或者向数据库服务器发送请求以完成数据操作,并将计算或操作 结果返回给客户程序。 l 查壅旦垦! 卜厂、 匦? 汇引蒜: 隔丽九一- |l 、一- 图1 i 三层c s 模式结构示意图 随着万维网( w w w ) 的大量使用,人们越来越习惯于使用浏览器来进行远程 访问和控制了,于是出现了三层b s 结构。b s 结构是c s 结构的一种特殊模式, 它e l iw e b 浏览器服务器数据库服务器组成。如图1 2 所示,客户端只需要一个 简单的浏览器,它根据用户请求资源的u r l 向w e b 服务器发出请求,w e b 服务器 把数据文件发送给客户,而客户端由h t m l 负责表示逻辑。服务器端是w e b 服务 器,它通常使用c g i 、a s p 等技术访问数据库进行数据查询或者处理。数据层是 负责各种数据处理的数据库服务器。 里坚冬厂一 ! 些型些堡k 、n 一| :二二1 、爿w e b 服务器 卜叫数据库服j ,n 一j i ”雾熏“l w e b 浏览器f l 、 图i 2 三层b s 模式结构示意图 2 江苏大学硕士学位论文 与三层c s 相比,b s 模式具有如下的优点: 第一,最大的优点是三层b s 模式不需要专门的客户端软件,而使用统一的 w e b 浏览器作为通用的客户端,于是客户端无须编程,且用户界面一致。而且不 论在何时何地,只要一个浏览器软件连上i n t e r n e t 即可进行远程控制,非常方 便。 第二,b s 模式是一种与平台无关的机制,应用程序不局限于任何硬件平台 或者操作系统,因为它采用统一的t c p i p 协议、应用层的h t t p 协议以及h t m l 描述语言。这种跨平台性使得信息可以在一个广域网范围内传播。 第三,由于客户端是统一的,所以系统升级时只要修改服务器端的软硬件即 可,这就避免了传统客户端的应用软件的开发,特别是当使用不同操作系统时, 就需要开发几个不同版本的客户端软件,相当费时。 1 1 3 远程控制系统的关键技术及研究现状 远程监控的关键问题是如何把嵌入式设备接入到i n t e r n e t 上来,并且保证 其实时性、可靠性、安全性等要求。实际上就是如何有效地实现嵌入式t c p i p 协议栈的问题。近年来,随着嵌入式i n t e r n e t 技术的蓬勃发展,国内外各大厂 商都相继推出了自己的嵌入式t c p i p 协议栈产品。其中比较有代表性的有: 1 l w i p 口j 。它是由瑞士计算机科学院( s w e d i s hi n s t i t u t eo fc o m p u t e r s c i e n c e ) 的a d a md u n k e l s 等开发的一套著名的用于嵌入式系统的开放源代码 t c p i p 协议栈。该协议栈可以移植到操作系统上,也可以在无操作系统的情况 下独立运行。l w i p 实现的重点是在保持t c p i p 协议主要功能的基础上减少对r a m 的占用,一般它只需要几十k 的r a m 和4 0 k 左右的r o m 就可以运行,这使l w i p 协议栈适合在低端嵌入式系统中使用。 2 风河公司( w i n dr i v e r ) 的嵌入式t c p i p 协议栈。风河公司是著名的嵌 入式操作系统开发商,其开发的嵌入式操作系统v x w o r k s 为人们所熟悉。该公司 的t c p i p 协议栈是操作系统v x w o r k s 的一部分。它参照了操作系统b s d4 4 版 本的t c p i p 实现,并且为嵌入式环境做了特殊的优化,适合于军事、工业、通 信等高端应用,在路由器、交换机等数据通信领域和基站等无线通信领域应用广 泛。 3 德州仪器公司( t i ) 开发的t c p i p 协议栈。它是t i 公司为其t m s 3 2 0 c 6 0 0 0 系列d s p 的网络应用而设计的。该协议栈基于t i 的d s pb i o s 编制,适合于1 6 位d s p 应用。 4 东北大学c n c i 研究所开发的t h i nt c p i p 协议栈【舯。该协议栈的最大特 江苏大学硕+ 学位论文 点是所占程序空间很小,相当精简,大约只有2 5 k b y t e s 大小,非常适合于8 位 机应用。 虽然国内外在嵌入式t c p i p 协议栈上取得了不少成就,但还是存在许多问 题 9 1 1 0 i 【l l 】:首先,要实现嵌入式t c p i p 协议栈就必须对标准的t c p i p 栈进行 必要的裁剪以适合嵌入式应用,但每个厂商或者研究机构的裁剪原则和情况都不 一样,这就使得这些协议栈非常不统一,没有形成一个标准。其次,网络安全性 对嵌入式系统而言相当重要,但几乎大部分嵌入式t c p i p 实现都没有或者很少 考虑安全问题。再次,出于商业性的目的,目前大部分嵌入式t c p i p 协议栈都 是不开放源代码的,并且价格较高,不利于研究和应用。 1 2 本论文的主要工作 本论文是结合解放军总后勤部项目船舰码头油水电供给监控系统一个子 项来进行研究的,完成的主要工作如下: 1 分析了嵌入式操作系统u c o s i i 的工作原理,并描述了把它移植到三星 公司3 2 位a r m 处理器芯片s 3 c 4 4 b o x 上的过程【1 2 1 1 3 1 ,为嵌入式t c p i p 协议栈的 实现提供操作系统支持。 2 进行了网络芯片8 0 1 9 a s 驱动程序开发,实现了t c p i p 协议栈的网络接口 层。 3 在嵌入式t c p i p 协议栈实现时详细分析和采用了跨层技术、一次拷贝技 术等,并对t c p i p 协议栈进行了有效的裁剪,结合u c o s i t 设计了一种紧凑的 协议栈工作模型和内存管理机制,在此基础上实现了i p 协议、a r p 协议、i c m p 协议、u d p 协议、t c p 协议等t c p i p 协议栈的几个核心协议。 4 在各协议的实现过程中采取了一些机制部分地填补了协议存在的漏洞,为 协议栈加进了安全性机制。 5 在实现嵌入式t c p i p 协议栈的基础上实现了h t t p 协议及基于h t t p 协议 的嵌入式w e bs e r v e r 。 6 分析了码头监控系统的各个功能模块。在论文中主要阐述了该系统的系统 功能构成、通信程序设计及w e bs e r v e r 设计。 江苏火学硕士学位论文 点是所占程序空间很小,相当精简,大约只有2 5 k b y t e s 大小,非常适合于8 位 机应用。 虽然国内外在嵌入式t c p i p 协议栈上取得了不少成就,但还是存在许多问 题【9 i o l 1 1 】:首先,要实现嵌入式t c p i p 协议栈就必须对标准的t c p i p 栈进行 必要的裁剪以适合嵌入式应用,但每个厂商或者研究机构的裁剪原则和情况都不 一样,这就使得这些协议栈非常不统一,没有形成一个标准。其次网络安全性 对嵌入式系统而言相当重要,但几乎大部分嵌入式t c p i p 实现都没有或者很少 考虑安全问题。再次,出于商业性的目的,目前大部分嵌入式t c p i p 协议栈都 是不开放源代码的并且价格较高,不利于研究和应用。 1 2 本论文的主要工作 本论文是结合解放军总后勤部项目船舰码头油水电供给监控系统一个子 项来进行研究的,完成的主要工作如下: 1 分析了嵌入式操作系统u c o s - i i 的工作原理,并描述了把它移植到三星 公司3 2 位a r m 处理器芯片s 3 c 4 4 b o x 上的过程【1 2 】,为嵌入式t c p i p 协议栈的 实现提供操作系统支持。 2 进行丁网络芯片8 0 1 9 a s 驱动程序开发,实现了t c p z p 协议栈的网络接口 层。 3 在嵌入式t c p i p 协议栈实现时详细分析和采用了跨层技术、一次拷贝技 术等并对t c p i p 协议栈进行了有效的裁剪,结合u c o s i i 设计了一种紧凑的 协议栈工作模型和内存管理机制,在此基础上实现了i p 协议、a r p 协议、i c m p 协议、u d p 协议、t c p 协议等t c p i p 协议栈的几个核心协议。 4 在各协议的实现过程中采取了一些机制部分地填补了协议存在的漏洞,为 协议栈加进了安全性机制。 5 在实现嵌入式t c p i p 协议栈的基础上实现了h t t p 协议及基于h t t p 协议 的嵌入式w e bs e r v e r 。 6 分析了码头监控系统的各个功能模块。在论文中主要阐述了该系统的系统 功能构成、通信程序设计及w e bs e r v e r 设计。 功能构成、通信程序设计及w e bs e r v e r 设计。 江苏大学硕士学位论文 第二章u c o s - il 简介及在a r m 7 t d mi 上的移植 2 1 为什么选择u c o s ii 在传统的单片机或者不复杂的小系统的程序设计中一般采用的是如图2 1 所示的前后台系统( f o r e g r o u n d b a c k g r o u n d ) 【1 4 l 。应用程序是一个无限的循 环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为 ( b a c k g r o u n d ) 。中断服务程序处理异步事件,这部分可以看成前台行为 ( f o r e g r o u n d ) 。后台也可以叫做任务级。前台也叫做中断级。时间相关性很强 的关键操作( c r i t i c a lo p e r a t i o n ) 一定是靠中断服务程序来保证的。因为中断 服务程序提供的信息一直要等到后台程序运行到该处理这个信息时,才能得到处 理。这种系统在处理信息的及时性上,比实际上可以做到的要差。处理信息的及 时性,称做任务级响应时间。最坏情况下的任务级响应时间取决于整个循环的执 行时间。因为循环的执行时间不是常数,程序经过某一特定部分的准确时间也是 不能确定的。进而,如果程序修改了,循环的时序也会受到影响。 后台前台 图2 i 前后台系统 j l i i 时间 很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机及玩具 等。在另外一些基于微处理器的应用中,从省电的角度出发,平时微处理器处在 停机状态( h a l t ) ,一切都是靠中断服务完成。 扛苏大学硕士学位论文 对于简单的应用,这种前后台系统是可以满足要求的。但随着嵌入式系统 的复杂化,系统可能要同时监控很多个外部设备,要求较高的实时性,因而要同 时处理多个任务。对这种应用如果也采用前后台系统的话,就会出现两个突出 的问题。是中断响应,一般为了保证某些重要任务的实时性,就要在中断服务 程序里进行一些复杂的处理,这样一来就要考虑代码重入、硬件中断溢出、其它 中断响应不及时等等。二是任务多,各种共事数据、资源访问的互斥性难以保证, 于是系统的可靠性降低,而且很难维护,程序量增大,同时开发起来很难。解决 这个问题的办法之一是引入嵌入式实时操作系统( r t o s ) 。r t o s 可以有效对多个 任务进行调度,对每个任务赋予不同的优先级可以保证紧急任务得以优先响应。 同时r t o s 也体现了一种新的应用程序设计思想和开放的框架,降低了程序的复 杂度和开发周期。现在市场上有几百种大大小小的嵌入式r t o s ,比较有名的有 v x w o r k s 、p s o s 、n u c l e u sp l u s 、v r t x s a 等等。但这些操作系统大部分都价格昂 贵,而且不开放源代码,所以不适合对国家安全性要求很高的领域。 近年来,j e a nj l a b r o s s e 先生开发的嵌入式实时操作系统u c o s i i 在中 国得了广泛的应用。该毕业论文选用它主要是因为:第一,它的源代码是完全开 放的,而且在不断的升级( 最新版本是2 5 1 版) ,这样用户就可以根据实际需求 对源代码进行取舍,去掉不必要的变量和不使用的函数,以提高系统的性能。同 时内核、信号量等等涉及到的各种参数都是可以根据具体需要进行配鼍的,这对 内存大小、实时性要求苛刻的嵌入式系统是尤为重要的。另外,由于对系统有了 源代码级的了解,所以用户可以对它进行扩展。第二,它基本上是免费的( 只要 买一本介绍u c o s i i 的书就可以获得源代码) ,用户用它来开发应用程序,不需 要支付任何费用。第三,系统内核的实时性强、可靠性高,该操作系统得到了美 国联邦航空管理局( f e d e r a la v i a t i o na d m i n i s t r a t i o n ) 对用于商用飞机的、 符合r t c ad o - 1 7 8 标准的认证。这表明该操作系统的质量得到了认证,可以在任 何场合放心使用。第四,它的可移植性很好,可以比较方便的移植到各种微处理 器上。 2 。2u c o s - i l 的特点 u c o s - h 主要有以下一些特点: 1 它可以管理管理多达6 4 个任务,除了系统内核本身保留了8 个任务外, 其它5 6 个任务用户都可以使用( j e a nj l a b r o s s e 先生正在对其升级,在后续 版本中将支持1 2 8 个任务以上) 。u c o s i i 的任务调度方法是基于优先级的,而 且能动态的改变任务的优先级,它不支持时间片轮换调度,每个任务的优先级必 坚菱奎堂堡主堂堡垒兰 一 须不同。每个任务有五种状态:睡眠态、就绪态、运行态、等待状态、中断服务 状态。图2 2 是u c o s i i 的任务变迁状态图。 图2 2u c o s i i 任务状态变迁 2u c o s i i 是完全可剥夺( p r e e m p t i v e ) 型的实时内核,即u c o s i i 总 是运行就绪条件下优先级最高的任务。不可剥夺( n o n p r e e m p t i v e ) 型内核当有 中断发生时,中断服务程序( i s r ) 获得c p h 的控制权,但如果i s r 使得一个任 务优先级比被中断了的任务优先级高的任务进入了就绪态,i s r 结束后,还是运 行原来被中断了的任务,直到它自动放弃c p u ,所以重要事件的响应时间是不可 剥夺型内核最大的缺陷。而可剥夺型内核当有上述情况发生时,i s r 结束时立即 运行优先级高的任务。多数商业内核也是可剥夺型的,u c o s i i 在性能上与它 们类似。 3u c o s 1 1 支持信号量( s e m a p h o r e ) 、自口箱( m a i lb o x ) 、消息队列( m e s s a g e q u e u e ) 、事件标志组( e v e n tf l a g ) 。通过它们来支持任务任务与中断服务程序、 任务与任务之间通信和同步以及对资源的互斥访问。 2 3u o o s ii 在a r m 7 t d m i 上的移植 2 3 1u c o s i i 移植对处理器的要求 所谓移植,指的是某个操作系统可以在某个微处理器或者微控制器上运行。 虽然u c 0 s i i 的大部分源代码是用c 语言写成的,仍需要用c 语言和汇编语言 完成一些与处理器相关的代码【l ”。比如u c o s i i 读写处理器、寄存器时就只能 通过汇编语言实现。因为u c o s i i 在设计时已经考虑了可移植性,所以, u c o s i i 的移植还是比较容易的。要使u c o s - i i 能够正常工作,处理器必须满 足以下要求: 7 江苏大学硕士学位论文 ( 1 ) 处理器的c 编译器能够产生可重入代码 代码的可重入性是保证完成多任务的基础,除了在c 程序中使用局部变量以 外,还需要c 编译器的支持。这里所使用的a r ms d t 开发环境可以生成可重入的 代码。 ( 2 ) 在程序中可以打开或者关闭中断 在u c o s ii 中,可以通过o s e n t e r _ c r i t i c a l0 或者o s e x i t _ c r i t i c a l0 宏来控制系统关闭或者打开中断。这需要处理器的支持,在a r m 7 t d m i 的处理器 上,可以设置相应的寄存器来关闭或者打开系统的所有中断。 ( 3 ) 处理器支持中断,并且能产生定时中断( 通常在l o h z - - l o o o h z 之间) u c o s - i i 是通过处理器产生的定时器中断来实现多任务之间的调度的。在 a r m 7 t d m i 的处理器上可以产生定时器中断。 ( 4 ) 处理器支持能够容纳一定数量数据的硬件堆栈 ( 5 ) 处理器有将堆栈指针和其他c p u 寄存器存储和读出到堆栈( 或者内存) 的 指令 u c o s - i i 在进行任务调度的时候,会把当前任务的c p u 寄存器存放到此任 务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行 另一个任务。所以,寄存器的入栈和出栈是u c o s i i 多任务调度的基础。图2 3 说明了u c o s - i i 的结构以及它与硬件的关系。 u c l o s i i ( 与处理器无关代码) o sc o r e co sf l a g c o scnc o s m i 】t e x co s _ q c o ss e m co st a s k c o st i m e cu c o si i c u c o si i h 软件 硬件 图2 3u c o s - i i 硬件软件体系结构 a r m 7 t d m i 处理器完全满足上述要求。接下来介绍如何把u c o s - ii 移植到三 江苏大学硕十学位论文 星( s a m s u n g ) 公司的一款基于a r m 7 t d m i 核的嵌入式处理器一一s 3 c 4 4 b o x 上。 2 3 2 把u c o s i i 移植到s 3 c 4 4 b o x 上的步骤 2 3 2 1 设置i n c l u d e h 中与处理器和编译器相关的代码 主要修改的内容如下: 修改1 :因为不同的微处理器有不同的字长,所以u c o s i i 的移植包括 了一系列的数据类型定义以确保其可移植性。尤其是u c o s i i 代码从不使用c 语言的s h o r t 、i n t 和l o n g 等数据类型,因为它们是与编译器相关的,不可移植。 于是就定义了一套整形数据结构,这样既保证是可移植的,又保证是直观的。另 外用户必须将堆栈的数据类型告诉u c o s i i 。这个过程是通过为0 s j t k 声明正 确的c 数据类型来完成的。所用处理器上的堆栈成员是1 6 位的,所以将o s s t k 声明为无符号整形数据类型。具体代码如下: # d e f i n ei n t 8 u u n s i g n e dc h a r # d e f i n ei n t l 6 u u n s i g n e ds h o r t # d e f in ei n t 3 2 uu n si g n e dl o n g # d e f i n eo s s t k u n s i g n e dl o n g w d e f i n eb o o l e a ni n t # d e f i n eo s c p u s r u n s i g n e dl o n g # d e f i n ei n t 8 sc h a r 修改2 :实现o s e n t e r _ c r i t i c a l0 和o s _ e x i t c r i t i c a l0 宏。与所有的 实时内核一样,u c o s i i 需要先禁止中断再访问代码的临界区,并且在访问完 毕后重新允许中断。这就使得u c o s - l l 能够保护临界区免受多任务或者中断服 务程序的破坏。在s 3 c 4 4 b o x 上本文编写了两个汇编语言函数( 放在。s c p u s 里) 来实现开、关中断。这主要是通过修改s 3 c 4 4 b o x 的程序状态寄存器( c p s r ) 中的中断禁止允许标志位( i r q 和f i q ) 来实现的【8 】o 具体实现代码如下: # d e f i n eo s _ e n t e r _ c r i t i c a l ( ) c p u s r = i n t s o f f0 :) # d e f i n eo s e x i t c r i t i c a l 0 fi f ( c p u s r = = o ) i n t so f f ( ) :) i n t so f f m r s r o ,c p s r:当前c p s r m o v r l ,r o :复制屏蔽 o r r r l ,r l ,# o x c o:屏蔽中断位 m s r c p s r ,r l:关中断( i r q 和f i q ) a n d r o ,r o ,# o x 8 0:从初始c p s r 返回f i q 位 9 江苏大学硕+ 学位论文 m o v p c i r :返回 i n s o n m r sr o c p s r:当前c p s r b i c r o ,r o ,# o x c o:屏蔽中断 m s rc p s r ,r o:开中断( i r q 和f i q ) m o v p c ,i r :返回 修改3 :绝大多数的微处理器和微控制器的堆栈是从上往下长的。但是某 些处理器是用另外一种方式工作的。u c o s - i i 被设计成两种情况都可以处理, 只要在结构常量o s s t k _ g r o w t h 中指定堆栈的生长方式就可以了。代码如下: # d e f i n e o s s t k g r o w t h 1 ;向下生长 2 3 2 2 用c 语言编写6 个操作系统相关的函数( o s c p u c c ) 1 ) o s t a s k s t k i n i t0 o s t a s k c r e a t e0 和o s t a s k c r e a t e e x t ( ) 通过调用0 s t a s k s t k i n i t ( ) 来初始化 任务的堆栈结构。因此,堆栈看起来就像刚发生过中断并将所有的寄存器保存到 堆栈中的情形一样。图2 4 显示了o s t a s k s t k i n i t 0 放到正被建立的任务堆栈中 的内容。 低地址内存 存储的处理器寄存器值 中断返回地址 处理器状态字 任务起始地址 p d a t a 高地址内存 图2 4 堆栈初始化( p d a t a 通过堆栈传递) 当用户建立任务的时候,用户传递任务的地址、p d a t a 指针、任务的堆栈栈 顶和任务的优先级给o s t a s k c r e a t e0 和o s t a s k c r e a t e e x t0 。一旦用户初始化堆 栈,o s t a s k s t k i n i t 0 就要返回堆栈指针所指的地址。o s t a s k c r e a t e 0 和 o s t a s k c r e a t e e x t0 会保存该地址并将它保存到任务控制块( o s j c b ) 中。实现 o s t a s k s t k i n i t ( ) 函数的代码如下: 1 0 向方 眭生栈 堆 ,l 江苏大学硕士学位论文 o ss t k 十o s t a s k s t k i n i t ( v o i d ( * t a s k ) ( v o i d * p d ) ,v o i d * p d a t a ,o ss t k * p t o s , i n t l 6 uo p t ) u n s i g n e di n t $ s t k : s t k = ( u n s i g n e di n t ) p t o s : l o a ds t a c kp o i n t e r u s e _ a r g ( o p t ) : o p t 十十: b u i i das t a c kf o rt h en e wt a s k $ * - - s t k = ( u n s i g n e di n t ) t a s k ;序p c s t k ( u n s i g n e di n t ) t a s k : l r $ 一s t k = 1 2 :母r 1 2 $ * - - s t k = 1 1 : r l l 术 一- s t k = 1 0 : r l o 丰 十s t k9 : r 9 $ 一s t k 8 :十r 8 $ s t k 7 ;术r 7 女 s t k6 : r 6 * - - s t k = 5 1 蕾r 5 卑i 奉s t k4 : r 4 木 *-stk=31|雒r3肆f 十s t k2 :$ r 2 $ s t k 1 :木r l 丰 聿s t k ( u n s i g n e di n t 、p d a t a ;,卑r o 卑 s t k ( s u p m o d e ) : 十c p s r s t k ( s u p m o d e ) : 女s p s r r e t u r n ( ( o s s t k ) s t k ) : 2 ) o s t a s k c r e a t e h o o k 当用o s t a s k c r e a t e 0 和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 h o o k 0 。该函数允许用户或者使用移植实例的用户扩展u c o s i i 的功能。当u c o s i i 设置完了自己的内部结构后,会在调用任务调度程序之前 调用o s t a s k c r e a t e h o o k 0 。该函数被调用时中断是禁止的。因此用户应该尽量 减少该函数中的代码以缩短中断的响应时间。 当o s t a s k c r e a t e h o o k ( ) 被调用时,它会收到指向已建立任务的o st c b 的指 江苏大学硕士学位论文 针,这样它就可以访问所有的数据成员了。它的函数原型如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6.1 不同职业对应劳动的特点
- 工业基础技术 7
- pcb设计外包合同
- 两癌筛查外包合同
- 中智外包合同
- 九月外包合同
- 产品销售外包合同
- 代码开发外包合同
- DB13-T 6305-2026 高速公路准全天候通行一般要求
- 伐木外包合同
- 医院三合理一规范培训
- DBJ50-T-157-2022房屋建筑和市政基础设施工程施工现场从业人员配备标准
- 2025新 公司法知识竞赛题库与参考答案
- 同理心在护理临床的应用
- UL2703标准中文版-2019平板光伏模块和面板使用的安装系统安装设备夹紧固定设备和接地片
- 教师跟岗二次培训
- 2022年中华护理学会输液连接装置安全管理专家共识解读
- 地方病防治技能理论考核试题
- 基于三菱PLC的工业洗衣机控制
- 第19课+资本主义国家的新变化+说课稿 高一下学期统编版(2019)必修中外历史纲要下
- 加油站双重预防体系
评论
0/150
提交评论