RL-USB应用到CMSIS-DAP V2中的WinUSB模式实现Win8,Win10免驱的关键说明,Win7联网也可以免驱
配置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兼容调试单元。
https://img.anfulai.cn/dz/attachment/forum/202009/01/121732b1lxeg4vo70vee61.png
http://www.armbbs.cn/static/image/hrline/4.gif
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自定义类的配置
https://img.anfulai.cn/dz/attachment/forum/202009/02/112534m0mzn7m08nnnathl.png
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文件。
Signature = "$Windows NT$"
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 ===========
%ManufacturerName% = Devices, NTx86, NTamd64
%DeviceName% = USB_Install, USB\VID_c251&PID_f000
%DeviceName% = USB_Install, USB\VID_c251&PID_f000
; ========== Class definition ===========
AddReg = ClassInstall_AddReg
HKR,,,,%ClassName%
HKR,,NoInstallClass,,1
HKR,,IconPath,0x10000,"%%SystemRoot%%\System32\setupapi.dll,-20"
HKR,,LowerLogoVersion,,5.2
; =================== Installation ===================
Include = winusb.inf
Needs = WINUSB.NT
Include = winusb.inf
Needs = WINUSB.NT.Services
AddReg= Dev_AddReg
HKR,,DeviceInterfaceGUIDs,0x10000,"{CDB3B5AD-293B-4663-AA36-1AAE46463776}"
; =================== Strings ===================
ClassName = "Universal Serial Bus devices"
ManufacturerName = "KEIL - Tools By ARM"
DeviceName = "CMSIS-DAP v2"
终于可以嫖免驱了:lol 点1:批量输出–用于从主机PC接收的命令。
端点2:批量输入-用于将响应发送到主机PC。
端点3:批量输入(可选)–用于流式传输SWO跟踪(如果启用了SWO_STREAM)。
以前看到的端点的输入输出应该是交替出现,端点号的bit0代表输入输出,2和3可以同为输入吗?还是我看的资料有问题? he2002512 发表于 2020-9-2 12:32
点1:批量输出–用于从主机PC接收的命令。
端点2:批量输入-用于将响应发送到主机PC。
端点3:批量输入( ...
你说的貌似不是这个,
这个是USB的硬件端点。 装不上, 指定的文件夹没有包含设备的兼容软件驱动程序.
页:
[1]