(通信与信息系统专业论文)基于coldfire系列mcu开发平台的嵌入式操作系统ecos的移植及应用.pdf_第1页
(通信与信息系统专业论文)基于coldfire系列mcu开发平台的嵌入式操作系统ecos的移植及应用.pdf_第2页
(通信与信息系统专业论文)基于coldfire系列mcu开发平台的嵌入式操作系统ecos的移植及应用.pdf_第3页
(通信与信息系统专业论文)基于coldfire系列mcu开发平台的嵌入式操作系统ecos的移植及应用.pdf_第4页
(通信与信息系统专业论文)基于coldfire系列mcu开发平台的嵌入式操作系统ecos的移植及应用.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 2 1 世纪,在全球新一轮汽车、通信、信息电器、医疗、军事等行业的巨大 智能化装备市场需求下,嵌入系统科技和产业都得到了快速发展,可以说嵌入式 系统已经广泛地应用于人类生活的方方面面。在我国,嵌入式系统发展迅速,相 继推出一批具有自主知识产权的专用芯片和嵌入式操作系统。发展嵌入式科技, 是缩小与发达国家信息技术差距的一次重要机会。 嵌入式可配置操作系统e c o s ( e m b e d d e dc o n f i g u r a b l eo p e r a t i n gs y s t e m ) t 1 】是一 款开源的免费嵌入式实时操作系统,一遵循g p l 协议,具有系统稳定、功能完善、 支持网络、高度可配置、可扩展、可移植等特点。采用c c o s 开发嵌入式产品是 当前嵌入式领域中一个应用研究热点。本论文深入分析了e c o s 的组织结构、内 核原语、应用开发流程以及其移植。 f r e e , s c a l e 公司c o l d , f i r e 系列m c u 是3 2 位嵌入式微控制器。它采用可变长 精简指令集;内核最高时钟频率几十到百兆赫兹不等;内核增设乘加m a c 单元, 具有d s p 能力;片上集成外设资源丰富。本论文详细阐述了这一系列m c u 的架 构、工作模式以及其异常处理流程,并介绍属于该系列的微控制器m c f 5 2 0 8 和 开发平台m c f 5 2 0 8 e v b 。 本论文着重研究c o o s 在f r e e s c a l e 公司c o l d f i r e 系列m c - i j 上的移植和应甩。 本文提出在c o l d f i r e 系列m c u 上移植f , c o s 韵策略,列出移植的一般步骤,指 出可能遇到的问题和相应的解决办法,对e c o s 在c o l d f h e 系列m c u 开发平台 上移植具有指导意义。本论文实现了基于c o l d f i r e 系列m c um c f 5 2 0 8 开发平 台的e c o s 移植,完成这个开发平台上q s p i 总线的驱动,并对移植结果和驱动 程序进行测试。 作为应用,本论文分析了低速率无线个域网w a n 的规范i e e e8 0 2 1 5 4 , 并在移植了e c o s 的开发平台m c f 5 2 0 8 e v b 上实现协议的物理层,对实现i e e e 8 0 2 1 5 4 协议以及z i g b e e 协议起到基础性研究作用。 关键字嵌入式操作系统,e c o s ,c o l d f i r em c u ,移植,w p a n a b s t r a c t a b s t r a c t u n d e rt h er e q u i r e m e n to fi n t e u i 2 e n c eo ft h ea u t o m o b i l e ,t h ec o m m u n i c a t i o n s ,a n ds o o n ,b o t ht h es c i e n c ea n dt e c h e n o l o g yo ft h ee m b e d d e ds y s t e md e v e l o pv e r yl a s t l y i n o u rc o u n t r v p e o p l ea r es t u d i n gt h ek e yt e c h e n o l o g i e sb o t hi nh a r d w a r ea n ds o f t w a r e o ft h ee m b e d d e ds y s t e m ,a n dh a v ed e s i g n e dan u m b e ro fa s i c sa n de m b e d d e d o p e r a t i n gs y s t e m s f o ro n rc o u n t r y , i t sag o o do p p o r t u l i t yt oc a t c hu pw i t ht h e a d v a n c e dc o u n t r i e si nt h ef i e l do fe m b e d d e ds y s t e m e c o s ( e m b e d d e dc o n f i g u r a b l eo p e r a t i n gs y s t e m ) i sa no p e ns o u c o ,c o n f i g u r a b l e , p o r t a b l e ,a n dr o y a l t y - f r e ee 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 i th a sf u l l f e a t u r e d , f l e x i b l e ,c o n f i g u r a b l e ,r e a lt i m ee m b e d d e dk e r n e l ,t o g e t h e rw i t hf u l l f e a t u r e dt c p f i p p r o t o c o ls t a c k t h e s ea d v a n t a g e sl e a dt oam o r ea n dm o r ew i d e l yu s a g e t h i st h e s i s d e s c r i b e st h e s ec h a r a c t e r i s t i c sa n dt h e na n a l y s e si t sk e r n e la n dp o r t i n gp r o c e s s c o l d h r ei ss e r i a lo fm c u s ,w i t hh i g hp e r f o r m a n c e ,l o wp o w e rc o n s u m e , l o wc o s t t h e s em c u sa r eu s e di nm a n yf i e l d s s u c ha sa u t o m a t i c , c o n s u n l ee l e c t r o n i c , a n d o n i n t r o d u c t i o no f c o l d f i r ea r c h i t e c t u r ea n di t sw o r km o d ei sp r e s e n ti nt h i st h e s i s k n o w l e d g eo fp o r t i n ge c o st ot h e s ep l a t f o r m sw i t hc o l d f i r em c u i st h em a i nr e s u l t s t h i st h e s i sp r o p o s e sg e n e r a ls t e p st op o r t i n ge c o so n t op l a t f o r m sw i t hc o l d f k em c u , a n ds o l u t i o n sf o rp r o b l e m si np o r t i n g a sa ne x a m p l e ,e c o sl m v eb e e np o r t e dt o m c f 5 2 0 8 e v b , ac o n v e n i e n tp l a t f o r mf o re v a l u a t i n gm a n yo ft h ec a p a b i l i t i e so ft h e m c f 5 2 0 8m c u , f o l l o w o dw i t hm e a s u r e m e n to ft h i sp o a i n g a s 眦a p p l i c a t i o no ft h ep o r t i n g , t h ep h y s i c a ll a y e ro fi e e e8 0 2 1 5 4w a s r e a l i z e do n t h i sp l a t f o r mm c f 5 2 0 8 e v b ,a l s ow i t ht h ee v a l u a t i o n t h i st h e s i sc a ng u i d et h ep o r t i n go fe c o so nt op l a t f o r m sw i t hc o l d f k em c u s ,a n d a l s oi st h eb a s i so fr e a l i z a t i o no fi e e e8 0 2 1 5 4o rz i g b e eo nt h e s ep l a t f o r m sf o rt h e u _ r t h c rd e v e l o p m e n t k e y w o r d s :e m b e d d e ds y s t e m ,e c o s ,c o l d f i r em c u ,p o r t i n g , w p a n i i 图表目录 图表目录 图2 1e c o s 组件仓库路径结构。6 图2 2e c o s 组件定义结构7 图2 - 3e c o s 一个示例配置的组件层次结构。7 图2 4e c o s 异常处理流程【1 3 】。8 图2 5e c o s 中断处理执行流程【”i 1 0 图3 1c o l d f i r e 系统m c u 框图 1 6 k 1 7 图3 2c o l d f i r e 处理器核框图【1 6 】1 8 图3 - 3c o l d f i r em c u 状态寄存器s r 。1 9 图3 4c o l d f i r em c u 异常处理流程【1 6 1 2 0 图3 5 异常堆栈帧格式2 1 图3 6 针对m c f 5 2 0 8 的评估板m c f 5 2 0 8 e v b 2 2 图3 7c o l d f i r em c um c f 5 2 0 8 框图【堋。2 3 图3 8d m a 计时器框图2 4 图3 9s p i 模块框图。2 4 图3 - 1 0m c f 5 2 0 8 的q s p i 模块框图2 5 图3 1 1 板载z i g b e e 收发器2 6 图3 1 2 板载监视器d b u g 界面2 7 图3 1 3 集成开发环境c o d e w a r r i o r 界面。2 8 图3 1 4f l a s h 烧写工具c ff l a s h e r 界面2 8 图4 1r a m 版r e d b o o t 启动界面3 0 图4 2r o m 版r e d b o o t 启动界面3 1 图4 3 具有e c o s 内核的应用程序h e l l o 启动界面3 3 图4 4 运行e c o s 双线程示例程序。3 3 图4 5e c o s 内核时间性能测试结果3 7 图4 - 6e c o s 配置内核时钟测量功能3 8 图4 7 中断延时测试结果3 8 图4 - 8q s p i 驱动测试平台4 2 图4 9q s p i 驱动测试示波器显示4 3 图4 1 0q s p i 驱动测试超级终端显示“ 图5 1 星形的点对点拓扑结构样例4 6 图5 2i e e e 8 0 2 1 5 4 协议结构4 7 v 图表目录 图5 3 没有g t s 的超帧结构4 7 图5 4 具有g t s 的超帧结构4 8 图5 5 在允许使用b e a c o n 帧的网络中设备发送数据的流程4 8 图5 6 允许b e a c o n 帧的网络中协调器发数据给设备的流程4 9 图5 7m c l 3 1 9 2 系统级框图5 0 图5 8m c l 3 1 9 2 物理层帧结构5 0 图5 9m c l 3 1 9 2 状态转换图5 1 图5 1 0m c l 3 1 9 2 的a 控制器o x 0 6 5 2 图5 1 1 针对m c f 5 2 1 3 的评估板m c f 5 2 1 3 e v b 5 5 图5 1 2m c l 3 1 9 2 发送测试结果5 6 图5 1 3c c a 测试结果5 7 表2 1 组件仓库路径结构描述6 表2 2h a l 的三层结构1 5 表2 3 状态寄存器s r 字段描述。2 0 表3 im c f 5 2 0 8 e v b 模块及功能描述2 2 表3 2 中断控制器中的主要控制器地址及长度2 3 表3 3m 5 2 0 8 e v b 存储器映射2 6 表4 - 1h a l m 6 8 k m c f 5 2 x r d m c f 5 2 0 8 m c f 5 2 0 8 e v b p l f c u r r e n t 文件及说明3 4 表4 2h a l m 6 8 k m e f 5 2 x x m c f 5 2 0 8 p r o c c u r r e n t 文件及说明。3 4 表5 1a 控制器的描述5 3 表5 2 物理层服务原语5 4 缩略词表 英文缩写 c a p c c a c f p d m a d s r f f d g t s h a i i s r m c u q s p i r f d w 础 缩略词表 英文全称 c o n t e n t i o na c c e s sp e r i o d c l e a rc h a n n e la c c e s s m e l i t c o n t e n t i o nf r e ep e r i o d d i r e ,c tm e m o r ya c c e s s d e f e r r e ds e r v i c er o u t i n e f u uf u o c t i o nd e v i c e g r a r a n t e e dt i m es l o t h a r d w a r ea b s t r a c tl a y e r i n t e r r u p ts e r v i c er o u t i n e m i c r o c o n t r o l l e ru n i t q u e u e ds e r i a lp e r i p h e r a li n t e r f a c e r e d u c e df u n c t i o nd e v i c e w i r e l e s sp e 碍o n a la r e an e t w o r k i 中文释意 竞争访问周期 清洁信道访问 免竞争周期 直接内存访问 延迟服务例程 完备功能设备 保证时隙 硬件抽象层 中断服务例程 微控制器 带队列串行设备接口 简化功能设备 无线个域网 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:奚童鳘日期:砷年f 月协日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 豹全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:邋导师签名:竖 日期:枷7 r 年朗五2 日 第一章绪论 1 1 嵌入式系统概述 第一章绪论 嵌入式系统( e m b e d d e ds y s t e m ) 是以应用为中心和以计算机技术为基础的,并 且软硬件是可裁剪的,能满足应用系统对功能、可靠性、成本、体积、功耗等指 标的严格要求的专用计算机系统f 1 】 嵌入式系统广泛应用于计算机、消费电子、通信、汽车、工业控制、政府行 业等领域。中国计算机学会微机( 嵌入式系统) 专业委员会主办的2 0 0 6 中国嵌 入式技术论坛上有数据显示,嵌入式技术在中国有巨大的发展潜力和市场需求。 到2 0 0 8 年,嵌入式产品将达到8 0 亿美元的市场规模【2 】o 嵌入式系统的硬件一般由嵌入式处理器和嵌入式外设组成。嵌入式处理器种 类繁多,功能各异,大致可以分为嵌入式处理器、微控制器m c u 、数字信号处 理器d s p 以及片上系统s o c 等几类。不同类型的嵌入式处理器也在技术上相互 融合,例如在d s p 上面添办r l # l - 部设备控制器,或者在m c u 上增加乘加算术运算 单元。 嵌入式外设包括外置的f l a s h 等。对于微控制器,许多控制器被集成到芯片 当中,一般称之为片上外设。 嵌入式系统的软件的发展经历了从没有操作系统,到具有简单监控式操作系 统,再到具有操作系统的过程【3 】。早期的嵌入式系统没有操作系统,它们的软件 直接操作硬件,完成任务。它们的特点是系统结构和功能相对单一,针对性强, 没有用户接口。 简单监控式操作系统阶段。这一阶段的操作系统针对特定处理器。通用性差; 操作系统的用户界面不够友好,主要用来控制系统负载以及监控应用程序运行。 嵌入式操作系统阶段。操作系统提供程序开发、程序运行、访问i o 设备和 控制访问文件等服务1 4 1 。根据嵌入式系统对成本敏感和实时性强的特点,人们开 发出许多通用型嵌入式实时操作系统。这些通用型嵌入式实时操作系统的特点 是:可移植性强,多任务并发执行,文件系统和网络支持,具有丰富的a p i 等等。 u c o s i i 、e c o s 、v x w o r k s 和w i n d o w sc e 等都是优秀的通用型嵌入式实时操作 系统。 1 2 嵌入式操作系统移植 嵌入式系统具有很强的专业性,它们的硬件都是围绕应用专门设计的。一方 面,为了控制系统的成本,处理器和其它外围设备都尽量选择便宜的产品,够用 电子科技大学硕一l 学位论文 即可;另一方面,针对特定的应用的需要,人们还要设计专门的应用模块。由于 这些原因,嵌入式系统的硬件平台种类繁多,为每个需要操作系统支持的嵌入式 应用都编写一个专门的操作系统是不明智的,也是不可行的。为每个需要操作系 统支持的嵌入式应用都编写一个专门的操作系统,不但加大系统开发的成本和风 险,系统的稳定性也难以保证【5 l o 通用的嵌入式操作系统是一种很好的解决方案。通用的嵌入式操作系统的内 核使用与硬件处理器无关的编程语言编写。与硬件相关的代码使用宏,对于不同 的硬件平台单独定义。针对特定处理器的交叉编译工具,可以把内核编译成针对 特定处理器的二进制代码,从而把内核添加到特定的应用当中去。 由于运行的硬件平台多种多样,嵌入式操作系统的可移植性就特别重要。一 般来讲,嵌入式操作系统的内核都跟具体的硬件无关,系统专门有和硬件相关的 代码。只需要根据新硬件平台的特点修改这一部份跟硬件相关的代码,内核就可 以在运行在这个新的硬件平台之上。这个修改跟硬件相关代码,使得内核能够运 行在新的硬件平台上的过程就称为移植。 嵌入式操作系统具有各自特点,例如操作系统本身所占用的存储器空间、响 应中断最大时延、提供网络接入能力以及文件系统支持等等。同时,不同的嵌入 式操作系统开发过程中采取的策略不完全一致。这些原因使得不同的嵌入式操作 系统跟硬件相关的代码组织方式不一样。移植工作就变得既和硬件有关,也和要 移植的嵌入式操作系统有关。也就是说,要移植一个嵌入式操作系统到某一个硬 件平台,既要分析这个嵌入式操作系统的组织形式,又要考虑这个硬件平台在这 个嵌入式操作系统的组织形式下的具体内容 尽管如此,操作系统作为硬件和应用软件的接口,它的地位没有变化。因此, 移植嵌入式操作系统既要搞清楚硬件平台,也要搞清楚移植的操作系统。在分析 硬件和软件的同时,研究和借鉴现有的嵌入式系统也是一种十分重要的方法。 文献1 6 】讨论了一种通用的硬件抽象层设想。作者希望设计一种组织嵌入式 系统中硬件相关代码的标准方法。如果嵌入式操作系统和平台相关硬件抽象层都 按照这样的标准设计,那么嵌入式操作系统无需移植就可以运行在这个平台的通 用硬件抽象层之上。由于现在已经开发出很多优秀的嵌入式操作系统,这样的设 想能否付诸实际和成功推行还不确定。 1 3i e e e8 0 2 1 5 4 协议概述 i e e e8 0 2 1 5 4 定义了低速率无线个域网( l r w p a n ) 的媒体接入控制层 ( m a c ) 和物理层( p h y ) 。符合i e e e8 0 2 1 5 4 规范的器件,功耗很小,不要 求配备电池,或者只要求配备小容量的电池,一般在个人活动空间( 1 0m 直径或 2 第一章绪论 更小1 内工作j 。 i e e e8 0 2 1 5 4 是一个简单、低成本、低功耗、低速率的设备互联标准。设 备之间最大数据速率可以达到2 5 0 k b p s ,可以满足一些简单交互式玩具的要求。 在诸如传感器这种应用中,这个速率可以下调到2 0 k b s 或者更低,以降低功耗。 8 0 2 1 5 4 工作在工业科学医疗( i s m ) 频段,它定义了2 4g h z 频段和8 6 8 9 1 5 m h z 频段两个物理层。符合i e e e8 0 2 1 5 4 标准的器件不必再考虑频率许可要求, 减少投资者的风险。设备根据频段的质量自行选择一个工作信道。 i e e e8 0 2 1 5 4 设备可以分为两种。一种是全功能设备( f f d ) ,另一种是简 化功能设备( r f d ) 。f f d 可以当作个域网协调器、协调器或者设备:f f d 可以 和另一个f f d 通信,而r f d 则只能和f f d 通信。r f d 通常只是一个简单的设 备,只和一个f f d 通信,因此通常一个r f d 成本很便宜。 协调器和简单设备之间有两种同步方式。一种是当简单设备向协调器请求信 标时,协调器才向设备发送信标;另一种是协调器定时向设备发送信标,发送信 标采用超帧结构。 z i g b e e 协议选用i e e e8 0 2 1 5 4 协议作为其物理层和数据链路层协议f ”。 1 4 本论文的工作内容和目标 本论文第二章深入分析嵌入式操作系统e c o s 的组织结构、异常和中断的处 理、内核同步原语、应用开发流程以及其移植。这些分析为e c o s 的移植和应用 做准备。 本论文第三章介绍f r e e s e a l e 公司c o l d f i r e 系列m c u 的架构特点,包括架 构、工作模式和异常处理流程,并简单介绍具有c o l d f i m 系列m c u 的硬件开发 平台m c f 5 2 0 8 e 。 在此基础上,本论文第四章实现移植e c o s 到硬件开发平台m c f 5 2 0 8 e v b , 并完成驱动程序设计,同时对移植的性能和驱动程序进行测试。移植性能测试的 主要内容是e c o s 的实时性。 作为基于f r e e s c a l e 公司c o l d f i r e 系列m c u 的e c o s 的一个应用,本论文实 现i e e e8 0 2 1 5 4 协议的物理层。本论文第五章首先分析了i e e e8 0 2 1 5 4 标准, 然后介绍r f l 3 1 9 2 射频收发器。r f l 3 1 9 2 是评估板m c f 5 2 0 8 e v b 上的颗射频 控制芯片,它提供满足i ee8 0 2 1 5 4 标准的物理层。在分析了i e e e8 0 2 1 5 4 协 议和r f l 3 1 9 2 的基础上实现i e e e8 0 2 1 5 4 协议的物理层。 本论文的目标为:分析c o o s 嵌入式操作系统;分析f r e e s e a l e 公司c o l d f i r e 系列m c u ;移植e c o s 到具有c o l d f i r e 系列m c u 的开发平台m c f 5 2 0 8 e v b ; 电了科技大学硕士学位论文 编写q s p i 总线的e c o s 驱动程序;分析i e e e8 0 2 1 5 4 标准;分析支持i e e e 8 0 2 1 5 4 标准的射频收发器r f l 3 1 9 2 ;实现i e e e8 0 2 1 5 4 协议物理层。 4 第二章c c o s 的分析及其应用开发流程概述 第二章e c o s 的分析及其应用开发流程概述 e c o s ( e m b e d d e dc o n f i g u r a b l eo p e r a t i n gs y s t e m ) 嵌入式可配置操作系统,是一 个由g n u 开源开发工具支持的开源实时操作系统。本章描述e c o s 的特性,包 括e c o s 的组织结构、e c o s 处理异常和中断的方法、e c o s 同步机制等等,并简单 介绍了利用e c o s 开发应用程序的流程和e c o s 的移植。 2 1 嵌入式操作系统e c o s 概述 e c o s ( e m b e d d e dc o n f i g u r a b l eo p e r a t i n gs y s t e m ) 嵌入式可配置操作系统,是一 个由g n u 开源开发工具支持的开源实时操作系统。它依照g p l 协议发布,同时 也允许应用程序链接e c o s 内核而不需要公开应用程序的代码【引。 1 9 9 7 年,c y g n u s 公司进行e c 璐的开发,后来c y g n u ss o l u t i o n 被r e d h a t 收 购,e c o s 成为r e d h a t 嵌入式产品,现在最新版本是2 0 。2 0 0 3 年,e c o s 内核开 发人员创建e c o s c e n t r i c 公司,推广e c o s p r o 开发工具包和e c o s 应用的设计方案。 e c o s 的内核功能强大,配置灵活。e c o s 的内核提供了线程调度、同步、定 时器以及各种同步原语。e c o s 管理硬件资源,例如中断、异常、内存以及缓存 等。e c o s 支持t c p i p 协议栈i l o l 。 e c o s 具有基于g u i 的配置工具。利用这个配置工具可以完成从组件到选项 的配置。一个只有内核的e c o s 配置只有几十个k b 1 1 】。 e c o s 的可移植性很强。e c o s 具有一个硬件抽象层h a l ( h a r d w a r ea b s t r a c t l a y e r ) ,它屏蔽了下层的硬件细节,使得内核和其它实时组件可以运行在许多不 同的平台上。现在,e c o s 可以支持m i p s 、a r m 、c o l d f i r e 等多种架构的处理器 和各种平台。 越来越多的人使用e c o s 来开发嵌入式系统。根据l i n u x d e v i c e s c o m 的调查, 2 0 0 5 年约有4 的嵌入式系统使用了e c o s ,2 0 0 6 年约有6 的嵌入式系统使用了 e c o s 12 1 。 1 e c o s 文件组织结构 e c o s 的源代码文件按照模块单独存放,使用组件描述语言( c d l ) 组织管 理。开发人员根据嵌入式应用的需要,利用配置工具增加或者删减组件。没有被 选项的组件将不会被编译,以减少生成的映像所需要的存储空间。在选中的组件 中还可以再对选项进行配置。高度的可配置能力是e c o s 系统的一大特点。 e c o s 用组件仓库包含所有的组件( 包) 。e c o s 目录包含了e c o s 的发布文件,它 的子目录p a c k a g e s 就包含了整个组件仓库。对于使用e c o s 仓库开发应用软件的 电子科技大学硕士学位论文 开发人员,这个组件仓库可以是只读的;只有涉及到 e c o s 的内核开发,或者移 植,以及驱动程序开发的开发人员才需要修改组件仓库中的内容。e c o s 组件仓 库路径结构如图2 1 所示。 录。 图2 1o c o s 组件仓库路径结构 表2 1 描述了图2 1 中e c o s 组件仓库路径结构中文件e c o s d b 和各个子目 表2 1 组件仓库路径结构描述 路径描述 e s d b c d l 脚本文件。包含组件仓库中组件的信息。 c o m p a t用于兼容p o s i x ( i e e e1 0 0 3 1 1 和ui t r o n3 0 的组件( 包) 。 c y g m o n用于c y g m o n 单独调试监视器组件( 包) 。 d e v s包含所有特定硬件设备驱动组件,如以太网,串口等。 f s 包含所有r a m 和r o m 文件系统的包。 h a l 包含所有e c o s 支持的硬件目标平台 i n f r a 包含e c o s 基本选项,如通用类型、宏以及启动选项等。 1 0包含所有通用的与硬件无关的输入输出系统支持,例如阻太网,串口等。 k e r n e l 包含提供e c o s 内核功能( 例如调度器、信号量、线程等) 的包。 l a n g u a g e包含用于支持i s oc 和数学库的包。 n e t 包含支持t c p i p 等网络协议的包。 r e d b o o t 包含用于r e d b o o t 单独调试r o m 监视器的包。 包含用于支持动态内存分配以及压缩解压缩等服务的包。 第二章c c o s 的分析及其应用开发流程概述 在每一个具体的组件文件夹内,一般都有i n c l u d e ,s r c 和c d l 文件夹,可能 也有t e s t s 和d e c 文件夹。如图2 2 所示。 图2 2 e g o s 组件定义结构 c a l l 包含这个组件描述脚本文件,i n c l u d e 包含这个组件用到的头文件,s i c 包含这个组件的源文件,t e s t s 包含这个组件的测试文件,d e c 包含这个组件的联 机说明文档。 2 e c o s 的组件层次 e c o s 的组件具有层次关系。其中,硬件抽象层( m 也) 和驱动程序与硬件 相关,内核和网络等组件都在h a l 和驱动程序之上,跟硬件无关。因此,移植 e c o s 到某一特定硬件平台时,只需要编写针对这个硬件平台的h a l 和驱动程序。 这样的结构使得e c o s 容易移植到各种不同架构的处理器和不同型号的开发平台 匕。 a p p 删o a 圈图圆 圈_ 圈 图2 3e g o s 一个示例配置的组件层次结构 电予科技大学硕士学位论文 图2 3 是c c o s 的一个示例配置的组件层次结构框图。其中,内核组件和硬 件抽象层组件是必须的,其它组件都是可选的。c c o s 的配置工具可用来配置组 件。利用配置工具,开发人员可以按照需要添加或者减少组件。在配置组件时, 组件间层次关系决定它们之间的依赖关系。如果添加某一个组件时,已有的配置 中没有这个组件所依赖的组件,那么就会产生一个冲突。 在c c o s 系统中,组件间的依赖关系由组件描述脚本指出,其关键字是 r e q u i r e 。例如,在文件k e r n e l c d l 中,组件c y g p k g 依赖于_kernel_debug c y g v a r _ k e r n e l _ t h r e a d s _ l i s t 和 c y g d b gh a ld e b u gg d bt h r e a ds u p p o r t 。 2 2c c o s 异常与中断处理 异常是线程执行过程中,打断正常指令流的同步事件。中断是指在程序执行 时,发生一个外部的异步事件,引起正在执行的代码中断。典型的中断比如按下 一个按键等。 2 2 1c c o s 异常处理 在电路系统中,硬件或者软件错误都有可能引起异常。例如内存访问出错, 或者除法运算中,除数为零,这些情况都会打断正常的指令流,产生异常。 图2 4e c o s 异常处理流程1 1 3 】 8 第一二章e c o s 的分析及其应用开发流程概述 处理好异常,可以提高系统的稳定性。如果异常处理不好,可能会引起系统 的行为异常,甚至可能会导致系统崩溃。e c o s 有两种办法处理异常,如图2 4 所示。第一种是h a l 和内核异常处理相结合。当异常产生时,h a l 提供通用的 在硬件层次上的异常处理,然后把控制权交给应用程序作更一步的处理。 第二种方法是应用程序异常处理。它允许应用程序完全地接管异常,直接捆 绑一个对某个异常的中断服务例程。在这种模式下,中断服务例程要用相应硬件 的汇编语言来实现。 图2 4 中,从硬件层往上,有两条路径。一条是通过系统调用异常( s y s t e mc a l l e x c e p t i o n ) 传递给h a l 缺省异常句柄( h a ld e f a u l te x c e p t i o nh a n d l e r ) ,这一条路径 即是h a l 与内核相结合的异常处理。另一条通过自定义异常处理传递给应用程 序中的服务例程,这和条路径就是应用程序中的异常处理。更多详细内容见文献 1 3 q a 异常处理。 2 2 2e c o s 中断处理 跟异常处理相似,当中断产生时,处理器跳转到一个特定的地址执行中断服 务例程。对嵌入式系统而言,中断延时是一个重要的指标。中断延时是指从中断 产生到相应的i s r 开始执行这一段时间。e c o s 具有独特的中断处理机制来减少 中断延时。 e c o s 把中断服务程序分成两部分,第一部分是i s r ,后一部分是延迟服务例 程d s r ( d e f e r r e ds e r v i c er o u t i n e ) 。处理器在进入某个中断对应的i s r 时,屏蔽 了所有的外部中断。在稍后执行相应的d s r 时,外部中断被打开,这时,如果 有比当前中断优先级更高的中断,处理器可以打断当前的d s r ,进入优先级更 高的中断的i s r 。这样的机制就是为了保证系统禁止中断的时间最少,减少系统 的中断时延。 如果中断只处理很少的事情,那么可以把要完成的任务全部安排在i s r 里 面。如果中断服务程序比较复杂,就需要安排一个- d s r ,d s r 在稍后允许线程 调度的时候执行。d s r 可以使用内核的线程同步原语。比如通过一个信号量, 通知某个线程中断已经发生。 一般来讲,d s r 总是紧接着i s r 后面执行。但是如果在线程里面关闭了线 程调度,那么d s r 总不能被执行,直到打开线程调度器。i s r 的优先级总比d s r 高,d s r 的优先级总比线程高。 e c o s 把中断服务程序分成两部分以减少中断时延。为了保证这种机制能够 正常工作,必须保证在一个中断对应的d s r 执行完以前,同样的中断不应该再 发生。可以在一个中断对应的i s r 开始时禁止本中断,在d s r 结束时再打开本 中断。 9 电子科技大学硕士学位论文 由于在i s r 中,调度器是被关闭了的,因此,在i s r 中不能有任何的跟调 度器相关的同步函数调用。这些函数调用包括信号量( s e m a p h o r e s ) ,互斥量 ( m t c x e s ) 和条件变量( c o n d i t i o nv a r i a b l e s ) 。 尽管在商s r 中调度器是打开的,但 是在d s r 中不能有阻塞的系统调用。这是因为d s r 的优先级高于线程,而阻塞 后的d s r 又在等待某个线程释放资源,这样系统就会进入死锁。 c c o s 的中断处理过程如图2 5 所示。 圉2 5e g o s 中断处理执行流程i ” 图2 5 中,带有箭头的连线表示函数的调用关系。从同一个块中连出的多条 线表示从左到右依次调用。 在h a l 缺省的中断v s r 函数f h a l d e f a u l t i n t e r r u p t v s r ) 里,第一件事情就 是保存上下文。接着,为内核调度锁加1 ,以确保在接下来的i s r 程序段中,内 核调度器是关闭的。然后调用i s r 。从i s r 返回之后,调用中断结束函数 i n t e r r u p t _ e n d 。根据i s r 的返回值,i n t e r r u p t _ e n d 函数决定是否调用p o s t _ d s r 函数。 s c h e d u l e r函数打开内核的调度器,如果此时有还没有执行,那么执_ u n l o c kd s r 行d s r 所有的d s r 函数执行完毕之后,i n t e r r u p t _ e n d 函数返回。恢复刚才保 存的上下文,继续执行被中断中止的程序。 2 3 计数器与时钟 e c o s 内核中的计数器用来跟踪某一特定事件发生的次数。计数器最大用途 是实现时钟,除此之外,也可以用计数器来跟踪其它事件的发生次数。如果捆绑 l o 第二章e c o s 的分析及其应用开发流程概述 了一个告警在一个计数器上,当这个计数器计到一定数目的时候,就可以引起这 个告警对应的函数调用。 e g o s 内核中的时钟是一个特殊的计数器,它只和硬件时钟相联系,硬件时 钟每隔一个特定时间间隔产生一个滴答。而一般的计数器可以和任意的事件相联 系。 在内核层次上,所有的时钟相关的操作,包括时延、超时和告警等都是以时 钟滴答为单位,而不是秒或微秒。用滴答作单位更能反映系统硬件的特征。秒和 滴答之间的换算是基于时钟分辨率来实现的。内核中,时钟分辨率是一个结构体, 它有两个域,一个作除数,一个作被除数,它们一起指定一个时钟滴答里的纳秒 数。 例如,一个系统的实时时钟是1 0 0 h z ,那么在一个滴答是1 0 m s ,即一个滴 答有1 0 , 0 0 0 , 0 0 0 个纳秒。所以,这两个域内可以分别是1 0 ,0 0 0 ,0 0 0 和1 ,或者典 型地,这两个域内分别为1 0 0 0 ,0 0 0 ,0 0 0 和1 0 0 。 2 4e c o s 同步机制 e c o s 内核提供两个或多个线程之间通信以及同步访问共享资源的机制。它 们是互斥体、信号量、条件变量、邮箱、事件标志和旋转锁。内核同样提供了 a p i 函数,使得应用程序可以使用这些同步机制。 1 互斥体( m u t e x e s ) 互斥体允许两个或多个线程依次访问一个共享的资源。 互斥体与两个状态的信号量( s e m a p h o r e ) l 拘相似之处在于。它们都只锁定和上 锁。它们的差别在于1 ) 互斥体提供优先级继承的保护,而两状态的信号量不提供 优先级继承保护;2 1 互斥体属于某个特定的线程,一个线程锁定了一个互斥体, 也只能由这个线程解开锁定。而任何一个线程都可以解开两状态信号量的锁定。 在实时系统中,互斥体带来优先级反转的问题。当一个高优先级的线程被一 个低优先级的线程阻塞的时候,就发生了优先级的反转。例如,一个高优先级的 线程阻塞在一个低优先级线程正在使用的互斥体上,而此时,另外一个优先级介 于二者之间的不相关的线程被安排优先于低优先级线程执行。这样,高优先级的 线程就不能依照它本身的优先级别优先执行了。 e c o s 有两种方法来解决优先级反转的问题。第一种是优先级天花板策略, 按照这种策略,所有获得( a c q u i r e ) 互斥体的线程都把优先级上升到一个预先设定 的级别上去,这个预先设定的优先级就称为天

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论