MCU_Coder 发表于 2023-11-3 23:04:11

Win10 下 USB 驱动程序开发

Win10 下 USB 驱动程序开发



本文介绍了USB设备驱动相关的基本软硬件,和编写驱动的基本步骤和流程。通过编写一个包含三个端点的USB(UMDF V2)设备驱动,讲述了USB输入设备驱动的具体编写步骤,并给予了测试方法。文未附有完整程序代码。
硬件:
微软的Windows USB驱动程序框架开发例程(https://github.com/microsoft/Windows-driver-samples/tree/main/usb)基于OSR USB FX2开发板硬件。为了方便研究、测试USB驱动程序,我们使用NXP FRDM-K64 模拟实现 Cypress EZ-USB FX2Development Kit (CY3681)开发板USB功能,它包含 USB FX2 设备和实现客户端驱动程序所需的所有硬件规范(1 interfaceand 3 endpoints , Interrupt IN, Bulk Out, Bulk IN)。相关的USB协议栈代码也可以非常方便移植到NXP的其他系列MCU硬件,例如IMX RT10xx和LPC55xx系列。

软件:
在NXP MCUXpresso SDK USB例程dev_printer_virtual_plain_text_bm基础上,增加一个 interrupt IN EP中断端点。按下FRDM-K64SW3按键后发送 0x55 到 Interrupt EP中断端点,模拟EZ-USB FX2 的 Switch 拨码状态。
在开发宿主机计算机上安装Visual Studio 2019以上版本。安装Windows 驱动程序工具包 (WDK)。

本文介绍使用 Microsoft Visual Studio Community 2019 编译Win10 内核驱动例程 Sample KMDF Function Driver for OSR USB-FX2(https://github.com/microsoft/Windows-driver-samples/tree/master/usb/kmdf_fx2)。从 github 下载代码后编译生成 Win10 内核驱动osrusbfx2.sys 文件。

相关的测试源代码
NXP FRDM-K64 模拟实现 Cypress EZ-USB FX2Development Kit (CY3681)开发板
链接:https://pan.baidu.com/s/11Au_nb0PwCrqeBQQsBtysw
提取码:stfq
USB内核驱动例程
链接:https://pan.baidu.com/s/1FaxgNmoU2cSwZRblqJmwiQ
提取码:my7i

https://github.com/microsoft/Windows-driver-samples/tree/master/usb/kmdf_fx2

Himem 发表于 2023-11-3 23:22:58

用winusb/libusb就搞定了吧

iamseer 发表于 2023-11-4 08:17:47

自己写驱动,怎么解决签名的问题?

casterbn 发表于 2023-11-4 11:09:37


自己写驱动,怎么解决签名的问题?+1

MCU_Coder 发表于 2023-11-4 13:15:35

casterbn 发表于 2023-11-4 11:09
自己写驱动,怎么解决签名的问题?+1
(引用自4楼)

Windows内核驱动程序需要申请WHQL认证解决驱动签名的问题。这部分需要公司商务处理,不是开发人员的职责。

casterbn 发表于 2023-11-4 14:15:10

了解了{:handshake:}

Himem 发表于 2023-11-4 14:21:28

MCU_Coder 发表于 2023-11-4 13:15
Windows内核驱动程序需要申请WHQL认证解决驱动签名的问题。这部分需要公司商务处理,不是开发人员的职责 ...
(引用自5楼)

https://www.amobbs.com/thread-5598249-1-1.html

iamseer 发表于 2023-11-4 19:33:19

MCU_Coder 发表于 2023-11-4 13:15
Windows内核驱动程序需要申请WHQL认证解决驱动签名的问题。这部分需要公司商务处理,不是开发人员的职责 ...
(引用自5楼)

合着贵司内部就是互相甩锅而不是同心协力是吧。
页: [1]
查看完整版本: Win10 下 USB 驱动程序开发