• 提示:您的电脑还没有安装阿里旺旺。免费安装阿里旺旺,与百万商人在线谈生意!
  • 关闭
您现在的位置:阿里巴巴博客 > arm9和arm7开发板 > 文章
我的文章
嵌入式开发技术:wince驱动开发学习笔记 (2008/06/26 10:54)

嵌入式开发技术:wince驱动开发学习笔记

文章整理:深圳龙人计算机嵌入式系统开发中心

首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点,把这两种分类法分开了。在这里引用一下:

单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PDD与MDD,一般的微软已经实现了MDD,可能也实现了PDD,我们只需要对PDD做些修改就能使用,比如音频的驱动,显示的驱动。单层驱动是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如:ATADISK。

嵌入式 嵌入式开发 嵌入式系统 wince驱动开发

至于本地驱动和流式驱动是从驱动与系统其它模块(调用者)的接口形式上做的分类.其实,本地驱动这个名称不大恰当,可能叫专用驱动或其它名字更为合适.它是指调用它的模块给它有特定的接口,比如电源驱动和通用LED驱动。而串口,网卡等就是流接口驱动程序.

所以,一个驱动程序可以是单体的流式驱动,例如:ATADISK.也可以是分层的流式: 如OHCI ”

       按照我的理解,单体和分层是驱动实现方式上的分类,而本地和流式则是驱动模型上的分类,所谓本地驱动就是操作系统有保留专门的接口,所谓流式是指编写的DLL文件里可以导出各种流式接口函数。

         第二点:驱动的功能属性。设备驱动程序是操作系统内核和硬件的接口,操作系统定义了一组标准的接口,编写驱动的过程也就是实现这些接口。从应用程序到具体硬件间有如下这些环节起作用:应用程序-调用OS函数-操作系统-驱动接口-驱动程序-硬件操作函数-硬件。在wince里驱动都以用户态的DLL存在,需要通过进程加载到slot里。共有三类系统进程用来加载:Device.exe,GWES.exe,FileSys.exe.绝大多数设备驱动都是通过Device.exe加载的。需要注意的是,不同的OS保留的设备驱动接口是不一样的,如桌面windows和wince就不同。

     第三点:wince下设备的初始化分为两个阶段:Device.exe的初始化;外设的枚举和加载。其流程是:上电-启动bootloader-启动NK-启动注册表init键(Device.exe启动)-初始化数据结构,I/O,电源管理等-加载BusEnum.dll(总线枚举器)-枚举注册表下Driver/buildin的所有子键。这里的枚举过程就是循环调用ActivateDeviceEx()函数加载驱动的过程。在OS启动完毕后,我们可以用PB的Remote Registry Tool查看H_L_M/drivers/active包含的子键,看哪些驱动随启动而加载 。

     第四点:流接口驱动的概念。暴露流式接口函数的驱动即是流驱动,它把外设抽象成一个文件。过程是:应用程序使用文件API对设备进行访问,OS接受API调用FileSys.exe,转到device.exe,调用流接口,与硬件交互。所谓流接口函数有十个,包括XXX_InitXXX_DeinitXXX_OpenXXX_CloseXXX_ReadXXX_WriteXXX_PowerUpXXX_PowerDownXXX_SeekXXX_IOControl,在wince5.0中增加le了XXX_PreClose,XXX_PreDeinit.而我们在应用程序里对应的文件API有CreateFileDeviceIoControl ReadFile WriteFile,CloseHandle,SetFilePointer.  

      第五点:编写流驱动的步骤。有两种实现途径:1。写DLL,做成Project,加入到OS里。2。改BSP,把驱动写在BSP里,再选择那个BSP做OS。第一种方法步骤是在PB中新建一个DLL项目,编写一些输入函数,寄存器,外设的声明,写DLLENTRY函数;实现流接口函数;编写DLL的导出函数文件.DEF;为驱动程序写入注册表项,还需要修改bib文件。 第二种方法就是在platform/BSP/drivers下新建一个目录,然后在drivers目录中的dirs文件中加入新建的目录名。在新建的目录下,新建你的源代码文件,在其中实现DLL函数。新建名称分别为sources, makefile, ***.def的文件;修改platform.regplatform.bib文件

龙人嵌入式开发中心专业提供嵌入式系统开发和嵌入式ARM解决方案服务同时提供ARM9开发板、Xscale开发平台及ARM仿真器http://www.szarm.com



arm9和arm7开发板的相关文章 >>更多
arm9和arm7开发板的相关标签
我的图片
文章评论以下评论只代表个人观点,不代表阿里巴巴网商博客的观点或立场
暂时无网友评论
欢迎您加入阿里巴巴商人博客!在这里您将会结交更多商友,分享更多经验!得到更多推荐与展示的机会!博客宝贝先教您几招——《扩大知名度,巧用博客三板斧!》详情查看:http://blog.china.alibaba.com/html/static1/subject/first.html
发表评论请严格遵守相关法律,严禁恶意评论和垃圾评论

登录名:    密 码:    没有帐号?马上注册
内 容:
验证码:
无显示 无显示
博主信息
龙人计算机作为最专业的嵌入式系统开发商和ARM开发板供应商专业提供以三星S3C2440、S3C2410和S3C44B0处理器为核心的ARM9开发板及ARM7开发板并提供工业PDA、手持POS、GPS等各种嵌入式终端设备的ARM解决方案。网址:http://www.armodm.com
加为好友
打个招呼
定制此作者文章
我的商铺
  • 访问量:1495
  • 文章数:17
  • 评论数:11
RSS订阅
订阅博主的博客: 不知道如何订阅?
个人资料
最新博文
最新评论
最近访客
我的文章分类
日历
<<    2009年07月    >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
好友列表
最近更新博客
友情链接
编辑推荐
创建信息
阿里创建号:ALI-001922129
创建日期:
2008-03-15 14:29:42
修改日期:
2008-11-13 10:07:28
版权所有,未经作者许可,不得抄袭或转载,如有需要,可以与本人联系。