LibUSB+VS2010在Windows7上的编译过程
LibUSB是一个跨平台的usb驱动程序开发包,libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能差不多,只是libusb更加接近USB 规范。使得libusb的使用也比开发内核驱动相对容易的多。libusb无疑为那些不是专业驱动程序开发人员提供了一种开发USB驱动程序的捷径。另外一个快速驱动程序开发工具DriverStudio虽然也不错(有关DriverStudio的例子可以看本站USB开源项目), 但DriverStudio从Win7开始就不再更新了,无法在win7下使用。所以在WIN7下使用LibUSB进行快速进行USB驱动程序开发是个不错的选择。LibUSB具有以下特点:
通过调用几个函数,就可以驱动USB设备了或者与已安装好的USB设备进行通信,使用流程通常如下:
编程环境:VS2010+WINDDK+LibUSB,可以去官网上直接下载源码,地址是http://sourceforge.net/projects/libusb-win32/files/。VS2010用来编译libusb-win32的动态链接库、相关工具和DEMO程序的。我们还需要WINDDK来编译驱动,即生成libusb0.sys文件。从官方提供的make.cfg文件上来看,使用的是WINDDK 7600.16385.0(WINDOW XP及以上版本) WINDDK 6001.18002(WINDOWS 2000及以下版本)。此处用的是 WINDDK 7600.16385.1,打开源码中的工程文件如下图所示:
inf-wizard——设备驱动安装信息文件生成向导。此向导可以扫描计算机上的USB设备,并可以获取你选择的设备的VID及PID生成inf文件。
把这两项改成你的WINDDK安装路径。
编译一下libusb-sys。
编译报错error MSB3073: ,修改ddk_make/make.cmd,Line175 W2K(末尾) 修改成WIN7,编译成功。
然后编译libwdi,老是报错error MSB3073,网上查了半天资料都没有解决办法,最终找到问题原因,所包含的文件没有放置在对应位置。
从编译的libusb-win32-src-1.2.6.0(可以从http://sourceforge.net/apps/trac/libusb-win32/wiki下载)中复制对应文件到E:/libusb-win32,注意目录是E:\libusb-win32\bin\x86,对应修改config.h的目录路径如下:
然后inf-wizard工程编译又出现问题,error LNK2019: 无法解析的外部符号,通过添加编译生成的libwdi .lib到工程路径中即可解决,最终编译完成整个项目。
USB开源项目
百合电子工作室曾在2009年推出了一个USB开源项目:Easy USB 51 Programer,此项目以开源的形式展示了USB通信的基础性内容、USB HID设备类固件程序开发及PC端应用程序开发、自定义USB设备类固件程序开发及PC端驱动程...
|
USB产品
EASY USB D12 是原EASY USB 51 PROGRAMER的升级版,是百合电子工作室历时一年精心设计的一款USB学习板/开发板,与老款相比,其实例更丰富,技术文档更详尽,更重要的是此款USB学习板还提供技术支持。......
|