之前使用HID传输协议,下载速度比较慢,,所以升级添加了 WINUSB 协议支持,,
通过在Keil Option窗口C/C++页是否定义 DAP_FW_V1 宏,选择使用 HID 协议还是 WINUSB 协议。。
官方的 DAPLink 功能更多,,但代码也很多,,不易阅读,,我这个移植代码比较简洁,,容易读懂和移植,,感兴趣的可以看下
离线
DAPCmdr、MCUProg、RTTView三件套添加CMSIS-DAP v2支持,,感兴趣的可以mark下
https://github.com/XIVN1987/DAPCmdr
https://github.com/XIVN1987/MCUProg
https://github.com/XIVN1987/RTTView
离线
楼主功德无量,DAPLink 上面可以做的文章很多,由于它支持自由扩充命令,可以做出来很多好玩的东西,例如 ATMEL EDBG 就是基于DAPLink 的。
不敢、不敢,,功德都是ARM的,,我只是做了些许微不足道的工作而已
离线
看了下增加了v203的支持, 楼主有兴趣移植到ch32v307吗, usbhs的. 疫情放开前搞了一块, 放开后准备玩玩它. 在CDC基础上改了改, 它的中断服务函数没有很好的处理EP0分包, 加入到wcid属性后, 抓包就出错了. 回头看看楼主怎么改的
在搞了,,
现在 DAP_PACKET_SIZE 配置成 64 的时候 SWD 可以工作,,超过 64 的时候就出错,,
我对 High Speed USB 还不熟悉,,这个问题感觉比较难搞,,打算网上搜搜看能不能找到 DAPLink HSUSB 移植的讲解说。。
离线
看了下v305的移植 似乎没有wcid自动安装 v2只是改为了bulk传输
USBHS HID 已经足够快了,,没必要改 v2 WinUSB Bulk 传输,,传输再快 V305 处理不过来也没意义。。
而且 HID 兼容性好,,任何平台上都能用。。
离线
@XIVN1987,大佬太牛了;ch32v305的工程编译后在307的demo板上跑了一下,好像虚拟串口用不起来,不知是什么原因,请看下
你好,,SWD和CDC功能都是测过的,,可以工作的
刚刚我又重新编译源码下载试了下,,没有问题,,你从github拉取最新代码再试试。。
补充:我昨天修复了一个调试阶段可能CDC不工作的情况,,你拉取最新代码试下,,再不行就检查下硬件电路板吧。。
离线
@XIVN1987,大佬太牛了;ch32v305的工程编译后在307的demo板上跑了一下,好像虚拟串口用不起来,不知是什么原因,请看下
我用的测试板是自己画的,,你可以对比下看看:https://oshwhub.com/xivn1987/ch32v307
离线
@Xure
已更新,测试收发大量数据没有问题,,你试下。。
离线
@XIVN1987,又测试了下,比前面有改善,下载固件能进行一些了,但是一会就停了,和波特率高低似乎没有关系;再用串口工具收发文件测试,比较下来有丢失和延迟,低波特率的时候,似乎情况好一点;麻烦再看看
你好,确实有个bug,,已经修复,,你再试下。。
离线
@XIVN1987,你好,刚才用串口工具将收发自环试了下,发送简单的数据或文件都收不到;换用上一个版本能接收,确认不是接线的问题;可能哪边有笔误,请查看下
我最新的提交把芯片换成TSSOP封装了,,所以引脚都还了
你拉取最新代码后执行“git checkout 175ec1a531fbca547ae3f85f036a38dee07f18ed"检索出改引脚之前的代码再试
离线
@Xure
抱歉,CH32V 的 DMA 我不太熟悉,,可能还需要几天时间调试。。
你可以找到之前没开启 DMA 的代码,,将其中的:
uint8_t in_buff[64];
uint8_t out_buff[64];
改成:
uint8_t in_buff[512];
uint8_t out_buff[512];
试下。。
离线