- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
驱动程序
xlanchen@2007.6.26 Embedded Operating Systems 驱动程序 xlanchen@2007.6.26 设备文件 Unix类操作系统都是基于文件概念的 文件是以字符序列而构成的信息载体,因此一个I/O设备也可以当作文件来处理 与普通文件交互的系统调用也可以直接用于I/O设备 例如对/dev/lp0设备文件的write()可以将数据发往打印机 设备文件的分类 根据设备驱动程序的基本特性,设备文件可以分为: 字符设备 块设备 块设备 数据可以被随机访问 在用户看来,访问任何位置的数据时间大致相同 典型例子:硬盘、软盘、CD-ROM、DVD播放器等 字符设备 要么不可以随机访问,例如声卡 如果可以被随机访问(往往通过顺序访问方式实现),但随着数据的位置的不同,其访问时间会相差很大,例如磁带 网络 网卡不与文件相关联,使用专门的处理方式 老式的设备文件 在Linux2.4中存在两种设备文件 老式的设备文件 Devfs设备文件 老式的设备文件 这是存放在文件系统中的实际文件 索引节点不对磁盘上的数据块编址,而是包含硬件设备的一个标识 每个设备文件包括: 名字、类型(字符/块) 设备号(主设备号:次设备号) mknod()系统调用用来创建老式的设备文件 设备文件通常包含在/dev目录中 一些设备文件的例子 注意:字符设备与块设备具有独立的编号, 例如,块设备(3,0)不同于字符设备(3,0) 设备文件通常可以表示 一个硬件设备,例如磁盘/dev/hda 或硬件设备的某一物理或逻辑分区,例如磁盘分区/dev/hda2 或一个虚拟的逻辑设备(不会与任何硬件设备相关联),例如/dev/null代表一个“黑洞” 对内核而言,一个设备文件的名字是无关紧要的,关键在于设备文件的类型及其主次设备号 例如,建立一个设备文件/tmp/disk,其类型为块设备,设备号为(3,0),那么内核认为它与/dev/hda等价 Devfs设备文件 使用主次设备号标识设备存在局限性 在/dev中的大多数设备是不存在的 8位长的主次设备号不够用 上述原因以及其他的一些因素综合起来,促使了devfs设备文件的产生 Devfs虚拟文件系统允许设备驱动程序通过名字而不是主次设备号注册设备,例如 所有的磁盘可以放在/dev/disks目录下 /dev/hda?/dev/disks/disc0 /dev/hdb?/dev/disks/disc1 使用devfs文件系统的I/O驱动程序通过调用devfs_register()注册设备 一个注册了的设备文件自动出现在devfs的虚拟目录下 设备文件的VFS处理 进程访问普通文件时,通过文件系统访问磁盘分区中的数据块 当进程访问设备文件时,却可以驱动硬件设备 例如,进程访问计算机上的温度计对应的设备文件获得温度 HOW? VFS VFS VFS在设备文件打开时使用与设备相关的函数调用替换其缺省的文件操作 这些设备相关函数调用对硬件设备进行操作 设备驱动程序 这是一个软件层,使得硬件设备能够响应预定义好的编程接口,就是一组控制设备的VFS函数接口 open,read,lseek,ioctl等 上述函数的具体实现由设备驱动程序提供 此外设备驱动程序必须 首先注册并初始化自己 并在进行数据传送的时候监控I/O操作 注册设备驱动程序 注册一个设备驱动程序意味着把它与对应的设备文件连接起来 使得对设备文件发出的系统调用可以由内核转化为相应的设备驱动程序对应的函数 访问一个没有注册设备驱动程序的设备文件将会返回错误码-ENODEV 注册时机 如果设备驱动程序被静态编译进内核,则注册发生在内核初始化阶段 如果作为一个内核模块来编译,则在装入模块的时候注册(并在卸载模块时注销) 设备驱动程序的初始化 对设备驱动程序进行注册与初始化是两件不同的事情 注册应当尽早:使得用户可以使用设备文件 初始化应当推迟到最后可能的时候 原因:初始化就意味着需要分配系统中的稀缺资源,例如:1,中断向量(动态分配的情况下)2,用于DMA传送的缓冲区的页框3,包括DMA通道本身 监控I/O操作 I/O操作的持续时间通常不可预知,可能与各种因素相关,例如 机械装置的状态,如对于磁盘来讲,磁头的当前位置 或实际的随机事件,例如数据包何时到达网卡 以及人为因素,例如人对键盘、鼠标的使用,以及发现打印机卡纸时的操作 为此设备驱动程序必须通过某种监控手段监控I/O操作终止或超时 两种可用的技术 轮询模式(polling mode)CPU重复检查(轮询)设备的状态寄存器,直到寄存器的值表明I/O操作已经完成为止 中断模式(interrupt mode)如果I/O控制器能够通过IRQ线发出I/O操作结束的信号,就可以使用中断模式 轮询模式的简
您可能关注的文档
最近下载
- 奇普 KIP 7170 工程复印机中文维修手册 维护手册 维修资料.pdf VIP
- 建工三建脚手架外架搭设标准文明施工图集.ppt VIP
- 心脑血管病健康宣讲课件.pptx VIP
- 税务发票管理培训课件.pptx VIP
- STEMI诊断和治疗指南解读—STEMI患者的急诊救治.pdf
- 重庆专升本数学2014-2025年真题试卷及答案汇总.docx VIP
- 2025年医疗卫生系统招聘考试(护理学)考前冲刺试题及答案.docx VIP
- (完整版)初中数学新课程标准(2011版)测试题(有答案)2021.docx
- 化学高考命题方向与复习策略(夏建华).ppt VIP
- 半导体级四氯化铪的制备方法.pdf VIP
文档评论(0)