驱动程序的概述

上传人:ni****g 文档编号:585810000 上传时间:2024-09-03 格式:PPT 页数:16 大小:389.53KB
返回 下载 相关 举报
驱动程序的概述_第1页
第1页 / 共16页
驱动程序的概述_第2页
第2页 / 共16页
驱动程序的概述_第3页
第3页 / 共16页
驱动程序的概述_第4页
第4页 / 共16页
驱动程序的概述_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《驱动程序的概述》由会员分享,可在线阅读,更多相关《驱动程序的概述(16页珍藏版)》请在金锄头文库上搜索。

1、驱动程序的概述驱动程序的概述驱动程序的概述驱动程序的概述l什么是设备驱动程序什么是设备驱动程序l驱动程序的功能驱动程序的功能l驱动程序模型驱动程序模型l驱动程序开发的理解驱动程序开发的理解l何时编写驱动程序何时编写驱动程序l编写驱动程序的要素编写驱动程序的要素什么是设备驱动程序什么是设备驱动程序A device driverA device driver is software that abstracts the is software that abstracts the functionality of a physical or virtual device. A functional

2、ity of a physical or virtual device. A device driver manages the operation of these device driver manages the operation of these devices. Examples of physical devices are devices. Examples of physical devices are network adapters, timers, and universal network adapters, timers, and universal asynchr

3、onous receiver-transmitters (UARTs). asynchronous receiver-transmitters (UARTs). An example of a virtual device is a file system. An example of a virtual device is a file system. Implementing a device driver allows the Implementing a device driver allows the functionality of your device to be expose

4、d to functionality of your device to be exposed to applications and other parts of the operating applications and other parts of the operating system (OS). system (OS). MSDNMSDN驱动程序的功能驱动程序的功能l设备驱动程序将操作系统和设备链接起来,设备驱动程序将操作系统和设备链接起来,使得操作系统能够识别设备,并为应用程序使得操作系统能够识别设备,并为应用程序提供设备服务。提供设备服务。l驱动程序的任务,就是把操作系统的驱

5、动接驱动程序的任务,就是把操作系统的驱动接口口“映射映射”到具体的功能实现中。到具体的功能实现中。驱动程序的功能驱动程序的功能应用程序应用程序操作系统操作系统网卡驱动程序网卡驱动程序1网卡驱动程序网卡驱动程序2网卡网卡1网卡网卡1 Send() Send() SendPackage() SendPackage() MySendPackage1() MySendPackage1() MySendPackage2() MySendPackage2()驱动程序模型驱动程序模型l为了简化驱动程序的编写,在很多操作系统上,通为了简化驱动程序的编写,在很多操作系统上,通为了简化驱动程序的编写,在很多操作系

6、统上,通为了简化驱动程序的编写,在很多操作系统上,通常人们会把驱动程序分成不同的互相分离的层。每一常人们会把驱动程序分成不同的互相分离的层。每一常人们会把驱动程序分成不同的互相分离的层。每一常人们会把驱动程序分成不同的互相分离的层。每一层,都会提供一些预先定义的接口,用来处理层,都会提供一些预先定义的接口,用来处理层,都会提供一些预先定义的接口,用来处理层,都会提供一些预先定义的接口,用来处理I/OI/O的的的的数据。数据。数据。数据。l分层优点:开发人员在编写驱动程序的时候,通常分层优点:开发人员在编写驱动程序的时候,通常分层优点:开发人员在编写驱动程序的时候,通常分层优点:开发人员在编写驱

7、动程序的时候,通常只须提供或修改某些层的实现,而不用从头开始编写只须提供或修改某些层的实现,而不用从头开始编写只须提供或修改某些层的实现,而不用从头开始编写只须提供或修改某些层的实现,而不用从头开始编写整个驱动程序。整个驱动程序。整个驱动程序。整个驱动程序。l驱动模型:通过提取某些驱动的共性而被抽象出来驱动模型:通过提取某些驱动的共性而被抽象出来驱动模型:通过提取某些驱动的共性而被抽象出来驱动模型:通过提取某些驱动的共性而被抽象出来的接口和层。的接口和层。的接口和层。的接口和层。驱动程序模型驱动程序模型lWindows的的WDM(Windows Driver Model)模型模型WDMWDM体

8、系结构实行分层处理:高层驱动程序、体系结构实行分层处理:高层驱动程序、体系结构实行分层处理:高层驱动程序、体系结构实行分层处理:高层驱动程序、中间层驱动程序、底层驱动程序。中间层驱动程序、底层驱动程序。中间层驱动程序、底层驱动程序。中间层驱动程序、底层驱动程序。每层驱动再把每层驱动再把每层驱动再把每层驱动再把I/OI/O请求划分为更简单的请求,以请求划分为更简单的请求,以请求划分为更简单的请求,以请求划分为更简单的请求,以便传给更下层的驱动执行。便传给更下层的驱动执行。便传给更下层的驱动执行。便传给更下层的驱动执行。最底层的驱动程序收到最底层的驱动程序收到最底层的驱动程序收到最底层的驱动程序收

9、到I/OI/O请求后,通过硬件抽请求后,通过硬件抽请求后,通过硬件抽请求后,通过硬件抽象层,与硬件作用,从而完成象层,与硬件作用,从而完成象层,与硬件作用,从而完成象层,与硬件作用,从而完成I/OI/O请求工作。请求工作。请求工作。请求工作。“一般一般”驱动程序开发的理解驱动程序开发的理解l l必须使用汇编语言对端口进行读写必须使用汇编语言对端口进行读写l l设备驱动程序是操作系统的一部分,难于设备驱动程序是操作系统的一部分,难于开发与调试。开发与调试。l l设备驱动程序控制硬件设备驱动程序控制硬件l l中断比较难于处理中断比较难于处理必须使用汇编语言读写端口必须使用汇编语言读写端口l lCE

10、DDK.dll 提供提供 APIs与硬件进行通信与硬件进行通信HalGetBusDataHalGetBusDataREAD_PORT_UCHARREAD_PORT_UCHARWRITE_REGISTER_ULONGWRITE_REGISTER_ULONGl l对于逻辑设备驱动程序,采用对于逻辑设备驱动程序,采用Win32 APIs 从硬件获取数据从硬件获取数据设备驱动程序是操作系统的一设备驱动程序是操作系统的一部分,难于开发与调试部分,难于开发与调试l l对于对于UNIX或者是或者是 Windows 9x,设备驱动程设备驱动程序是与操作系统映像连接的,并运行于系序是与操作系统映像连接的,并运行

11、于系统内核态。统内核态。l l对于对于windows CE,大多数的设备驱动程序大多数的设备驱动程序运行于用户态,简单的来说就是一个运行于用户态,简单的来说就是一个DLL文件。文件。设备驱动程序控制硬件设备驱动程序控制硬件l l大多数的设备驱动程序用来控制硬件。大多数的设备驱动程序用来控制硬件。l l对于某些硬件,是没有驱动的。对于某些硬件,是没有驱动的。CPUCPU内存内存内存内存l l对于虚拟设备驱动程序,没有物理设备。对于虚拟设备驱动程序,没有物理设备。文件系统驱动程序文件系统驱动程序文件系统驱动程序文件系统驱动程序R Ramdisk(amdisk(是一种基于内存的虚拟文件系统是一种基于

12、内存的虚拟文件系统是一种基于内存的虚拟文件系统是一种基于内存的虚拟文件系统) )中断有时难于处理中断有时难于处理l lWindows CE提供逻辑中断提供逻辑中断 (SYSINTRs) l l中断由一个用户态的线程进行处理中断由一个用户态的线程进行处理 (IST)何时编写驱动程序何时编写驱动程序l操作系统没有内置支持的硬件操作系统没有内置支持的硬件不支持的硬件比较常见的是一些二级的设备。不支持的硬件比较常见的是一些二级的设备。不支持的硬件比较常见的是一些二级的设备。不支持的硬件比较常见的是一些二级的设备。l扩展已有驱动的功能扩展已有驱动的功能从头开始编写该外设的驱动。从头开始编写该外设的驱动。

13、从头开始编写该外设的驱动。从头开始编写该外设的驱动。把现有的驱动程序进行封装把现有的驱动程序进行封装把现有的驱动程序进行封装把现有的驱动程序进行封装( (没有驱动程序源代码的情况没有驱动程序源代码的情况没有驱动程序源代码的情况没有驱动程序源代码的情况更为有效更为有效更为有效更为有效) )。l提供软件层面的服务提供软件层面的服务伪驱动:可通过驱动程序,提供软件层面的一些服务,伪驱动:可通过驱动程序,提供软件层面的一些服务,伪驱动:可通过驱动程序,提供软件层面的一些服务,伪驱动:可通过驱动程序,提供软件层面的一些服务,这种驱动程序通常被称做伪驱动。这种驱动程序通常被称做伪驱动。这种驱动程序通常被称

14、做伪驱动。这种驱动程序通常被称做伪驱动。伪驱动最常见的使用方式是为上层软件提供一些服务。伪驱动最常见的使用方式是为上层软件提供一些服务。伪驱动最常见的使用方式是为上层软件提供一些服务。伪驱动最常见的使用方式是为上层软件提供一些服务。编写驱动程序的要素编写驱动程序的要素l了解驱动程序所针对的硬件了解驱动程序所针对的硬件设备驱动程序的代码设备驱动程序的代码设备驱动程序的代码设备驱动程序的代码直接与硬件进行交互。直接与硬件进行交互。直接与硬件进行交互。直接与硬件进行交互。开发人员必须对所要开发的硬件的原理、开发人员必须对所要开发的硬件的原理、功能和工作方式有充分的了解。功能和工作方式有充分的了解。需

15、要开发人员耐心地阅读这些硬件规范和需要开发人员耐心地阅读这些硬件规范和白皮书。白皮书。编写驱动程序的要素编写驱动程序的要素l了解目标操作系统下驱动的工作机制了解目标操作系统下驱动的工作机制不同操作系统下驱动程序有不同的工作机制;不同操作系统下驱动程序有不同的工作机制;不同操作系统下驱动程序有不同的工作机制;不同操作系统下驱动程序有不同的工作机制;不同的操作系统对驱动程序也有不同的管理方式。不同的操作系统对驱动程序也有不同的管理方式。不同的操作系统对驱动程序也有不同的管理方式。不同的操作系统对驱动程序也有不同的管理方式。需要开发人员针对某一个具体的操作系统,去需要开发人员针对某一个具体的操作系统

16、,去需要开发人员针对某一个具体的操作系统,去需要开发人员针对某一个具体的操作系统,去了解其驱动工作原理。了解其驱动工作原理。了解其驱动工作原理。了解其驱动工作原理。编写驱动程序的要素编写驱动程序的要素l了解驱动程序的模型了解驱动程序的模型通常对于某一类外设,操作系统都会提供特定通常对于某一类外设,操作系统都会提供特定通常对于某一类外设,操作系统都会提供特定通常对于某一类外设,操作系统都会提供特定的驱动模型。的驱动模型。的驱动模型。的驱动模型。例如:网卡驱动程序例如:网卡驱动程序例如:网卡驱动程序例如:网卡驱动程序Windows CEWindows CE提供了提供了提供了提供了NDISNDIS(

17、Network Driver Interface Specification)接口,在接口,在接口,在接口,在Windows Windows CECE下工作的网卡需要实现下工作的网卡需要实现下工作的网卡需要实现下工作的网卡需要实现NDISNDIS提供的一些接口提供的一些接口提供的一些接口提供的一些接口函数;而函数;而函数;而函数;而LinuxLinux操作系统下,对网卡驱动程序也操作系统下,对网卡驱动程序也操作系统下,对网卡驱动程序也操作系统下,对网卡驱动程序也有抽象,但它提供的数据结构和接口与有抽象,但它提供的数据结构和接口与有抽象,但它提供的数据结构和接口与有抽象,但它提供的数据结构和接口与NDISNDIS大相大相大相大相径庭。径庭。径庭。径庭。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号