WinCE系统下的驱动开发知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WinCE第三方驱动安装之二——CAB安装包制作

Microsoft Windows CE是紧凑的,高效的操作系统,它被广泛的应用在从手持电脑到专门的工业控制器或消费用电子产品等各种嵌入工业产品中。英创公司ARM9系列工控主板预装了正版Windows CE5.0操作系统,并对板上所有硬件资源提供了完备的驱动支持。随着WinCE操作系统的广泛应用,越来越多的在PC上使用的硬件设备提供了对WinCE系统的支持,如3G模块,Wi-Fi等。

第三方驱动一般以两种形式提供,一是动态链接库(*.dll)加对应的注册表文件(*.reg),另一种是可直接安装的CAB文件(*.cab)。与动态链接库加注册表文件形式的驱动相比,CAB文件安装十分方便,不需要了解繁杂的WinCE INF文件格式或REG文件格式。本文介绍通过WinCE CAB Manager工具将以动态链接库usbser.dll和注册表文件usbser.reg 形式提供的USB转串口驱动程序压缩为可直接在英创主板上安装的CAB压缩包的方法。

1、打开WinCE CAB Manager,选择File->New,运行New Cabinet wizard(CAB新建向导),选择“next”直至完成如图1。

2、在CAB Information上点击右键,选择Properties(属性)选项(如图2),打开CAB 包属性设置对话框,如图3。

3、在CAB Properties对话框中(如图3),填写Company Name(公司名称)和Application Name(CAB包名称)。

4、切换至CAB Properties->Installation Directory对话框,设置CAB包默认安装路径,此处设置为NandFlash\USBDriverDll目录,如图4。

5、切换至CAB Properties->Cabinet对话框,设置处理器类型,Processor可直接选择为ALL/CEF,如图5。

6、切换至CAB Properties->Operating System对话框,设置操作系统版本,设置为支持CE4.0~CE5.0,如图6。设置完成后选择确认完成CAB包属性设置。

7、为CAB包增加DLL文件,如图7,在File标签上点击右键,选择Add…添加USB 转串口驱动的动态链接库文件usbser.dll。

8、修改usbser.dll的安装路径,在图8中所示USBSER.DLL上点右键,选择Properties,在弹出的USBSER.DLL Properties对话框中设置usbser.dll的安装路径,如图9,选

择%InstallDir%表示使用在第4点中设置的默认安装路径,即将usbser.dll安装到NandFlash\USBDriverDll目录。

9、选择File->Import->Import form RGE...导入USB转串口驱动程序对应的注册表文件usbser.reg。在导入注册表时需要注意,第三方驱动默认安装目录往往是windows目录,因此需要在注册表文件中将动态链接库安装目录修改为在第4点中指定的目录NandFlash\USBDriverDll 。图10是注册表修改前后的对比。

将上面的工作保存后,一个可在英创主板上安装的CAB包PL2303_Driver.CAB就制作完成了,下面结合英创工控主板EM9161,介绍PL2303_Driver.CAB的安装方法。

1、在EM9161的Nandflash目录下新建UsbDriverDll文件夹。

2、将制作好的CAB安装包PL2303_Driver.CAB拷贝到EM9161 Nandflash,双击运行,如图11,点击OK完成驱动程序的安装。

对于英创公司其它没有WinCE标准显示界面的嵌入式主板EM9160、EM9260、

EM9360可通过WinCE远程桌面实现CAB包安装,安装过程与EM9161一致。

/article/article2010394.html

posted @ 2011-07-25 17:06 Maintell 阅读(65) 评论(0) 编辑

wince下USB设备驱动程序

随着USB设备的不断增加,我们这些开发人员也就多了对USB设备进行驱动程序开发的工作。但是对于很多初学者来说,存在以下三个困难:

一是对WinCE的驱动程序结构了解得太少,没办法得心应手的专注于驱动程序的开发工作;

二是对WinCE自带的USB驱动程序的例子没有弄懂,看到一大堆文件夹结构和源程序思维混乱;

三是几乎没有什么中文的参考资料,不知如何下手。

第三条是很多开发人员都遇到的,我也一样,很多朋友问我有没有什么资料,我也只能说抱歉,因为我也同样有这个问题,一切都靠自己的黑暗中摸索,因此本文不谈第三条。

第一条是可以找到资料的,如《Windows CE .NET系统分析及实验教程》,因此本文也不打算在此花费大量笔墨。

这样,本文的着重点就在第二条上面了,通过本文,我希望能让更多的朋友理解Windows CE下对USB设备的驱动模型及样例程序中的实现过程,以样例代码为基础理顺USB设备驱动程序的开发思路。同样,本文的读者对象预期是入门者和准备着手USB驱动开发的人员,驱动开发高手自然就当一笑吧。同时写本文的目的也是履行我半年前答应很多朋友的诺言,并向我的慵懒致歉。

好了,在看样例程序之前,我们还有些东西需要了解,我们就先来看下图:

在此图中,我们可以非常清晰的看到主机和物理外设之间的结构方式,在主机端,通过USBD模块和HCD模块使用默认的PIPE访问一个通用的逻辑设备,实际上就是说USBD 和HCD是一组抽象出来的访问所有USB设备的逻辑接口,它们负责管理所有USB设备的连接、加载、移除、数据传输和通用的配置。其中HCD是主机控制驱动,是为USBD提供底层的功能访问服务,USBD是USB总线驱动,位于HCD的上层,利用HCD的服务提供较高层次抽象的功能。

由于HCD和USBD都是面向的一致的逻辑设备接口,那么对于各种各样的物理设备,就需要有唯一对应的设备驱动程序,这就是上图中最上层的特殊的PIPE所连接的物理设备和USB设备驱动程序。

有了对这个结构的认识,我们可以明确的是我们要写的就是最上端的USB设备驱动程序,在WINCE的样例程序中也称为USB Client Driver,它是工作于USBD之上,所以实际上我们的工作就变成了利用USBD提供的接口针对特定的物理设备来完成USB设备驱动程序,而暂时与其他的部分无关。

好了,先到这,接下来就准备看一些具体的东西吧!

相关文档
最新文档