- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章 设备驱动
第八章 设备驱动 设备驱动 作为通用的操作系统,Linux必须支持各种硬件设备。 然而,每种硬件设备都有自己的特点,有自己独特的使用方法,也就是说每个设备都需要特定的管理与控制程序。由于这些程序直接与硬件交互,因而必须在内核中实现。 但是,要在内核中实现所有设备的控制与管理程序,必将造成以下问题: 1、内核变得十分庞大,而且包含很多无用的代码。 2、新设备的增加十分困难,必须修改内核。 因此,应该提供一种机制来解决上述问题。 设备驱动 为了能够支持各种类型的外部设备,同时又不使内核变得太大,Linux采用了如下方法: 1、为每种(类)外部设备定义一个专有的驱动程序(driver)。 2、把驱动程序从内核中独立出来,只在真正需要时才将其插入内核。 3、在内核和驱动程序之间定义统一的接口,允许用户开发自己的驱动程序。 设备驱动 设备驱动 设备驱动 要开发设备驱动程序,必须具备两方面的知识: 1、在Linux操作系统中,驱动程序是如何构成的,如何工作的,它与内核其余部分的关系,必须注意的问题等。 2、设备的硬件特性,包括计算机的总线、接口,以及设备本身的硬件构成,它与总线的关系和操作方法等。 本章只讨论第一部分。 8.1 设备驱动程序概念 设备驱动程序是内核的一部分。 驱动程序与内核其它部分的区别是: 驱动程序是与设备交互的模块; 驱动程序通常由第三方厂商开发; 一个驱动程序不与其它驱动程序交互(Windows的驱动程序可以分层叠加); 内核与驱动程序之间仅通过一个严格定义的接口交互; 驱动程序大多是可配置的,而且是可动态装入的(内核模块)。 8.1 设备驱动程序概念 设备驱动程序一般由下面几部分组成: 1、对驱动程序接口函数集的实现。对字符和块设备,要实现的接口函数集是file_operations;对于网络设备,要实现的接口函数定义在结构net_device中。 2、设备专有部分。设备驱动程序自己定义的数据结构和管理函数。 3、中断处理程序。处理设备产生的中断(上部)。 4、初始化函数。初始化函数向系统注册驱动程序自身,包括:注册自己对接口函数集的实现,申请IRQ号并注册中断处理程序,申请并注册I/O地址等。初始化函数还完成对设备硬件的检测与初始化工作。 8.1 设备驱动程序概念 内核在下面几种情况下调用设备驱动程序: 1、配置:内核在初始化时,调用驱动程序检查并初始化设备,完成设备的配置; 2、I/O:内核调用设备驱动程序从设备读数据或向设备写数据; 3、控制:向设备发出控制命令,让设备完成读写以外的动作,如修改设备配置等; 4、中断:当设备完成了I/O操作、接收到外部数据、状态改变时,它会通过中断通知CPU,内核使用驱动程序中的中断处理程序完成相应的中断处理。 8.1.1 I/O空间 每一个外设都有自己的一组寄存器(如CSR),驱动程序通过这组寄存器来控制和使用设备。 为了访问设备的寄存器,必须给每个寄存器一个地址(I/O端口)。所有设备的寄存器地址构成了系统的I/O地址空间。 I/O地址空间是有限的。在Intel处理器中,I/O地址空间只有64KB(0-0xFFFF)。 每个设备使用的I/O地址是不同的,应该动态申请和分配I/O地址空间。 为了管理的方便,Linux用结构resource_entry_t描述设备的I/O地址空间。 8.1.1 I/O空间 typedef struct resource_entry_t { u_long from, num; const char *name; struct resource_entry_t *next; } resource_entry_t; Linux预先创建了一个resource_entry_t的结构数组,其中预定义了系统需要的所有resource_entry_t结构: resource_entry_t iotable[IOTABLE_SIZE]; // 128 已经使用(分配出去)的resource_entry_t结构被串联成一个链表,iolist是表头。 8.1.1 I/O空间 函数request_region()用来注册(申请)一个设备的I/O地址空间。即在数组iotable[]中填写一个resource_entry_t结构,并按起始地址from的顺序将其加入到iolist链表中。 函数release_region()用于释放设备的I/O地址空间。 在Intel系列处理器中,I/O空间与内存空间是相互独立的,Intel处理器提供了专门的指令(in和out)来访问I/O空间。 8.1.1 I/O空间 8.1.2 轮询和中断 内核通过轮询了解外设的状态(就绪与否、完成与否)。 外设通过中断向内核报告自己的情况,并请求系统服务。 如果设备采
您可能关注的文档
- 第十一章转基因动物.ppt
- 第十七章 异步电动机的功率转矩和运行特性动画.ppt
- 第十一章 细胞外基质.ppt
- 第十七章 油箱热交换器管路及接头.doc
- 第十一讲 可持续发展的工程观.ppt
- 第十三章 刮板运输机司机岗位作业指导书.doc
- 第十三章 UNIX操作系统.ppt
- 第十一章微机系统的安装.ppt
- 第十三章 药物在体内的转运与代谢转化.ppt
- 第十三章执行机构的设计.ppt
- 国际标准 IEC 61169-47:2015 EN Radio-frequency connectors - Part 47: Sectional specification for radio-frequency coaxial connectors with clamp coupling, typically for use in 75 Ω cable networks (type F-Quick) 无线电频率连接器 - 第47部分:用于无线电频率同轴连接器的部分规范,.pdf
- 国际标准 IEC 61158-5-17:2007 EN 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素 Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements.pdf
- 国际标准 IEC 61158-5-17:2007 EN Industrial communication networks - Fieldbus specifications - Part 5-17: Application layer service definition - Type 17 elements 工业通信网络 - 现场总线规范 - 第5-17部分:应用层服务定义 - 类型17元素.pdf
- 国际标准 IEC 60939-2-2:2004 EN_D 完整抑制无线电干扰滤波器单元-第2-2部分:空白详细规范-用于抑制电磁干扰的被动滤波器单元-仅需进行安全测试的滤波器(安全测试) Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference .pdf
- 国际标准 IEC 60939-2-2:2004 EN_D Complete filter units for radio interference suppression - Part 2-2: Blank detail specification - Passive filter uits for electromagnetic interference suppression - Filters for which safety tests are required (safety.pdf
- 国际标准 IEC 60670-23:2006 EN-FR Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求.pdf
- 国际标准 IEC 60670-23:2006 EN-FR 家用和类似固定电气安装用电器配件的盒子与封闭装置——第23部分:地板箱和封闭装置的要求 Boxes and enclosures for electrical accessories for household and similar fixed electrical installations - Part 23: Particular requirements for floor boxes and enclosures.pdf
- 2024版完整的货物运输合同书.doc
- 2024版无财产的离婚协议书书模板.doc
- 2024版委托融资租赁合同书书.doc
文档评论(0)