欢迎来到天天文库
浏览记录
ID:34726704
大小:89.18 KB
页数:6页
时间:2019-03-10
《usb驱动开发工具比较》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、usb驱动开发工具比较USB驱动开发的主要工具:DDK(DDK是DeviceDevelopmentKit,设备开发包的意思)、WinDriver、DriverStudio三种(不知道是否适合于其它驱动的开发)。比较如下:用WinDriver和DriverStudio开发驱动比DDK简单容易上手,但WinDriver开发驱动没法脱离WinDriver环境不好发布,所以还是用DriverStudio比较好。下面内容转自网络:1Microsoft公司提供的WindowsDDK(DeviceDriverKit)。它有Windows98DDK和Windows2000DDK两个版本。Windo
2、ws98DDK能够开发Windows95/98/Me/NT下的VxD、KMD和WDM驱动程序。Windows2000DDK能够开发Windows98/Me/NT/2000下的KMD和WDM驱动程序。由于DDK基于汇编语言的编程方式和内核模式的调用,对没有深厚的OS原理和编程水平的人员来说,任务相当艰巨。2NuMega公司提供的DriverStudio,它是一个大的开发工具包,包含VtoolsD、SoftICE和DriverWorks等开发工具。VtoolsD开发包提供了对VxD编程的C/C++类库支持,利用VtoolsD中的QuickVxD工具可以快速生成VxD的C/C++代码框架
3、,开发者可以在此基础上根据各自的需要添加自己的代码。DriverWorks用于开发KMD和WDM驱动程序,并且对DDK函数进行了类的封装,从而为开发WindowsNT、Windows2000和Widnwos98WDM设备驱动程序提供了一个自动化的方法。DriverWorks,提供了VC++下的开发向导DriverWizard,按照它的提示可以迅速地生成驱动程序的框架。这个框架结构提供可以正确执行WDM动态环境中IRP的请求,而且,也包含用于简化系统提供的标准类驱动程序(如HID、流)和总线驱动程序(如PCI和USB)接口的类等。 总之,利用DriverWorks开发WDM驱动程序
4、,可以大大简化开发人员的工作量、缩短开发周期以及降低开发驱动程序的难度。[1] 用DriverWorks开发WDM型USB设备驱动程序 要想使用DriverWorks,必须先安装以下软件:DriverStudio2.5,VisualStudio6.0,以及Windows2000DDK。由于DriverWorks所用的类库是对DDK的库函数的封装,还必须在VisualC++中编译需要的库文件[3],下面介绍怎样在VC环境中创建自己的库文件。 (1)启动VisualC++。 (2)选择菜单FileOpenWorkspace。打开位于DriverStudioDriverWor
5、ksSourcevdwlibs.dsw的工作空间文件。 (3)选择菜单BuildBatchBuild,在弹出的对话框架中选择你想编译的库。 (4)点击对话框中的Build即可编译你选择的库。 下面就通过一个例子来说明利用DriverWorks开发USB设备驱动程序的方法。 这个USB设备有3个双向端点,每个端点的配置如下:端点类型地址缓冲区(字节)0IN/OUT控制(Control)0x80/0x0016/161IN/OUT块(Bulk)0x81/0x0116/162IN/OUT块(Bulk)0x82/0x0264/64 驱动程序需要实现的功能就是控制设备上的LED
6、灯的亮和灭,以及通过端点2对设备进行读写。 (1)首先,通过快捷方式“SetupDDKandStartMSVC”来启动VCIDE。这个快捷方式所指向的程序,会进行一些必要的设置,然后再启动VCIDE,这样我们的程序就可以使用DDK和DW的头文件和库了。 (2)从VCIDE的菜单“DriverStudio”中选择“DriverWizard”,之后按对话框的提示填写项目名称及所在目录。并按向导选择驱动程序类型为WDM,总线类型为USB。 (3)按端点的配置表进行端点的设置。由于在USB中规定端点0是必须存在的,所以我们只需对端点1和端点2进行定义即可。(4)选择端点2产生BULK
7、Read及BULKWrite的代码,DriverWorks会自动产生对端点2的读写代码,不用修改,就可以直接使用。 (5)增加一个IOCTL来控制USB设备的LED灯。IOCTL代码名称取为TEST_IOCTL_LED,其他值默认。 (6)最后按下“Finish”按钮,就结束了Wizard。在此过程中只针对需要修改的步骤进行了说明,未加说明的部分均可直接按“Next”按钮。 到此,我们已经创建好了一个基本的驱动程序,其中的块读写代码都由DriverWorks自动
此文档下载收益归作者所有