• 利用EVC快速开发WINCE5.0的流驱动(转载)


     

    WinCE5.0提供了一个标准的流驱动格式,大大方便了设备驱动程序的开发工作。但是传统的开发方式往往效率很低。方法如下:

    1.在Platform Builder下建立一个流驱动的dll工程。

    2.为流驱动增加注册表项。如:

    [HKEY_LOCAL_MACHINEDriversBuiltinIRControl]

    "Prefix"="IRC"

      "Dll"="irc.dll"

        "Order"=dword:66

    "Index"=dword:1 

    3.修改platform.bib文件,将流驱动的dll文件打包到NK.bin.

    4.MakeImg,生成包含流驱动的NK.BIN.

      整个过程烦琐,而且只要稍加修改,就要重先makeImg,大概要浪费3-5分钟.这种开发效率是很低的.

          下面2种介绍在EVC下快速开发WINCE流驱动的方法,是我自己亲身经验,拿出来与大家分享,也希望和各高手相互学习和探讨.

    WINCE 的驱动,不象桌面windows驱动开发那样烦琐,windows驱动开发分好几种,如wdm啦,VXD啦,等等,开发这些驱动需要专门的开发环境和工 具,给开发者带来比较高的技术门槛.所幸的是,WinCE的驱动开发,没有这么多的限制和门槛.而且应用程序可以直接和底层硬件打交道的(注:尽管这样,笔者还是不建议大家直接用应用程序访问底层硬件,这种做法是不安全的),甚至中断初始化,中断线程都可以在用户级的应用程序完成.所以给驱动开发带来了不少的便利.

    依我自己的经验来看,具体有以下2种方法.

      1.利用EVC生成驱动的DLL.

      1).新建一个evc的dll工程,将流驱动代码移植到evc代码中。

          2).编写导出文件*.def,将流驱动的10个标准函数导出.并在Project--->Setting--->Link--->Project options里面标注,如:/def:"IR.DEF" .(这一步如果不做,生成的驱动将不可用)

       3).编译代码,这个时候一般会出现一些错误,如找不到头文件或库文件等错误,请在wince的安装目录下找到相应的头文件和库文件,在 Tools--->options--->Directories中指明头文件和库文件的路径。在 Project--->Setting--->link中指定相应的*.obj文件(具体文件视源代码调用了哪些驱动和库,到wince的目 录下找到这些obj文件链接进来即可)

      4).编写一个应用程序来调试驱动.利用RegisterDevice/DeRegisterDevice动态加载/卸载流驱动,模拟WinCE设备管理程序的功能.

      以上这种方法,完全脱离了Platform Builder的开发环境,使驱动的开发和调试工作象开发应用程序一样轻松和快捷.可 以在驱动程序中利用RETAILMSG函数从UART口输出调试信息.

       2.利用EVC将驱动程序写成exe,直接象调试应用程序一样调试驱动.

           最后将调试好的源代码移植到驱动程序的dll工程中去.具 体方法和第一种方法类似,不同之处在于,前者是新建一个纯DLL工程(带导出函数),后者是新建一个MFC的exe工程而已.编译的头文件和库文件方法2 者雷同.这种方法的好处是可以直接编译成evc的debug工程,可以在源代码中进行单步跟踪调试和设置断点,大大的提高了驱动程序的调试效率.

     

     

    http://www.cnblogs.com/projectdevelop/archive/2009/03/31/wincedriverII.html

  • 相关阅读:
    MVVM架构~knockoutjs系列之验证信息自定义输出~再续
    数据挖掘:实用案例分析
    实际中碰到的一个异构系统之间数据交换的处理方式设计
    连载:现代无线电接收机的系统噪声系数分析一 级联接收机的计
    hadoop的一些名词解释
    【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)
    Visual Studio Tips: How to change project namespace
    PHP 类属性 类静态变量的访问
    ios日历视图实现日期输入
    简说一下coffeescript的constructor是如何导致Backbone.View的事件无法正常工作的.
  • 原文地址:https://www.cnblogs.com/maintell/p/2116436.html
Copyright © 2020-2023  润新知