PCI设备Windows通用驱动轨范设计

PCI设备Windows通用驱动轨范设计,第1张

我们开发了一套通用的PCI设备驱动轨范,它可以完成一般PCI设备驱动所需的功能,可以作为其它PCI设备驱动开发的框架。

  1 驱动轨范的模式和开发工具的选择

  设备驱动轨范是指打点某个外围设备的一段代码。驱动轨范不会独登时存在,而是 *** 作系统的一部门。经由过程设备驱动轨范,多个历程可以同时使用这些资本,从而可以实现多历程并走运行。不才文中,将挪用设备驱动轨范的PC机轨范称为用户轨范。

  Windows 95和Windows NT采用的驱动轨范系统分歧,所以年夜年夜都情形下驱动轨范也不能通用。若是设备需要在Windows 9x/NT下使用,一般至少要设计Windows 9x和Windows NT两个驱动轨范版本。Windows 98 可以兼容Windows 95的驱动轨范,同时它又推出一个新的Win32 Drivers Mode(WDM)驱动类型。Windows 98中有些设备(如USB设备)的驱动轨范必需为WDM模式。这个新的类型现实是在Windows NT的驱动模子的基本上增添了即插即用等内容。WDM驱动也可以用在Windows 2000(先前叫Windows NT 5.0)中。从久远的角度看。此后开发人员只要开发WDM驱动就可以了,但从今朝的市场情形来看,Windows 95是无法抛却的,所以WDM在近一两年还无法替代其它类型的设备驱动。

  开发设备驱动采用的首要开发工具是微软为设备开发者供给的软件包Device Driver Kit(DDK)。这个软件包搜罗有关设备开发的文档、编译需要的头文件和库文件、调试工具和轨范典型。在DDK中还界说了一些设备驱动可以挪用的系统底层处事,象DMA处事、间断处事、内存打点处事、可安装文件系统处事等等。这些都是编写设备驱动所必需的。但Windows 95的DDK因为首要使用汇编说话描述。开倡议来斗劲坚苦。是以,我们在Windows 95 *** 作系统中同时采用了Numega公司的产物VtoolsD。VtoolsD是基于C++/C++的,撑持Borland C++和Visual C++,使用和维护都较Windows 95 DDK轻易。

  2 PCI驱动轨范的特点

  在设计驱动轨范之前,首先要对欲节制的硬件设备进行详尽地剖析,更需要具体体味硬件设备的特征。硬件设备的特征会对驱动轨范设计发生重年夜的影响。需要体味的最首要的硬件特征搜罗:

  (1)设备的总线结构

  设备采用什么总线结构很是关头,因为分歧的总线类型(如ISA和PCI)在良多硬件工作机制上是分歧的,所以驱动轨范设计也分歧。

  (2)寄放器

  要体味设置的节制寄放器、数据寄放器和状况寄放器,以及这些寄放器工作的特征。

  (3)设备错误和状况

  要体味若何判定设备的状况和错误旌旗灯号,这些旌旗灯号要经由过程驱动轨范返回给用户。

  (4)间断行为

  要体味设备发生间断的前提和使用间断的数目。

  (5)数据传输机制

  最常见的数据传输机制是经由过程I/O端口(port),也就是经由过程CPU的IN/OUT指令进行数据读写。PC的另一种主要的传输机制是DMA,但PCI规范不搜罗隶属DMA的声名。

  (6)设备内存

  良多设备自身带有内存,PCI设备年夜多是采用映射的体例映射到PC系统的物理内存。有的设备还要经由过程驱动轨范设置设备的接口寄放器。

  有关驱动轨范的加载和响应用户请求的内容,在DDK文档中有划定,所以设计设备驱动轨范首要的面临问题是若何进行硬件 *** 作,这是按照设备的分歧而分歧的。而硬件驱动轨范的功能虽然千差万别,但根基功能就是完成设备的初始化、对端口的读写 *** 作、间断的设置、响应和挪用以及对内存的直接读写。如前面所说,Windows 9x和Windows NT的 *** 作系统模子分歧,但驱动轨范所要完成的工作却是不异的,所以下面以Windows 9x为主进行介绍,仅在需要的处所指出两个 *** 作系统的分歧。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2713319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存