驱动程序设计PPT文档格式.ppt

上传人:b****2 文档编号:15128369 上传时间:2022-10-27 格式:PPT 页数:58 大小:804KB
下载 相关 举报
驱动程序设计PPT文档格式.ppt_第1页
第1页 / 共58页
驱动程序设计PPT文档格式.ppt_第2页
第2页 / 共58页
驱动程序设计PPT文档格式.ppt_第3页
第3页 / 共58页
驱动程序设计PPT文档格式.ppt_第4页
第4页 / 共58页
驱动程序设计PPT文档格式.ppt_第5页
第5页 / 共58页
点击查看更多>>
下载资源
资源描述

驱动程序设计PPT文档格式.ppt

《驱动程序设计PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《驱动程序设计PPT文档格式.ppt(58页珍藏版)》请在冰豆网上搜索。

驱动程序设计PPT文档格式.ppt

如果设备驱动程序遵循众所周知的应用程序编程接口(API),比如DeviceDriverInterface(设备驱动程序接口)(DDI),您就可以把驱动程序作为操作系统的一部分而载入,比如显示驱动程序或用于存储设备的驱动程序。

不用知道物理硬件的细节,应用程序就可以调用标准WindowsAPI函数,比如ReadFile或WriteFile,来使用外设。

驱动程序的宿主驱动程序的宿主l如果要运行如果要运行DLLDLL中的代码,那么必须先有一个中的代码,那么必须先有一个EXEEXE进程,把该进程,把该DLLDLL加载到自己的地址空间内,然后才可加载到自己的地址空间内,然后才可执行执行DLLDLL中的代码。

中的代码。

lWindowsCEWindowsCE的驱动程序也必须被的驱动程序也必须被其他其他EXEEXE宿主宿主加载加载Device.exeDevice.exe又称做设备管理器,负责加载和管理又称做设备管理器,负责加载和管理又称做设备管理器,负责加载和管理又称做设备管理器,负责加载和管理WindowsCEWindowsCE下绝大多数的设备驱动程序。

下绝大多数的设备驱动程序。

GWES.exeGWES.exe负责加载一些与图形界面相关的负责加载一些与图形界面相关的负责加载一些与图形界面相关的负责加载一些与图形界面相关的I/OI/O设备驱动。

设备驱动。

FileSys.exeFileSys.exe在系统中负责管理在系统中负责管理在系统中负责管理在系统中负责管理WindowsCEWindowsCE中的对象存中的对象存中的对象存中的对象存储和文件系统,负责加载所有的文件系统驱动程序。

储和文件系统,负责加载所有的文件系统驱动程序。

驱动程序分类驱动程序分类WindowsCE驱动的分类,主要有以下:

按驱动接口分,可分为本地驱动和流驱动;

按驱动结构分,可分为单层驱动和分层驱动;

按驱动加载的空间分,可分为内核态驱动和用户态驱动;

按驱动加载的时间分,可分为启动时加载和需要时加载两种。

本地本地VS流接口驱动流接口驱动WindowsCE下的驱动都可以归类到这两个里面,二者必居其一,是从驱动程序提供给操作系统的接口来区分的。

本地驱动程序通常支持输入和输出外设,比如显示驱动程序、键盘驱动程序、和触摸屏驱动程序。

图形、窗口、和事件子系统(GWES)直接加载和管理这些驱动程序。

本地驱动程序根据它们的目的而实现特定的函数,由操作系统调用,应用程序不能访问。

流驱动程序公开众所周知的一套函数,以启用DeviceManager(设备管理器)来加载和管理这些驱动程序。

为了DeviceManager(设备管理器)能够与流驱动程序交互,驱动程序必须实现Init、Deinit、Open、Close、Read、Write、Seek、和IOControl函数。

流驱动可以动态管理,驱动调试助手就是用来帮助调试这一类驱动的。

单层驱动单层驱动VS分层驱动分层驱动MDD(ModelDeviceDriver)和PDD(PlatformDependentDriver)的概念,这是从驱动代码实现的结构来区分的。

WindowsCE的驱动可以是单层的,也可以是PDD+MDD,没有硬性规定。

一般来说,单层结构的驱动执行效率更高,而分层结构的驱动方便代码维护和移植。

拿串口驱动来说,完全可以采用单层结构,而把它分为PDD和MDD,作为一般的开发者,只需实现PDD层就可以了,MDD层由微软实现。

这样,驱动开发的工作量少很多,而代码的可靠性则有了更好的保证。

至于采用哪一种结构的驱动,主要根据开发人员的需求。

内核态驱动内核态驱动VS用户态驱动用户态驱动WindowsEmbeddedCE6.0引入了内核态驱动和用户态驱动的概念。

在WindowsCE5.0及先前的版本中,驱动工作在用户态。

从代码方面看,内核态驱动和用户态驱动没太大差别。

内核态驱动被加载到内核空间,用户态驱动被加载到特定的用户进程空间中。

从执行效率来看,内核态的驱动效率比用户态的驱动高。

从稳定性方面考虑,用户态的驱动不会对系统产生致命影响,而内核态的驱动相对危险。

启动时加载驱动启动时加载驱动VS需要时加载驱动需要时加载驱动从驱动加载的时间来看,可分为两种:

系统启动时加载和需要时加载。

一般来说本地驱动都是在启动时加载的,在这里主要针对是流驱动来说的。

驱动在系统启动时加载,只需将它的注册表配置信息放到HKEY_LOCAL_MACHINEDriversBuiltIn下,如HKEY_LOCAL_MACHINEDriversBuiltInBattery,系统启动时,DeviceManager会自动加载它。

需要时加载,动态加载,很灵活。

注意:

USB设备的驱动加载,如USB摄像头驱动,它也属于需要时加载的驱动。

从驱动的接口来看,它属于流驱动,但相对普通的流驱动,它增加了几个函数:

USBDeviceAttach()、USBInstallDriver()、USBUnInstallDriver()等。

USB摄像头驱动的加载在USBDeviceAttach()中完成。

所以,它无须,也不能用驱动调试助手加载。

需要时加载的驱动还有一个作用,在无法修改系统的情况下,应用程序中动态加载该驱动,以完成对硬件的操作。

课程安排课程安排提纲WindowsCE5.0驱动程序简介驱动程序简介流接口驱动程序分析流接口驱动程序分析动动手动动手简单的流接口驱动程序简单的流接口驱动程序LED点阵发光原理点阵发光原理设备的硬件接口电路分析设备的硬件接口电路分析WindowsCE访问设备地址的实现访问设备地址的实现LED点阵驱动程序分析点阵驱动程序分析流接口驱动程序流接口驱动程序流接口驱动程序是实现流接口函数的设备驱动程序。

不管硬件细节,所有WindowsCE流驱动程序都公开流接口函数给操作系统,从而WindowsCE的DeviceManager(设备管理器)可以载入并管理这些驱动程序。

在流式接口驱动程序中,驱动程序负责把外设抽象成一抽象成一个文件个文件,而应用程序则使用操作系统提供的文件API对外设进行访问。

典型的流接口驱动程序有:

文件系统驱动串口驱动流接口驱动程序的体系结构流接口驱动程序的体系结构硬件硬件流接口驱动程序流接口驱动程序设备管理器设备管理器(device.exe)应用程序应用程序FileSys.exe流接口驱动程序的体系结构流接口驱动程序的体系结构其中电源管理的部分是可选的,在实际开发中接口名称中的其中电源管理的部分是可选的,在实际开发中接口名称中的XXX三个字母由设备驱动的设备文件名前缀代替。

三个字母由设备驱动的设备文件名前缀代替。

动动态态连连接接库库函函数数标准的流接口函数标准的流接口函数开发工具开发工具PlatformBuilderVisualStudio2005eMbeddedVisualC+(EVC)通用的流接口驱动通用的流接口驱动编写流接口驱动的步骤:

选择定义一个设备文件名;

实现所需流接口函数;

创建驱动的模块定义文件(.def),导出必要的标准流接口函数;

编辑必要的注册表键值,以加载流接口驱动。

设备文件名设备文件名流接口驱动作为一个特殊的设备文件系统;

两种不同的设备文件的命名方式:

传统方法:

前缀+索引+冒号例:

“COM1:

”,“LED1:

”前缀三个大写字母存储在驱动程序对应注册表键的“Prefix”子键中索引区分同一个驱动程序管理的不同设备缺省:

09,可通过“index”的值指明起始索引数适合大多数流式驱动,最大只能指定10个设备;

设备文件名设备文件名Device:

$device+前缀+索引例:

“$deviceCOM1”命名方法与传统命名方法相似;

支持多于10个流设备名;

例:

“$deviceCOM27”课程安排课程安排理论WindowsCE5.0驱动程序简介驱动程序简介流接口驱动程序分析流接口驱动程序分析动动手动动手简单的流接口驱动程序简单的流接口驱动程序LED点阵发光原理点阵发光原理设备的硬件接口电路分析设备的硬件接口电路分析WindowsCE访问设备地址的实现访问设备地址的实现LED点阵驱动程序分析点阵驱动程序分析实验标准的流接口驱动程序开发与测试标准的流接口驱动程序开发与测试动动手动动手简单的流接口驱动程序借助WindowsCE5.0EmbeddedDevelopmentLabs.msi1.用用PlatformBuilder打开现有的打开现有的MyPlatform工作区。

工作区。

2.在在File菜单上,单击菜单上,单击NewProjectorFile。

3.选择选择WCEDynamic-LinkLibrary,给它一个合适的,给它一个合适的名称(例如,名称(例如,StreamDrv),然后单击),然后单击OK,如图。

,如图。

添加一个作为设备驱动程序的项目4.在下图所显示的页面中填写一些您需要的信息,然后在下图所显示的页面中填写一些您需要的信息,然后单击单击Next。

5.选择选择AsimpleWindowsCEDLLproject,单击Finish完成此向导。

6.为驱动程序选择一个唯一的三字母标识符。

在为驱动程序选择一个唯一的三字母标识符。

在Location框中输入之前创建的流驱动程序的完整路径,框中输入之前创建的流驱动程序的完整路径,或者使用或者使用“browse”按钮定位。

按钮定位。

7.在在DriverFilename框中输入驱动程序的名称。

如图,框中输入驱动程序的名称

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1