本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告

☆★☆★☆★☆★☆★☆
生活的点点记录,以及一些体会...........

喜欢是淡淡的爱,爱是深深的喜欢.

时间会见证一切.......................

欢迎大家指出错误,共同进步..........

期待中..............................

☆★☆★☆★☆★☆★☆


我的分类(专题)

日志更新

最新评论

留言板

链接

世纪音频

 

 


Blog信息
blog名称:
日志总数:162
评论数量:312
留言数量:0
访问次数:939828
建立时间:2005年5月17日




USB设备驱动程序导读(2)
文章收藏

oceanblue 发表于 2008/5/12 12:49:52

   接下来,我们就来分析一下CE中的样例程序,我用的是4.2版本的,所以下面的内容是4.2版本中的程序。这里的程序是通过文件夹的形式组织在一起的,所以我们还是像以前学习CE的时候那样,先来了解与此相关的文件夹结构,如下图。500)this.width=500'>        在USB文件夹下,分成了CLASS,CLIENTS,COMMON,HCD,INC,USBD几个文件夹,其中INC和COMMON里面有一个lock.c的程序,这个程序很明显是将要被其他USB有关的驱动程序所使用的一个锁,代码很简单,只是一个类似临界区的封装体,可以保护多线程对同一内存区域的读写访问,可以先不去管它。CLIENTS文件夹可能最初微软的开发人员是用来放置设备驱动程序的,但是后来没有放,而发布的时候也没有删除,所以遗留了下来,里面是个空的文件夹,所以没用实际用处。USBD和HCD是前述的底层驱动,里面含有很多子文件夹和程序,由于我们只针对USB设备驱动,因此对这两部分不做分析,不兴趣的朋友可以自己去了解。        重点就在CLASS文件夹了,展开来看,里面又包含了COMMON、HID、PRINTER、STORAGE几个文件夹,同样,COMMON里面存放的源程序是为HID、PRINTER、STORAGE所共有的。HID是USB输入设备如键盘/鼠标的样例驱动程序,PRINTER是USB打印机的样例驱动程序,STORAGE是USB存储设备如U盘的样例程序。        我们此次以USB存储设备为例,所以再来展开STORAGE文件夹,其中的INC文件夹里面是头文件,CLASS是USB存储设备的驱动程序,DISK是磁盘驱动程序。这里为什么有两个驱动程序呢,我来简要解释一下。        驱动程序工作在硬件与操作系统之间,它有两个功能,一个是 将操作系统转发来的操作以符合指定硬件设备的形式控制硬件设备,另一个是向操作系统提供这个访问接口。比如说U盘,一方面驱动程序要把操作系统对U盘的识别、读、写等操作转换成U盘的动作,另一方面又告诉操作系统这是个U盘,可以当成一个文件夹或文件系统来用,能够接受标准的文件操作命令。所以此处存在两个驱动。        另外还有一个文件夹,WINCE420\PUBLIC\COMMON\DDK\INC,这里面是与设备驱动有关的头文件,对于USB设备,相关的文件有USB100.H, USBTYPES.H, USBDI.H,这里面前两个里面关于USB的定义是完全符合USB规范的,不是随便定义出来的,而USBDI.H文件里的内容就是USBD总线驱动程序向USB设备驱动程序提供的接口描述,在开发USB设备驱动时必须要包含此头文件,这样才可以得到USBD接口的原型。        说了这么多,还没接触到程序,不过不要着急,这些可是大的框架哦,我得休息一下,“广告过后,马上回来!”


阅读全文(3362) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.032 second(s), page refreshed 144779515 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号