|
本帖前半部分和HID模式是一样,后半部分是WinUSB
配置USB,直接使用MDK的RTE开发环境配置即可,简单易用。
HID模式是配的CMSIS-DAP V1版,免驱
WinUSB模式是配的CMSIS-DAP V2版,需要一个inf驱动文件,Win10可以免驱。
USB配置注意事项
usb_config_0.c文件:
USB Device 0 - High-speed: 使能高速还是全速
Update Device Settings - Vendor ID 厂商ID
Update Device Settings - Product ID 专供Debug Unit调试单元
Update Device Settings - Device Release Number 更新版本
Update String Settings - Manufacturer String 反映Debug Unit调试单元的厂家,必须与Vendor ID匹配
Update String Settings - Product String 指示调试单元,请注意,“ CMSIS-DAP”必须是该字符串的一部分,以允许调试器进行标识(或USB复合设备的接口字符串的一部分)。
可选配置,每个调试单元可以提供唯一的序列号字符串 Serial Number String。如果未提供“ String Settings - Serial Number String”,则由于无法识别多个调试单元,因此只能将一个调试单元同时连接到主机。
强调一下:
1、固件配置时,USB设备设置高速/全速USB必须反映在DAP_config.h文件中。
2、String Settings - Product String 必须包含字符串“CMSIS-DAP”。调试器使用它来标识连接到主机的CMSIS-DAP兼容调试单元。
CMSIS-DAP V2使用WinUSB,速度更快。通过附加的USB端点可以支持SWO跟踪流。WinUSB配置要求 interface setting – Class Code: 0xFF (Vendor specific), Subclass: 0x00, Protocol code: 0x00 。根据配置,它使用以下USB端点,这些USB端点应按以下顺序在接口描述符中进行配置:
端点1:批量输出–用于从主机PC接收的命令。
端点2:批量输入-用于将响应发送到主机PC。
端点3:批量输入(可选)–用于流式传输SWO跟踪(如果启用了SWO_STREAM)。
要通过调试器识别CMSIS-DAP V2配置,必须使用以下WinUSB GUID:
{CDB3B5AD-293B-4663-AA36-1AAE46463776}
下图显示了USB自定义类的配置
USB的inf驱动文件:
Windows 8和Windows 10不需要WinUSB驱动程序,前提是USB协议堆栈支持Microsoft描述符。CMSIS-DAP v2设备应配置为WCID(Windows兼容ID)设备,该设备向Windows系统提供额外的信息以促进自动驱动程序的安装。
对于Windows 7,如果PC连接到Internet,并且PC的“设备安装设置”设置为自动下载和安装设备的驱动程序,则CMSIS-DAP v2设备将自动安装。自动安装的设备将在“设备管理器”中的“通用串行总线”设备下显示为WinUsb设备。
如果没有可用的Internet连接,或者您希望设备在“设备管理器”下显示为不同的名称,则应提供一个.inf文件并对其进行签名以生成.cat文件。可从Microsoft下的主题为“设备驱动程序包的签名步骤”获得更多信息。
Windows 7主机提供以下CMSIS_DAP_v2.inf文件。
- [Version]
- Signature = "$Windows NT[ DISCUZ_CODE_0 ]quot;
- Class = USBDevice
- ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
- Provider = %ManufacturerName%
- DriverVer = 04/13/2016, 1.0.0.0
- CatalogFile.nt = CMSIS_DAP_v2_x86.cat
- CatalogFile.ntx86 = CMSIS_DAP_v2_x86.cat
- CatalogFile.ntamd64 = CMSIS_DAP_v2_amd64.cat
- ; ========== Manufacturer/Models sections ===========
- [Manufacturer]
- %ManufacturerName% = Devices, NTx86, NTamd64
- [Devices.NTx86]
- %DeviceName% = USB_Install, USB\VID_c251&PID_f000
- [Devices.NTamd64]
- %DeviceName% = USB_Install, USB\VID_c251&PID_f000
- ; ========== Class definition ===========
- [ClassInstall32]
- AddReg = ClassInstall_AddReg
- [ClassInstall_AddReg]
- HKR,,,,%ClassName%
- HKR,,NoInstallClass,,1
- HKR,,IconPath,0x10000,"%%SystemRoot%%\System32\setupapi.dll,-20"
- HKR,,LowerLogoVersion,,5.2
- ; =================== Installation ===================
- [USB_Install]
- Include = winusb.inf
- Needs = WINUSB.NT
- [USB_Install.Services]
- Include = winusb.inf
- Needs = WINUSB.NT.Services
- [USB_Install.HW]
- AddReg = Dev_AddReg
- [Dev_AddReg]
- HKR,,DeviceInterfaceGUIDs,0x10000,"{CDB3B5AD-293B-4663-AA36-1AAE46463776}"
- ; =================== Strings ===================
- [Strings]
- ClassName = "Universal Serial Bus devices"
- ManufacturerName = "KEIL - Tools By ARM"
- DeviceName = "CMSIS-DAP v2"
复制代码
|
|