现在的位置: 首页 > 综合 > 正文

windows usb驱动开发

2018年03月29日 ⁄ 综合 ⁄ 共 960字 ⁄ 字号 评论关闭

转载自http://blog.csdn.net/yybing/article/details/4601073

1、写USB功能驱动需要了解的内容

    a.  驱动编译方法

        各种入门书上都有介绍,用DDK的Dos环境编译时,错误信息会在Dos界面显示,如果这些信息不能定位问题,可以到代码目录下找名字为buildxx的log文件。

    b.  驱动与设备的关联

        驱动与设备的关联是靠INF文件来指定的。简单来说只要把DDK中提供的USB驱动示例中的INF文件中的VID_XXXX和PID_XXXX中的XXXX换成自己设备的VID和PID值,

       [SourceDisksFiles] 节中BULKUSB.sys 换成自己的驱动文件名称就可以使驱动和设备关联。更多INF文件介绍可以参考相关介绍文档。

    c.  设备自定义的命令

        自定义的设备,一般都会自定义一些控制命令,在写驱动时,需要了解这些命令的作用,在调试时方便定位问题所在。

    此处需要把IoControl命令和设备命令区分开,IoControl命令是应用程序与驱动进行交互的命令,IoControl命令的生成与设备没有直接关系,可以随意设置只要不与驱动的标准命

    令发生冲突就可以;设备命令是在令牌阶段使用,也即Setup包,设备命令由硬件设计者要定义,设备命令是主机和设备通信的第一步。

    d.  USB驱动与设备交互的方式

        Windows中通过发送URB和USB设备进行通信备,各种函数代码中的核心是构造URB,发送URB,Setup包(令牌包)中的信息也被包含在URB中。为了方便构造URB,

    DDK提供了一组宏函数,使用宏函数可以很方便构造不同类型的URB,构造Setup包的宏为UsbBuildVendorRequest ,其中index,value,request在硬件中会用到。

2、 调试驱动的工具

    查看打印信息,需要用DbgView;要跟踪驱动代码用Windbg,串口线进行双机调试,调试前需要下载被调试机的符号文件;测试并且查看USB读写数据,用Bus Hound,USBlyzer配合使用;驱动代码编辑用Source Insight;代码编译直接用DDK提供的编译环境即可。

抱歉!评论已关闭.