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


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

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

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

              [HKEY_LOCAL_MACHINE\Drivers\Builtin\IRControl] 
             "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设备管理程序的功能. (笔者写了一个基于MIPS CPU的流驱动调试工具.欢迎下载试用https://files.cnblogs.com/Jade2009/CE_Driver_Assist.exe.rar

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

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

          

         

      

  • 相关阅读:
    完整约束二(学习笔记)
    完整约束一(学习笔记)
    表的创建与管理二(学习笔记)
    闪回技术(学习笔记)
    表的创建与管理一(学习笔记)
    借助AWR报告分析解决oracleCPU过高的问题(转)
    数据的集合运算(学习笔记)
    SQL:1999基本语法(学习笔记)
    表的连接操作(学习笔记)
    多表查询(学习笔记)
  • 原文地址:https://www.cnblogs.com/Jade2009/p/wince.html
Copyright © 2020-2023  润新知