欢迎来到天天文库
浏览记录
ID:39295522
大小:1.48 MB
页数:81页
时间:2019-06-29
《设备驱动程序开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式软件开发导论同济大学软件学院20057.设备驱动程序开发主要内容概述流驱动接口设备驱动程序架构USBmouse驱动开发示例WindowsCE系统服务什么是设备驱动程序设备驱动程序是与硬件设备进行通信的系统程序。一个设备可以是物理设备,也可以是一个逻辑实体。通常,这些实体需要操作系统对其进行控制,资源管理。设备驱动程序就是管理这些物理设备或者虚拟设备,协议或者系统服务的软件模块。对于每一个基于WindowsCE的设备,设备驱动程序都是必不可少。--译自MSDN“一般”驱动程序开发的理解必须使用汇编语言对端口进行读写设备驱动程序是操作系统的一部
2、分,难于开发与调试。设备驱动程序控制硬件中断比较难于处理必须使用汇编语言读写端口CEDDK.dll提供APIs与硬件进行通信HalGetBusDataREAD_PORT_UCHARWRITE_REGISTER_ULONG对于逻辑设备驱动程序,采用Win32APIs从硬件获取数据设备驱动程序是操作系统的一部分,难于开发与调试对于UNIX或者是Windows9x,设备驱动程序是与操作系统映像连接的,并运行于系统内核态。对于windowsCE,大多数的设备驱动程序运行于用户态,简单的来说就是一个DLL文件。设备驱动程序控制硬件大多数的设备驱动程序用来控
3、制硬件。对于某些硬件,是没有驱动的。CPU内存对于虚拟设备驱动程序,没有物理设备。文件系统驱动程序RAMdisk中断有时难于处理WindowsCE提供逻辑中断(SYSINTRs)中断由一个用户态的线程进行处理(IST)为什么应当写驱动程序?当我们设计硬件时,就需要提供这一硬件的驱动软件。硬件OEM厂商不提供基于WindowsCE的硬件驱动,但是提供硬件的规格说明。对于一个现有硬件驱动的功能进行扩展。驱动分类—整体WindowsCE整体上将设备驱动分为三种:内置驱动总线流接口内置驱动硬件所必须的驱动程序,这些驱动程序通常由设计OEM厂商进行设计。如
4、:键盘,触摸屏,音频设备。可能不支持一般的驱动接口,也有可能带有扩展的接口或者完全提供一个用户自定义的接口。内置驱动通常需要针对具体的操作系统进行小幅改动。总线驱动管理系统总线如PCI总线等。PCMCIA与CompactFlash也在其列。负责处理总线上硬件的询问,以及资源的分配。同时也请求设备管理器为总线上的硬件安装适当驱动程序。驱动分类–详细AudioDriversBatteryDriversBlockDriversBluetoothHCITransportDriverDirect3DDeviceDriverInterfaceDirectDr
5、awDisplayDriversDisplayDriversDVD-VideoRendererIEEE1394DriversKeyboardDriversNotificationLEDDriversParallelPortDriversPCCardDriversPrinterDriversSerialPortDriversSmartCardDriversStreamInterfaceDriversTouchScreenDriversUSBDrivers参见文档:DriverDevelopment->DriverCategories驱动的加载过程大
6、多数的设备驱动由设备管理器(Device.exe)进程在系统启动时进行加载。另一方面,其中一部分内置驱动程序由GWES.exe进行加载。这些驱动包括显示器驱动(DDI.dll)、键盘驱动、鼠标驱动、触摸屏驱动等。驱动的加载过程当Device.exe对设备驱动程序进行安装时将在注册表的[HKEY_LOCAL_MACHINE]Drivers项下检查一个字符串,其值为RootKey,传统地,其名字为BuiltIn。然后设备管理器在进行初始化时使用注册信息检查器为它需要安装的各个驱动读取值为RootKey的键。驱动的加载过程驱动的加载过程安装DLL,给
7、每一个驱动创建一个Active键,然后调用ActivateDevice或者ActivateDeviceEx将DLL注册为系统中的一个设备驱动程序。ActivateDevice在[HKEY_LOCAL_MACHINEDriversActive下创建一个新的键值。驱动的加载过程驱动加载API设备驱动程序也能通过应用程序进行手动的安装,这是ActivateDeviceEx的一个首选的功能。安装驱动一个更老的方法是使用RegisterDevice与DeregisterDevice主要内容概述流驱动接口设备驱动程序架构USBmouse驱动开发示例Win
8、dowsCE系统服务什么是流接口流接口驱动包括所有提供流接口函数的驱动程序,不管由这个驱动控制的设备是什么类型。典型的流接口驱动程序有:
此文档下载收益归作者所有