WinCE驱动程序模型分类

发布者:BeaLaity0170最新更新时间:2011-03-12 手机看文章 扫描二维码
随时随地手机看文章
WinCE驱动程序模型分类

WinCE系统在驱动设计上有一个很方便的功能,就是原始设备制造商(OEMs)和独立硬件开发商(IHVs)可以自主开发设备驱动程序来支持他们的硬件。因此,在动手进行触摸屏驱动程序开发之前,深入了解WinCE系统驱动方式是非常有必要的。

(1)从驱动加载方式上的分类

要编写WinCE驱动程序首先要确定它是属于哪类驱动。一般来说,WinCE平台上使用的设备可分为两类:内建设备和可安装设备。因此,从驱动加载方式上WinCE可分为内建设备驱动(Built-In Driver)和可加载驱动(Loadable Driver)。

WinCE系统可直接使用内建设备,因为内建设备驱动程序是与WinCE的核心组件紧密相连的,也就是内建设备驱动程序是被静态地链接到GWES(Graphics Windowing and Events Subsystem)的。这些驱动对应的设备通常在系统启动时,在GWES的进程空间内被加载,主要是与显示和输入有关的驱动。

因为它们不是以独立的DLL形式存在,所以要求每一个内建驱动程序都必须与设备驱动程序接口(DDI)的特定接口保持一致。内建设备包括显示、触摸屏、音频、串行埠、LED、电池和PC卡插座等。内建驱动程序一般设计为动态链接库,但有两个例外:电池和LED驱动程序由于小而设计为静态库。它们一般储存在ROM或闪存内。

可加载设备是指可与平台连接和分离的第三方接口设备,可由用户随时安装和卸载。这种外围设备的驱动也被称为流驱动,这些驱动可以在系统启动时、或者启动后的任何时候由设备管理器动态加载。通常这类驱动是以DLL动态链接库的形式存在,加载后的这些驱动程序也只能以用户态的角色运行。在WinCE中典型的可加载驱动有:PCMCIA driver(PCMCIA.dll)、Serial driver(SERIAL.dll)、ATAFLASH driver(ATA.dll)、Ethernet driver(NE2000.dll,SMSC100FD.dll)。

与内建驱动程序不同的是,所有可加载流驱动程序都共享一个公用接口,而且功能也与应用程序所用的文件API中的功能匹配。因此,控制可加载设备的流接口驱动程序一般由应用程序存取。也就是说,流接口驱动程序是由一个特殊文件来将设备功能展现给应用程序的,该文件可被打开、读取、写入和关闭。通常只有OEMs才会对内建设备驱动程序进行修改,其它自由设备生产商由于只提供附加的硬件设备,对内建设备驱动程序不会有过多涉及。

(2)从驱动程序层次上分类

WinCE最大的好处是具有可定制性,当它自带的驱动程序不能满足用户的要求时,用户可以自己编写相应的驱动程序。因此按照结构分,WinCE驱动程序又可分为分层的驱动程序和不分层的驱动程序。分层的驱动程序由两个设置好的层组成:上层是模型设备驱动程序(Model Device Driver, MDD),下层是依赖平台的驱动程序(Platform Dependent Driver, PDD)。

分层的驱动程序中的MDD通常是无需修改可直接使用,MDD的作用是链接PDD层并定义它希望调用的函数接口:设备驱动程序提供器接口(Device Driver Service Provider Interface, DDSI)。同时MDD又把不同的函数集提供给WinCE内核,这些函数叫做设备驱动程序接口(Device Driver Interface, DDI)。不分层的驱动程序是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如ATADISK。简单的说,内建驱动和加载式流驱动是从驱动与系统其它模块(调用者)的接口形式上做的分类;而不分层和分层是从驱动实现方式上的分类。

在开发过程中,MDD层驱动是不需要被修改的。但和MDD层驱动不同的是,PDD层驱动必须被修改成和特定硬件相匹配的代码。程序员可以自己开发一个PDD程序,但多数情况下建议开发者在Platform Builder提供的样例驱动程序上进行修改。在Win CE系统中触摸屏驱动是一种分层驱动。

引用地址:WinCE驱动程序模型分类

上一篇:发展嵌入式系统,促进电子信息产业结构调整
下一篇:选择Windows CE 的十大理由

小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved