




已阅读5页,还剩60页未读, 继续免费阅读
(计算机科学与技术专业论文)armμcosⅡ平台下usb主机系统软件的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得武汉理工大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 签名: 龆杰,日期:独l l 艇明 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定) 研究生( 签名) : 胡杰、导师( 签名) :弋枇旧 日期:们l j 年明 武汉理工大学硕士学位论文 摘要 开发嵌入式u s b 主机,能将u s b 设备应用到嵌入式领域中,使现在高速发 展的移动数据业务变得更加方便。i - t c o s i i 是一种应用较广泛的嵌入式操作系 统,但目前还不具备u s b 主机软件功能,在i t c o s i i 系统中设计u s b 主机系 统软件,具有现实意义和应用前景。 本文详细介绍了在a r m 9 ( a d v a n c c dr i s cm a c h i n e s ) 处理器上,i t c o s i i 实 时操作系统下,基于o h c i ( o p c nh o s tc o n t r o l l e ri n t e r f a c e ) 规范的u s b 主机系统 软件的实现过程。在研究过程中,首先根据a r m 9 处理器的特点,完成了_ t c o s i i 在a r m 上的移植。然后结合u s b l 1 协议文档和一些与u s b 相关的文献资料, 研究了u s b 系统的通信原理。在u s b 主机端的组成中,软件部分为客户软件和 u s b 主机系统软件,硬件部分为u s b 主机控制器。课题中使用的u s b 主机控 制器芯片是符合o h c i 规范的,通过详细阅读o h c i 协议文档,掌握了u s b 主 机系统软件与u s b 主机控制器通信的全部细节。最后结合i _ t c o s i i ,实现了u s b 主机系统软件。 在该u s b 主机系统软件中,实现了4 种u s b 传输方式中的控制传输和批量 传输。控制传输用于对u s b 设备的枚举操作,当u s b 设备连接上u s b 总线时, 通过控制传输完成对u s b 设备的设置,信息读取等操作;批量传输为客户软件 提供了数据传输接口,适用于u 盘,移动硬盘等需要进行大批量数据传输的u s b 设备。 最后用常见的u s b 设备u 盘,对u s b 主机系统软件进行了测试。对u 盘的 枚举测试了控制传输,对u 盘的读写测试了批量传输。 关键词:u s b 主机系统软件,u s b 主机控制器,o h c i 协议,控制传输,批量传 输 武汉理工大学硕士学位论文 a b s t r a c t i ft h e r ei su s bh o s tt e c h n i q u ef o re m b e d d e ds y s t e m ,t h ea p p l i c a t i o no fu s b d e v i c e sw i l ln o tl e e c ho nt op c ,a n dt h eb u s i n e s so fm o b i l ed a t aw h i c hi sd e v e l o p i n g w i t hah i g hs p e e dw i l lb em o r ec o n v e n i e n t 1 x c o s - i ii saw i d e l yu s e de m b e d d e d o p e r a t i n gs y s t e m ,b u td o e sn o ty e th a v eu s bh o s ts o f t w a r e 丘m c t i o r 塔i ti sv e r y r e l e v a n ta n d p r o m i s i n gt od e s i g nu s b h o s ts y s t e ms o r w a r ei nl x c o s - i i t h i st h e s i sd e s c r i b e si nd e t a i l sh o wt oc o m p l e t eu s bh o s ts y s t e ms o f t w a r e w h i c hi sb a s e do nt h eo p e nh o s tc o n t r o l l e ri n t e r f a c e ( o h c i ) i na r m 9 p r o c e s s o ra n d i - t c o s i io p e r a t i n gs y s t e m i nt h ec o u r s eo ft h es t u d y , t h ef i r s ts t e pi sp l a t f o r m , t r a n s p l a n ti i c o s - i it oa r ma c c o r d i n gt ot h ec h a r a c t e r i s t i c so fa r m 9p r o c e s s o r t h e ns t u d yt h ep r i n c i p l e so fu s bc o m m u n i c a t i o nb a s e do nu s b 1 1 p r o t o c o la n d s o m eu s b r e l a t e dd o c u m e n t s i nt t l eu s bh o s ts i d e , t h es o f t w a r ei n c l u d e sc l i e n t s o f t w a r ea n du s bh o s ts y s t e ms o f t w a r e , a n dt h eh a r d w a r ei su s bh o s tc o n t r o l l e r t h eu s bh o s tc o n t r o l l e ru s e di nt h i sp r o j e c ti si nl i n ew i mo h c i ,s oi th a st ot or e a d o h c ip r o t o c o ld o c u m e n ti nd e t a i la n dm a s t e rt h ec o m m u n i c a t i o nm e t h o db e t w e e n u s bh o s ts y s t e ms o r w a r ea n du s bh o s tc o n t r o l l e r , a n dc o m p l e t et h ee n c o d i n g p r o c e s sw i t hi - t c o s - i ia tl a s t i nt h i su s bh o s ts y s t e ms o f t w a r e , t h ec o n t r o lt r a n s f e ra n db u l kt r a n s f e rw a s r e a l i z e d c o n t r o lt r a n s f e ri su s e df o rt h ee n u m e r a t i o no fu s bd e v i c e s ,w h e nau s b d e v i c ei sc o n n e c t e dt ot h eu s bb u s i tw i l ls e tt h ed e v i c ea n dr e a dt h ei n f o n n a t i o no f t h ed e v i c e b u l kt r a n s f e rp r o v i d e sd a t at r a n s f e ri n t e r f a c ef o ru s bd e v i c e sw h i c hn e e d t ot r a n s f e rm a s sd a t a ,s u c ha sud i s k , a n dm o b i l eh a r dd i s k f i n a l l y , t h eu s bh o s ts y s t e ms o f t w a r ew a st e s t e db yu d i s k , t h em o s tc o m m o n u s bd e v i c e c o n t r o lt r a n s f e rw a st e s t e db yt h ee n u m e r a t i o no fud i s k ,b u l kt r a n s f e r w a st e s t e db yr e a d i n ga n dw r i t i n gt ot h eud i s k k e y w o r d s :u s bh o s ts y s t e ms o f t w a r e ,u s bh o s tc o n t r o l l e r , o h c ip r o t o c o l ,c o n t r o l t r a n s f e r , b u l kt r a n s f e r 一 武汉理工大学硕士学位论文 目录 第1 章绪论1 1 1 课题研究的背景及意义1 1 1 1u s b 技术的发展1 1 1 2 课题研究的意义2 1 2 国内外研究现状3 1 3 本课题的主要工作4 1 4 论文的组织结构4 第2 章a r m + t t c o s i i 平台的搭建6 2 1a r m 微处理器6 2 2 “c o s i i 操作系统7 2 3p c o s i i 在a r m 处理器上的移植8 2 3 1c 代码的修改8 2 3 2 汇编代码的修改9 第3 章u s b 主机系统软件概述11 3 1u s b 通信模型1l 3 2u s b 主机端组成1 4 3 3o h c i 协议16 3 4u s b 主机系统软件结构1 7 第4 章o h c i 软件层的实现2 0 4 1 端点描述符2 0 4 2 传输描述符2 2 4 3e d 和1 r i ) 的处理2 4 4 3 1u s b 主机控制器对e d 的处理2 6 4 3 2u s b 主机控制器对t d 的处理2 7 4 4 数据传输管理2 8 4 5 主机控制器初始化3 2 u i 武汉理工大学硕士学位论文 4 6 主机控制器中断处理3 4 4 7 硬件访问管理3 6 第5 章u s b 总线管理层3 8 5 1u s b 设备相关描述表3 8 5 2u s b 设备请求3 9 5 3 数据传输服务4 2 5 4u s b 设备枚举4 4 5 5 与i a c o s i i 的结合4 7 5 6 系统测试与结果分析4 9 5 6 1 控制传输测试5 0 5 6 2 批量传输测试5l 第6 章总结与展望5 4 6 1 总结5 4 6 2 下一步的研究展望5 5 参考文献5 6 致谢5 9 攻读硕士期间发表的论文及参研情况6 0 i v 武汉理工大学硕士学位论文 第1 章绪论 1 1 课题研究的背景及意义 1 1 1u s b 技术的发展 u s b 是英文u n i v e r s a ls e r i a lb u s 的缩写,即通用串行总线,是c a m p a q 、d i g j l t a l e q u i p m e n t 、i b m 、i n t e l 、m i c r o s o t t 、n e c 及n o r t h e r nt e l e c o m 等七家计算机及通 讯公司于1 9 9 4 年提出的一个外部总线标准,用于规范电脑与外部设备的连接和 通讯。在u s b 执行论坛( u s a i f ) 的不断完善和规范下,u s b 已成为如今广为流行 的p c 接口工业标准。 在u s b 标准颁布后很短的时间内,u s b 就成为p c 上的标准接口,并为绝大 多数p c 外部设备如鼠标、键盘、打印机、摄像头和游戏手柄所采纳使用,迅速 占领了计算机中、低速外设市场。与其它接口相比,除了即插即用,易扩充, 接口连接简单等特点外,稳定高速的数据传输是其最大的优点。表1 1 列出了常 用总线在传输速率上的比较【l 】。 表1 - 1 常用串行总线比较 接口格式可连接设备数 速率( 最大值b i f f s ) u s b异步串行 1 2 7 1 5 m ,1 2 m 、4 8 0 m r s 一2 3 2异步串行 21 1 5 2 k r s 4 8 5异步串行3 2l o m h d a红外异步串行 2 1 1 5 2 k m i c r o w i r e同步串行 82 m s p i同步串行 82 1 m i 2 c 同步串行 4 04 0 0 k i e e e 一1 3 9 4串行 6 44 0 0 m i e e e 一4 8 8串行 1 58 m e t h e r n e t串行 1 0 2 4 1 0 m 1 0 0 m 1 g m i d i电流环 2 3 1 5 k 简单易用,稳定高速的数据传输使u s b 接口成为越来越多p c 外设的首选。 武汉理工大学硕士学位论文 u s b 推动p c 外设发展的同时,p c 外设也对u s b 提出更高的要求,其中最重要 的一点便是更高速率的数据传输。u s b i f 在原先提供1 5 m b i t s 低速和1 2 m b i t s 全速数据传输的u s b1 x 的基础上,于2 0 0 0 年发布了支持4 8 0 m b i t s 高速数据 传输的u s b2 0 规范,为将u s b 推广到大容量移动存储、宽带网络产品、数码 相机和摄像机等高速外部设备提供了解决方案。同时为满足外设点对点之间通 信的需求,u s b i f 推出了u s bo t g ( u s bo n - t h e - g o ) 规范。u s bo t g 是对 u s b 2 0 的补充和扩展,是在没有p c 主机的情况下,实现从设备之间的数据传 送【2 1 ,例如数码相机直接连接到打印机上,通过o t g 技术,连接两台设备间的 u s b 口,将拍出的相片立即打印出来。2 0 0 5 年5 月通过的无线u s b ( w u s b ) 技 术标准将传统基于线缆的u s b 扩展为基于无线传输平台的无线u s b ( w i r e l e s s u s b ) 。该标准以m b o a 和w i m c d i a 联盟的超宽带m a c 层和物理层为基础, 在w i m e d i a 通用无线平台上提供较高层的协议综合,在3 m 范围内提供高达 4 8 0 m b i t s 的传输速度,1 0 m 范围内的传输速度也可达到1l o m b i t s 。这种新的高 速无线个人互连技术,在保持较高传输速率优势的同时,充分利用无线传输技 术的灵活性与极高的自由度,免除了有线u s b 需要线缆连接所带来的各种麻烦, 为互连设备提供了更大的便利性与可移动性。u s b 3 0 是最新的u s b 规范,它在 u s b 2 0 的基础上将传输速度提高了l o 倍,达到了4 8 g b i t s ,要远远高于其他传 输标准。u s b 3 0 将u s b 技术推向了另一个高潮,必将对我们的生活产生深远的 影响。 1 1 2 课题研究的意义 当前嵌入式设备在我们的身边随处可见,p d a 、手机、m p 3 等已成为了我们 生活中不可缺少的物品。在嵌入式设备中加入u s b 接口,可方便的实现与p c 主 机的通讯与数据交换,为我们的使用带来了极大的便利。但在传统的通信中, 嵌入式设备都是作为从设备与p c 主机通信的,离开了p c 主机,嵌入式设备的u s b 接口也就失去了作用。随着u s b 应用领域的逐渐扩大,人们对u s b 的期望也越来 越高,希望u s b 能够应用在没有p c 的领域中,根据u s b 的体系结构,我们只能 开发嵌入式i j s b 主机,才能将u s b 设备的应用从p c 领域脱离出来,从而使如今 高速发展的移动数据业务变得更加方便。嵌入式系统集成u s b 主机功能已成为嵌 入式研究领域的重点和热点u j 。 要开发出成功的嵌入式u s b 主机系统,除了硬件端的u s b 主机控制芯片外, 2 武汉理工大学硕士学位论文 软件端的芯片驱动和u s b 主机协议栈是必不可少的。嵌入式应用的日益复杂,对 嵌入式系统软件端的要求越来越高,绝大多数嵌入式系统都引入了嵌入式操作 系统来应对复杂的应用,目前主要的嵌入式操作系统有:l i n u x 、i 上c l i n u x 、w i n d o w s c e 、v x w o r k s 和c o s i i 等。在嵌入式u s b 主机系统中,如果让操作系统完成 u s b 主机控制芯片驱动,实现u s b 主机协议栈,就可向系统中的上层软件屏蔽了 u s b 数据传输的细节【4 j ,极大的方便客户软件访问u s b 设备,简化针对具体u s b 设备的驱动程序的开发。我们将完成芯片驱动和实现u s b 主机协议栈的软件称为 u s b 主机系统软件,在嵌入式操作系统中集成u s b 主机系统软件已成为一种趋 势。其中l i n u x 、g c l i n u x 、w i n d o w sc e 都已支持u s b 主机系统软件,给出了成熟 的解决方案。g c o s i i 是一种可移植、可固化、可裁剪的多任务实时操作系统, 已广泛应用于控制系统和工业自动化等领域。但在g c o s i i 系统中,目前还不具 备u s b 主机系统软件功能,若i 上c o s i i 集成t u s b 主机系统软件,则在设计带有 u s b 主机的嵌入式系统中,多了一种可选的解决方案。因此,在g c o s - i i 系统中 设计u s b 主机系统软件,是十分具有现实意义和应用前景的。 1 2 国内外研究现状 目前国内外对嵌入式u s b 主机系统的研究正处于积极和发展阶段。一个完 整的嵌入式u s b 主机系统是由硬件端的u s b 主机控制芯片和软件端的u s b 主 机驱动组成的( 在有操作系统的环境下,将u s b 主机驱动称为u s b 主机系统软 件) 。 面向嵌入式领域的u s b 主机控制器芯片只有少数知名半导体厂商能提供, 现在比较成熟和应用最广的是c y p r e s s 公司的s l 8 1 1 h s 和p h i l i p s 公司的 i s p l 6 1 1 。这两款芯片都是符合u s b l 1 协议的,由于技术成熟,向市场的供给 充足,市场占有率非常高。p h i l i p s 公司随后推出了i s p l 7 6 1 ,业界第一款符合 u s b 2 0 的主机控制器芯片。目前国内外u s b 主机端软件的研究和开发都是在 s l 8 1 1 h s 和i s p l 6 1 1 这两种芯片的基础上进行的,课题中使用的芯片是c y p r e s s 公司的s l s l l h s 。 随着嵌入式u s b 主机在消费电子和移动数据存储领域得到了广泛的应用, 对u s b 主机端的软件功能也提出了更高的要求,需要能适应各种各样的场合。 现在u s b 主控厂商提供的u s b 主机系统软件和一些论坛上可看到的成熟案例很 多是基于l i n u x 或w i n c e 操作系统,在p c o s i i 环境下开发u s b 主机系统软 , 3 武汉理工大学硕士学位论文 件的资料较少。广州致远电子公司有与g c o s i i 结合的u s b 主控产品介绍,但 也明确说明,只有购买公司的产品和相关服务,才会提供源代码。在一些u s b 技术论坛上,可看到很多爱好者提供的解决方案,但很多方案有雷同的嫌疑, 而且正确性有待证明。嵌入式领域u s b 主机系统软件的研究在国内外正处于一 个发展的阶段,并不能为各种应用场合提供合适的解决方案。因此,研究i _ t c o s i i 环境下u s b 主机系统软件的开发具有一定的前瞻性和实用性。 1 3 本课题的主要工作 本课题主要研究了怎样在l x c o s i i 环境下实现u s b 主机系统软件功能,所 做的具体工作可归纳为以下几点: ( 1 ) 分析a r m 处理器的特点,完成了g c o s i i 的移植工作。 ( 2 ) 深入分析和研究了u s b 协议,理解了u s b 系统的通信原理。 ( 3 ) 课题中选用u s b 主机控制器芯片符合o h c i 规范,仔细阅读了o h c i 协议文档,掌握了软件与硬件进行通信的所有细节。 ( 4 ) 结合u s b 协议和o h c i 协议,对u s b 主机系统软件作出了详细设计。 ( 5 ) 在i t c o s i i 环境下完成了编码工作,实现了4 种u s b 传输方式中的控 制传输和批量传输。 ( 6 ) 对u s b 主机系统软件进行了测试,总结不足之处,确定了下一步的研 究方向。 1 4 论文的组织结构 论文的章节安排如下: 第1 章介绍了本课题的研究背景以及国内外嵌入式领域u s b 主机系统软件 的研究现状,同时对本文主要的研究工作进行概述。 第2 章介绍了怎样搭建a r m + i t c o s i i 的开发平台,详细描述了i _ t c o s i i 在a r m 处理器上的移植过程。 第3 章先是详细的描述了u s b 主机端的各个组成部分,然后给出了u s b 主 机系统软件的设计思路。最后提出可将整个u s b 主机系统软件分为o h c i ( o p e n h o s tc o n t r o l l e ri n t e r f a c e ) 软件层和u s b 总线管理层。 第4 章对o h c i 软件层的实现过程给出了全面的描述,重点介绍了与主机控 4 制器芯片交互的过程。 第5 章介绍了当一个u s b 设备连接上u s b 总线时,u s b 主机系统软件对 其控制操作过程。并在最后对u s b 主机系统软件进行了测试,对测试结果作了 简单的描述和解释。 第6 章回顾了整个课题的研究过程,总结了所做的工作,并分析了通过该 课题的研究,自己所获得的收获。最后提出了仍存在的不足之处,确定了下一 步努力的方向。 5 武汉理工大学硕士学位论文 第2 章a r m + t c o s i i 平台的搭建 在本研究中,选用的开发板是s 3 c 2 4 4 0 开发板,其处理器核为a r m 9 系列, 整个平台搭建的核心为i _ t c o s i i 在a r m 处理器上的移植。本章在简要介绍了 a r m 处理器和i - t c o s i i 操作系统后,详细的说明了i t c o s i i 在a r m 上的移植 过程。 2 1a r m 微处理器 a r m 是a d v a n c e dr i s cm a c h i n e s 的缩写,既是一个公司的名字,也是对一 类微处理器的统称。a r m 公司是专门从事基于r i s c 技术芯片设计开发的公 司,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯 片。世界各大半导体生产商从a r m 公司购买其设计的a r m 微处理器核的授 权,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的a r m 微 处理器芯片进入市场。例如$ 3 c 2 4 4 0 处理器是三星公司生产的,但其处理核是 基于a r m 技术实现的,所以也称为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 , a r m l l ,s e c u r c o r e 等。每一个系列的a r m 微处理器都有各自的特点和应用领 域,提供一套相对独特的性能来满足不同应用领域的需求。a r m 9 系列微处理 器在高性能和低功耗特性方面提供了最佳的方案,具有以下特点【5 】: 5 级整数流水线,指令执行效率更高。 3 2 b i t 定点r i s c 处理器,改进型a r m t h u m b 代码交织,增强性乘法器 设计,支持实时( r e a l t i m e ) 调试。 采用a m b a a h b 总线接口,为外设提供统一的地址和数据总线。 设置保护单元( p r o t e c t i o nu n i 0 ,非常适合嵌入式应用中对存储器进行分段 和保护。 集成了m m u ,提供3 2 b i t 共4 ( 3 的寻址空间。 支持w i n d o w sc e 、l i n u x 、v x w o r k s ,i - t c o s i i 等多种主流嵌入式操作系 统。 a r m 9 微处理器已经在手持电话、机项盒、数码像机、g p s 、个人数字助理 6 武汉理工大学硕士学位论文 以及因特网设备等方面有了广泛的应用。 s 3 c 2 4 4 0 处理器其内核是a r m 9 系列的a r m 9 2 0 t ,是一款现阶段网络上资 料、论坛最多的a r m 9 处理器,可便利的获取很多参考资料,所以目前对于学 习a r m 处理器的人来说,s 3 c 2 4 4 0 处理器是首选。除了具有a r m 9 微处理器 的优点外,其片上硬件资源也是很丰富的,可满足大多数的需求应用。在学习 中,使用s 3 c 2 4 4 0 开发板是最佳的选择;在产品应用开发中,选用s 3 c 2 4 4 0 开 发板作为母板进行试验研究也是合适的选择。 2 2i _ t c o s i i 操作系统 p c o s h 的前身是p c o s ,是美国嵌入式系统专家j e a nj l a b r o s s e 编写的, 并于1 9 9 2 年将其源代码在杂志上发布出来。i 上c o s i i 具有执行效率高、占用空 间小、实时性能优良和可扩展性强等特点,最小内核可编译至2 k b ,已经移植 到了几乎所有知名的c p u 上。i t c o s i i 已经在世界范围内的诸多领域得到广泛 使用,如手机,飞行器,路由器,工业控制及医疗设备等1 6 。并且1 t c o s i i 已 通过非常严格的测试,得到了美国航空管理局的认证,可用在航空飞行器上, 这说明肛c o s i i 是稳定可靠的,可用于与人性命攸关的系统中。 对于一个操作系统,进程管理和文件系统可看作是最重要的【r ,j 。g c o s i i 是 没有文件系统的,所以严格地说i t c o s i i 不是一个完整的操作系统,只是一个实 时操作系统内核,仅仅包含了任务管理,时间管理,内存管理和任务间的通信 和同步等必需功能,没有提供标准的文件系统,网络服务。但在广大p c o s - i i 爱好者的努力下,很多额外的功能都实现了,并应用到了实际的开发中。i 乩c f s 是为j _ t c o s i i 定制的文件系统,现在已经有了标准稳定的版本,开发者可根据需 要下载使用;在一些学习论坛上,可看到很多劬c o s i i 移植t c p i p 协议栈的资 料,虽然目前还没有一个标准的版本出现,但可看出广大爱好者正在努力。 l - t c o s i i 是一个完全基于优先级高低调度的硬实时内核,最高优先级的任 务旦处于就绪状态,会立即抢占正在运行的低优先级任务c p u 使用权。在 i - l c o s i i 中,每个任务的优先级都不同,为了简化系统设计,任务的优先级值 也同时成了任务的唯一标识。在目前稳定使用的版本中,可支持6 4 个任务,分 别对应优先级0 6 3 ,其中0 为最高优先级,6 3 为最低级。系统保留了4 个最 高优先级的任务和4 个最低优先级的任务,用户可以使用的任务数有5 6 个。对 一个多任务的操作系统来说,任务间的通信和同步是必不可少的邛j 。i i c o s i i 7 武汉理工大学硕士学位论文 中提供了4 种同步对象,分别是信号量,邮箱,消息队列和事件标志组,所有 这些同步对象都提供了创建、等待、发送、查询的接口,用来实现任务间的通 信和同步。 在内存管理上,i 工c o s 把连续的大块内存按分区管理。每个分区中包含 整数个大小相同的内存块,不同分区之间的内存块大小可以不同。在嵌入式实 时操作系统中,多次调用a n s ic 中的m a l l o c o 和毹e o 函数会导致内存碎片,而 且这两个函数的执行时间是不确定的【9 j 。i l c o s i i 对m a l l o c o 和f r c c o 函数进行了 改进,用户调用m a l l o c o 函数动态分配内存时,系统选择一个适当的分区,按块 来分配内存,调用f l e e ( ) 函数释放内存时将该块放回它以前所属的分区,这样能 有效解决碎片问题,同时两函数执行时间也是固定的。 2 3 t c o s i i 在a r m 处理器上的移植 _ l c o s i i 大部分的代码是用c 语言完成的,在读,写处理器寄存器时,是 通过汇编语言来完成的。c 代码中有少量是与处理器相关的,而汇编代码是针对 特定的体系结构和处理器的【1 们,所以i 嚏c o s i i 在a r m 处理器上的移植工作可 分为两部分:与处理器相关c 代码的修改,汇编代码的重写。 2 3 ic 代码的修改 在源代码目录中,与c p u 相关的c 代码都在o sc p u h 和o sc p uc c 两 个文件中,包含了数据类型的定义,开和关中断方法的选择,栈的增长方向, 栈的初始化函数。 p c o s i i 代码中没有使用c 语言中的i n t ,s h o r t ,l o n g 等与处理器平台相关 的数据类型,而是定义了i n t l 6 u ,i n t 3 2 s 这样直观的数据类型,让读者一看 就明白定义了1 6 位无符号型整数和3 2 位有符号型整数。而i n t l 6 u ,i n t 3 2 s 实际对应着c 语言中的什么数据类型,则是由处理器的字长来决定的。例如, 在1 6 位处理器上i n t l6 u 对应着u n s i g n e di n t ,i n t 3 2 s 对应着s i g n e dl o n g , 实现代 码为: t y p e d e f u n s i g n e di n ti n t l 6 u ; t y p e d e f s i g n e dl o n gi n t 3 2 s ; 在3 2 位处理器上i n t l6 u 对应着u n s i g n e ds h o r t ,i n t 3 2 s 对应着s i g n e di n t , 实现代码为: 8 武汉理工大学硕士学位论文 t y p e d e f u n s i g n e ds h o r ti n t l6 u ; t y p e d e fs i g n e di n ti n t 3 2 s ; 在了解了p c o s i i 定义数据类型的方式后,根据处理器字长,对数据类型的修 改是很容易完成的。 宏定义函数o se n t e rc r i t i c a l 0 和o se x i t提供了关中 断和开中断的功能,但具体的实现方法, 提供c了r三it种ica选l择0肛cos i i ,实际应用 中只需要一种方法。选择哪种实现方法,取决于要使用的处理器和c 编译器的 特性。在本次移植中,使用的是第三种方法,通过定义宏变量 o sc r i c a lm e t h o d 的值为3 来实现: # d e f i n e o s c r i t i c a l m e t h o d 3 执行关中断,开中断的函数是用汇编代码实现的,需要根据要移植的目标处理 器重新编写。 大多数微处理器的栈空间是从高地址向低地址递减的,也有些处理器使用 相反的方式【1 1 】。在t l c o s i i 中,用常量o ss t kg r o w t h 的值来指定栈空间 的增长方向:为0 ,表示从低地址向高地址增长;为1 ,表示从高地址向低地址 增长。移植中通过实际情况来修改o ss t kg r o w t h 的值。 c o s i i 的每个任务都有自己的栈空间,在创建任务时,需要初始化栈空 间,函数o s t a s k s t k l n i t 0 完成了初始化工作。该函数可看作模拟了一次发生中断 时,处理器将寄存器的值保存入栈的过程:按照栈空间的增长方向,依次将要 用到的处理器寄存器的值保存在栈中,让栈看起来像刚发生过中断一样。任务 还未运行,除了任务函数的入口地址是已知的外,其它寄存器的值是移植者预 先自己设定的,例如可都设为0 x 0 。发生中断时,一些处理器会将所有的寄存器 都保存入栈,而一些处理器只会将程序计数器,处理器的状态字存入栈;处理 器是按一定顺序将寄存器推入堆栈的,所以函数中保存寄存器的顺序也必须按 照这一顺序。完成该函数要考虑的是处理器堆栈的增长方向,处理器保存寄存 器的数目,处理器将寄存器入栈的顺序。 2 3 2 汇编代码的修改 汇编代码都在o s c p u a s 文件中,由4 个汇编语言函数组成: o s s t a r t h i g h r d y o ,o s c t x s w o ,o s h t c m s w 0 ,o s t i c k i s r ( ) 。在不同的处理器 平台上应该重写这4 个函数,在a r m 处理器上,应该用a r m 汇编来实现。对 9 武汉理工大学硕士学位论文 于这4 个函数完成的功能,编写时应注意的要点作了简要的分析。 o s s t a r t h i g h r d y o 函数直接使就绪表中最高优先级的任务开始运行,在系统 创建第一个用户任务后,被o s s t a r t o 函数调用。o s s t a r t h i g h r d y o 函数完成了最 高优先级任务( 即第一个用户任务) 寄存器的恢复,但并不保存当前任务的寄存 器。p c o s i i 中,处于就绪状态任务的栈空间总是像刚发生过中断一样,要运 行最高优先级任务,o s s t a r t h i g h r d y o 将处理器寄存器从栈中恢复,最后执行一 个中断返回指令,使c p u 恢复程序指针和标志寄存器,这样c p u 就开始执行最 高优先级任务的第一条指令了。 o s c t x s w o 和o s i n t c t x s w o 两个函数都是完成任务的切换工作,区别在于一 个是任务级的切换,一个是中断级的切换。若当前任务申请运行资源得不到满 足或有更高优先级的任务就绪时,会发生任务级的切换,调用o s c t x s w o 函数, 保存当前任务的寄存器,恢复将要运行任务的寄存器。若发生了中断,在p c o s i i 中,中断结束后,并不返回被中断的任务继续执行,而是会运行就绪表中优先 级最高的任务,发生了中断级的任务切换,此时会调用o s i n t c t x s w o 函数。因 为在中断服务程序中会保存被中断任务的寄存器,所以o s i n t c t x s w o 函数只需 要恢复将要运行任务的寄存器。o s c t x s w o 和o s i n t c t x s w o 绝大多数代码是一样 的,区别只是o s i n t c t x s w ( ) 不需要作保存c p u 寄存器的操作。 由于时间延时和确认超时的需要,p c o s i i 需要提供周期性的时钟节拍。 时钟节拍源可以是硬件定时器,也可以是5 0 6 0 h z 的交流电源,时钟节拍的实际 频率取决于应用程序的精度。在每次节拍到来时,都会发生一次中断,中断服 务程序为o s t i c m s r o 。在o s t i c m s r ( ) 函数中,保存和恢复处理器寄存器是用 汇编代码实现的,这部分是需要重写的,而确认任务是否延时或超时是通过调 用c 语言函数实现的,不需要重写。 1 0 武汉理工大学硕士学位论文 第3 章u s b 主机系统软件概述 本章在简单介绍u s b 通信模型后,详细的描述了u s b 主机端的组成及各部 分的功能,并引出了设计嵌入式u s b 主机需参考的协议o h c i 协议。在基于 o h c i 协议的基础上,给出了u s b 主机系统软件的设计思路。 3 1u s b 通信模型 在常见的u s b 系统中,提供了一台u s b 主机与几台u s b 设备之间的通信 功能。从普通使用者,终端用户的角度来看,可用图3 1 来表示。 图3 1u s b 系统简单模型 对关注于怎样实现u s b 系统的设计者来说,u s b 系统要复杂得多,我们需要 分解u s b 系统,从各个不同的层次来了解。u s b 系统的分层理解是必须的,它能 使不同层次的实现者只关, l , u s b 相关层次的特性功能细节,而不必掌握从硬件结 构到软件系统的所有细节【1 2 1 。图3 2 给出t u s b 系统的层次结构图。 武汉理工大学硕士学位论文 哥: 誊u s b 主卷t ; 二”u s b 设备 ! j 客户软件 = 设备应用 jl jl 数据没 h - u s a 格式 r 1 r u s b 逻辑设备 u s b 主机系统软件 _ 譬= , ( 缓冲区的集台) 数据 数据 jl 缓冲 缓冲 数据有 区1 区n u s b 格j 式 1r 1 u s b 主机控制器 u s b 总线接口 实际通信流 逻辑通信流 要实现的部分 图3 2u s b 系统通信模型 u s b 系统是主从结构的,每次信息传输只能从u s b 主机启动,u s b 设备永 远处于被动的地位。主机与设备之间传输的数据信息根据其目的可分为两种【l3 1 , 一种是应用信息的传递,是针对u s b 设备的具体功能应用的;一种是控制信息的 传递,是维持u s b 总线自身正常运行和管理所需的一些控n 状态信息。如果是 应用信息的传输,则每次传输都是客户软件启动,数据信息完全按照u s b 设备的 功能应用需求来组织,不用考虑到u s b 的传输过程,当组织好逻辑数据后,将数 据提交给u s b 主机系统软件即可。 u s b 主机系统软件的目的通信对象是u s b 逻辑设备。u s b 逻辑设备是一系列 数据缓冲区的集合,这种数据缓冲区在u s b 协议中被称作端点。一系列相互独立 的端点组成了u s b 逻辑设备。每个u s b 逻辑设备在连接上u s b 主机时,会由系统 软件分配一个唯一的地址,在目前u s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑亮化拍摄方案设计
- 单轨吊司机上岗考核试卷及答案
- 沈阳建筑桩基检测方案设计
- 2025版司法局《民事起诉状(姓名权、肖像权纠纷)》民事类法律文书(空白模板)
- 面食餐厅人才发展策略分析
- 银矿开采效率提升策略报告
- 成套的管理咨询方案
- 建筑方案设计时间进度
- 联合教堂建筑分析方案设计
- 班组开年趣味活动方案策划
- 社区治理志愿服务课件
- 养老服务机构客户服务管理制度及流程体系
- 脑梗死的中医护理查房
- 河南省人民防空工程维护管理技术规程2025
- 认知行为疗法-第1篇-洞察及研究
- 护理事业十五五发展规划(2026-2030)
- 2025-2030中国汽车电源管理集成电路行业市场发展趋势与前景展望战略研究报告
- 2023年中国工商银行秋季招聘考试真题及答案
- 2025年学宪法、讲宪法知识竞赛题库及答案
- 医用物理学考试题及答案
- DB31/T 968.2-2016全过程信用管理要求第2部分:行为清单编制指南
评论
0/150
提交评论