搜索
bottom↓
回复: 9

DAPLink添加WINUSB支持。。

[复制链接]

出0入25汤圆

发表于 2022-1-12 20:53:10 | 显示全部楼层 |阅读模式

之前使用HID传输协议,下载速度比较慢,,所以升级添加了 WINUSB 协议支持,,

通过在Keil Option窗口C/C++页是否定义 DAP_FW_V1 宏,选择使用 HID 协议还是 WINUSB 协议。。

官方的 DAPLink 功能更多,,但代码也很多,,不易阅读,,我这个移植代码比较简洁,,容易读懂和移植,,感兴趣的可以看下

https://github.com/XIVN1987/DAPLink

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出15入178汤圆

发表于 2022-1-12 21:16:49 | 显示全部楼层
很多年了啊,v2增加的WinUSB方式

出0入25汤圆

 楼主| 发表于 2022-1-12 22:04:14 | 显示全部楼层
2nd 发表于 2022-1-12 21:16
很多年了啊,v2增加的WinUSB方式


是的,,不过官方版代码越来越复杂,,感觉都快看不懂了

另外,,我比较疑惑的是,DAPLink支持WINUSB都那么久了,,怎么淘宝上卖的DAPLink还都是HID协议的啊。。

显然大家也意识到HID版本DAPLink的速度太慢了,,不然也不会有那么多高速USB接口的DAPLink。。

其实全速USB接口的WINUSB版本DAPLink就够用了,,毕竟高速USB速度再快,,烧写速度也主要受Flash的擦写速度限制,,高速USB的速度发挥不出来多少,,而成本相对于全速USB的DAPLink又增加很多,,很不划算。。

出0入0汤圆

发表于 2022-1-12 22:48:24 | 显示全部楼层
mdk4.74不能识别DAP-LINK-V2?

出590入992汤圆

发表于 2022-1-12 23:14:11 | 显示全部楼层
XIVN1987 发表于 2022-1-12 22:04
是的,,不过官方版代码越来越复杂,,感觉都快看不懂了

另外,,我比较疑惑的是,DAPLink支 ...

我也做dap,很早就想把WINUSB加上去了,奈何是重度xlink用户,觉得dap不好用,也就一直懒的加了。
请教下:winusb比hid能感觉到明显的快吗?

出0入25汤圆

 楼主| 发表于 2022-1-12 23:50:44 | 显示全部楼层
SUPER_CRJ 发表于 2022-1-12 23:14
我也做dap,很早就想把WINUSB加上去了,奈何是重度xlink用户,觉得dap不好用,也就一直懒的加了。
请教下 ...


全速USB的HID的带宽只有64*1000/1024=62.5KB/S,,远低于全速USB 1.5MB/S的极限带宽,,WINUSB就算只能达到极限带宽的一半,,那也是HID带宽的10倍

当然,实际上肯定没有这么大的差异,,因为下载过程中大量时间花在SWD传输和等待Flash擦写上,,

理论上使用WINUSB传输的DAPLink可以达到接近JLink和STLink的烧写速度,,从之前的使用体验上看,,HID协议的DAPLink比二者慢不少

出0入25汤圆

 楼主| 发表于 2022-1-12 23:57:17 | 显示全部楼层
desertsailor 发表于 2022-1-12 22:48
mdk4.74不能识别DAP-LINK-V2?


嗯,,这是WINUSB唯一不如HID的点,,对上位机和系统有版本要求

我实现的这个WINUSB使用的是 MS OS 2.0 描述符,,对系统的版本要求是 Windows 8.1 以上

如果想在Win 7甚至是XP上使用WINUSB,,那只能改用 MS OS 1.0 描述符,,而且需要编写一个inf文件安装驱动。。

出0入25汤圆

 楼主| 发表于 2022-1-13 00:07:13 | 显示全部楼层
如果对 MS OS 1.0 描述符感兴趣,,可以看下这篇文章:https://github.com/pbatard/libwdi/wiki/WCID-Devices

讲的很详细,,实现上也不难,,只需要返回一个索引为 0xEE 的字符串描述符,,然后通过Vendor Request返回Compatible ID、Interface GUID两个描述符就行了,,

出20入25汤圆

发表于 2022-1-13 08:47:11 来自手机 | 显示全部楼层
这个宏是怎么确定用你哪种协议的

出0入25汤圆

 楼主| 发表于 2022-1-13 09:47:09 | 显示全部楼层
chenchaoting 发表于 2022-1-13 08:47
这个宏是怎么确定用你哪种协议的


主要是通过修改USB描述符,,将MCU枚举成不同的设备

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 04:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表