(ARM嵌入式系统基础及应用)第8章WindowsCE驱动程序开发.ppt

(ARM嵌入式系统基础及应用)第8章WindowsCE驱动程序开发.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  本节将介绍Windows CE 驱动程序设计的基本知识。主要以Windows CE 驱动程序的整体架构为基础,对驱动程序的模型及分类做一个大概的介绍。    8.1.1 Windows CE驱动程序概述   现代操作系统对内存、端口等资源均采取了保护措施。一般的应用程序不能直接访问硬件,必须通过设备的驱动程序来和硬件交互。设备驱动程序运行于操作系统核心态,具有同操作系统内核一样的最高运行权限。   设备驱动程序(Device Driver)是一种可以使计算机和设备通信的特殊程序。在微软提供的MSDN中是这样定义设备驱动程序的:设备驱动程序是与硬件设备进行通信的系统程序。一个设备可以是物理设备,也可以是一个逻辑实体。通常,这些实体需要操作系统对其进行控制和资源管理。设备驱动程序就是管理这些物理设备或者虚拟设备、协议或者系统服务的软件模块。对于每一个基于Windows CE的设备,设备驱动程序都是必不可少的。   从宏观角度来看,驱动程序只是添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。操作系统只能通过这些信息去控制硬件设备的工作, 假如某设备的驱动程序未能正确安装,便不能正常工作。设备驱动程序用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件,比如让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡能听懂的电子信号命令,从而让音响播放音乐。所以说驱动程序提供了硬件到操作系统的一个接口来协调二者之间的关系,可以说驱动程序是操作系统和输入/输出设备间的粘合剂,也可以说是硬件和系统之间的桥梁。   由此可见,驱动程序是硬件设备的软件,其本质是软件和硬件的结合体。因此,设备驱动的开发具有一定的挑战性,要求驱动开发者不仅要熟练掌握软件开发的语言、方法和技巧,而且要求开发者具有良好的硬件设计基础,熟悉硬件操作逻辑,并能熟练阅读硬件规范,另外还要求驱动开发者熟悉操作系统的驱动程序架构。 8.1.2 Windows CE驱动程序模型   对于一个基于Windows CE 嵌入式操作系统的设备来说,由于外部环境对其要求越来越高,因此操作系统和外设交互的复杂程度也在不断的提高。为了使驱动程序更有效率地运行,有更好的灵活性和健壮性,在Windows CE中为驱动程序提供了一种分层的体系结构。每一个设备驱动程序都有一个上层和底层的接口。底层的驱动程序直接控制硬件。在底层和上层驱动程序之间是中间层驱动程序。每一层都会提供一些预先定义的数据结构,用来处理I/O数据。    通常对于某一类型的外设来说,操作系统都会提供特定的驱动模型。例如对于网卡驱动程序,Windows CE 提供了NDIS(网络驱动器接口标准)接口,如果某块网卡想要在Windows CE下工作,则必须实现NDIS提供的一些接口函数。当然,在不同的操作系统下,规定的接口是不尽相同的。目前Windows CE提供了4种设备模型,其中2种专门用于Windows CE 模型,另外2种模型来自于其他操作系统,如图8.1所示。       图8.1 Windows CE 各种驱动模型的关系   1. 本机设备驱动程序   本机设备驱动程序(Native Driver)也叫做Built-in驱动程序,是硬件所必需的。在实际工作中,要把Windows CE 移植到目标平台上,必须为在平台上建立的设备提供驱动程序。一些常用的设备如键盘、显示器、PC卡插槽、触摸屏、电池等与操作系统间都有一个自定义的接口,这些接口对Windows CE来说是专用的,所以这类驱动就叫做本机设备驱动程序。一般来说,原始开发商在定制新的平台时才需要对本机设备驱动程序进行开发。       图8.2 本地设备驱动程序的模型   一般来说,本机设备驱动程序与平台联系的比较紧密,它总是在系统启动的时候进行加载,因此本机驱动程序对于Windows CE系统来说非常重要。这些本机驱动程序的好与坏,对系统的稳定性有很大的影响。因此为了提高系统的性能和安全性,微软对外围设备的扩展是通过定制接口的方式来实现的。也就是说,不需要直接和本机驱动程序打交道。但当在实际工作中,需要把Windows CE 移植到目标平台上时,就需要根据平台具体的硬件来对本机驱动程序进行调整。图8.2展示了本地设备驱动程序的模型。   2. 流接口驱动程序   在一个挂载有Windows CE的目标平台上,必然会有一些需要添加的外围设备,流接口驱动程序就是基于此而设计的。在直观上来看,流接口驱动程序是一个管理外围设备的用户级的动态链接库(DLL),它可以接收来自管理设备的命令和应用程序通过系统调用的命令。在Windows CE中,流接

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档