WindowCE驱动程序.ppt_第1页
WindowCE驱动程序.ppt_第2页
WindowCE驱动程序.ppt_第3页
WindowCE驱动程序.ppt_第4页
WindowCE驱动程序.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WindowsCE驱动程序,WindowsCE驱动程序,WindowsCE驱动程序模型WindowsCE驱动程序的宿主程序WindowsCE驱动程序的类型WindowsCE驱动程序的分类示例驱动程序的代码,WindowsCE驱动程序模型,桌面Windows驱动程序模型操作系统在启动后对硬件进行延迟加载,但依然把驱动程序加载到操作系统的内核空间中。驱动程序工作在系统的地址空间内,实现了驱动的动态加载。桌面Windows驱动程序最早采用VxD(已废弃),从Windows2000开始采用WDM(WindowsDriverModel)模型,驱动程序调用DDK;Vista以及以后的版本采用WDF(WindowsDriverFounation)是对WDM的建模与封装,但隐藏了更多的细节,但降低了开发难度。,WindowsCE驱动程序模型,桌面Windows驱动程序模型操作系统在启动后对硬件进行延迟加载,但依然把驱动程序加载到操作系统的内核空间中。驱动程序工作在系统的地址空间内,实现了驱动的动态加载。桌面Windows驱动程序最早采用VxD(已废弃),从Windows2000开始采用WDM(WindowsDriverModel)模型,驱动程序调用DDK;Vista以及以后的版本采用WDF(WindowsDriverFounation)是对WDM的建模与封装,但隐藏了更多的细节,但降低了开发难度。,WindowsCE驱动程序模型,什么是设备驱动程序设备驱动程序是与硬件设备进行信息交互的系统程序,应用程序通过操作系统提供的驱动程序与硬件设备交互,但应用程序与硬件设备无关。对于每一款硬件设备,都有其对应的设备驱动程序。设备驱动程序是操作系统与硬件交互手段,是连接硬件与操作系统之间的桥梁。驱动程序与硬件的标准化接口由操作系统定义。应用程序将设备当作文件进行访问,通过系统调用与硬件交互。,WindowsCE驱动程序模型,何时编写设备驱动程序?操作系统没有内置支持的硬件。扩展已有的驱动能力。提供软件层面的服务。,编写驱动程序的要素要了解驱动程序针对的硬件工作特性。了解目标操作系统下驱动的工作机制。了解驱动程序的模型。,WindowsCE驱动程序模型,设备驱动程序控制硬件(通过端口操作),对于某些硬件是不需要驱动的CPU内存储器,WinCE驱动分类本地设备驱动流接口设备驱动可通过WinCE提供的内建驱动源代码(如触摸屏驱动、显示驱动、鼠标及键盘驱动等)来学习与开发驱动程序。,WindowsCE驱动程序模型,WindowsCE驱动程序模型在WindowsCE下,所有的驱动程序都以用户态下的DLL文件形式存在。编写WindowsCE驱动程序用到的方法及工具与编写其他任何一个普通的DLL一样。WindowsCE驱动开发可以使用PlatformBuilder或者VisualStudio2005以上版本开发。对于WinCE6.0,PlatformBuilder最为一个插件被集成到VS2005中,VS2005可以进行系统定制开发以及应用程序开发。与所有的Win32DLL一样,WindowsCE驱动程序DLL中的代码被一些进程动态加载到地址空间,运行在用户态下。,WindowsCE驱动程序模型,WindowsCE驱动程序作为用户态的DLL来实现的优点:给操作系统和驱动程序带来了很大的灵活性。操作系统可在运行时动态地加载所需要的驱动程序,可轻松实现外设的即插即用(Plug&Play)。驱动程序放在用户态而不是核心态来实现,也增强了系统的稳定性。驱动程序的崩溃不会影响到操作系统内核。驱动程序放在用户态下可给驱动开发人员提供便利。,WindowsCE驱动程序的宿主,如果要运行DLL中的代码,那么必须先有一个EXE进程,把该DLL加载道自己的地址空间内,然后才可执行DLL中的代码。WindowsCE的驱动程序也必须被其他EXE宿主加载Device.exe又称做设备管理器。负责加载和管理WindowsCE下绝大多数的设备驱动程序。GWES.exe负责加载一些与图形界面相关的I/O设备驱动。FileSys.exe在系统中负责管理WindowsCE中的对象存储和文件系统。负责加载所有的文件系统驱动程序。,WindowsCE驱动程序的类型,WindowsCE驱动程序的类型单层驱动程序分层驱动程序,单层驱动程序,单层驱动程序:就是所有的驱动程序包括中断处理、I/O操作及硬件控制等都放在了一起。DDI接口(DeviceDriverInterface):单层驱动程序提供的接口,是操作系统与驱动程序交互的接口协议。优点:代码不作分层处理,驱动程序的代码相对紧凑。选用单层驱动程序会提高驱动的性能。对于一些较简单的硬件设备驱动程序,使用单层驱动程序模型,可更加清晰明了。,分层驱动程序,分层驱动程序把驱动程序的代码分为两层:模型设备驱动(ModelDeviceDriver,MDD):包含某一类型的驱动程序所通用的代码,MDD层一般以库文件形式存在。平台相关驱动(PlatDependenceDriver,PDD):包含特定的硬件或平台专用的代码。,分层驱动程序,MDD和PDD之间还需要一个接口协议。这样,在分层驱动程序中,就有两类接口函数在操作系统与MDD之间的DDI(DeviceDriverInterface)MDD和PDD之间的DDSI(DeviceDriverServiceproviderInterface)操作系统通过DDI函数访问内建驱动的MDD层。MDD层以库形式存在,向下调用的DDSI函数形式固定,但内容为空,需要PDD层实现。PDD层以代码形式存在,需实现相应的DDSI函数内容。,分层驱动程序,MDD具有下列特征:包含给定类型的所有驱动程序所共有的代码。调用PDD函数以访问硬件。链接到PDD层,并且定义MDD期望在该层中调用的设备驱动程序服务提供程序接口(DDSI)函数。向操作系统(OS)公开设备驱动程序接口(DDI)函数。OS的其他部分可以调用这些函数。处理中断处理。可供开发人员重用。可以链接到多个PDD。通常不需要进行更改。如果进行了更改,则在将驱动程序迁移到将来的版本时可能会遇到麻烦。包含任何中断服务线程(IST)。,分层驱动程序,PDD具有下列特征:由硬件平台特有的代码组成。对于不同的硬件产品或标准,有不同的实现。只能与某一类MDD协同工作。实现MDD所需要的DDSI函数,分层驱动程序,优点驱动程序分层带来了一定的灵活性,使驱动程序的编写更为清晰、简单。驱动程序的移植也会变得相对简单,只需对PDD层的代码进行修改。缺点分层后,MDD层对PDD层的函数调用会给驱动程序带来额外的性能开销。,WindowsCE驱动程序的分类,WindowsCE整体上将设备驱动分为三种:内置驱动总线驱动流接口驱动,内置驱动,硬件所必须的驱动程序,这些驱动程序通常由设计OEM厂商进行设计。如:键盘,触摸屏,音频设备。可能不支持一般的驱动接口,也有可能带有扩展的接口或者完全提供一个用户自定义的接口。内置驱动通常需要针对具体的操作系统进行小幅改动。,总线驱动,管理系统总线如PCI总线等。负责处理总线上硬件的询问,以及资源的分配。同时也请求设备管理器为总线上的硬件安装适当驱动程序。,驱动分类详细,AudioDriversBatteryDriversBlockDriversBluetoothHCITransportDriverDirect3DDeviceDriverInterfaceDirectDrawDisplayDriversDisplayDriversDVD-VideoRendererIEEE1394DriversKeyboardDriversNotificationLEDDriversParallelPortDriversPCCardDriversPrinterDriversSerialPortDriversSmartCardDriversStreamInterfaceDriversTouchScreenDriversUSBDrivers,参见文档:,示例驱动程序的代码,PlatformBuilder中自带了大量的驱动程序代码,可以通过阅读这些代码来学习编写驱动程序。大部分驱动程序的代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论