你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【源代码】ST-LINK V2仿真器改CMSIS-DAP/DAPLink,带有SWO和CDC功能  

[复制链接]
radio2radio 发布时间:2018-6-9 11:52
阅读主题, 点击返回1楼
收藏 15 评论98 发布时间:2018-6-9 11:52
98个回答
radio2radio 回答时间:2018-9-11 18:47:54
zhousun 发表于 2018-9-10 08:27
楼主,用你的方法把stlink改成DAP,遇到一个问题,当使用SWO时,程序连续运行没有输出,如果设置断点就有输 ...

这个我不清楚,如果可能,拷贝有关SWO的代码到这里,也许有人可以帮您。
zhousun 回答时间:2018-9-12 09:50:08
radio2radio 发表于 2018-9-11 18:47
这个我不清楚,如果可能,拷贝有关SWO的代码到这里,也许有人可以帮您。 ...

我的SWO代码非常简单,每隔100ms打印一次和一个自变量i,每次加一,printf(“test %d\n”,i);
采用jlink数据正常不丢失,采用dap i的值有时候跳好几个,有时候连续,程序内部未做其他事情
zhousun 回答时间:2018-9-12 10:17:56
原理程序使用HAL库,刚才用ll库做了一个最简单程序,基本上不丢了,感觉还是dap的问题;因为打开trace界面jlink有一个cache设置项,一般位2M,而dap没有,可能有时候pc机来不及接收就丢失了,而jlink有缓冲器就好多了
radio2radio 回答时间:2018-9-12 14:21:47
本帖最后由 radio2radio 于 2018-9-12 14:24 编辑
zhousun 发表于 2018-9-12 10:17
原理程序使用HAL库,刚才用ll库做了一个最简单程序,基本上不丢了,感觉还是dap的问题;因为打开trace界面j ...

我也用HAL测试了一下,SWO速度1MHz的时候,偶尔会丢失几个数据。
降低SWO速度到500KHz,就好很多了。

测试程序见附件。

STM32F407-LED5.rar

下载

13.7 MB, 下载次数: 3

zhousun 回答时间:2018-9-13 10:14:08
这个是mdk软件问题,不知谁熟悉IAR可以试试,看看有没有这个问题
radio2radio 回答时间:2018-9-13 16:16:02
zhousun 发表于 2018-9-13 10:14
这个是mdk软件问题,不知谁熟悉IAR可以试试,看看有没有这个问题

您也可以试一试,关闭SWO/Trace设置界面里面的Timestamps,这样SWO的数据量会小很多很多。
zhousun 回答时间:2018-9-14 19:41:04
radio2radio 发表于 2018-9-13 16:16
您也可以试一试,关闭SWO/Trace设置界面里面的Timestamps,这样SWO的数据量会小很多很多。 ...

好像不起作用,感觉不完全是软件问题,会不会和固件也有关系
radio2radio 回答时间:2018-9-14 20:34:17
zhousun 发表于 2018-9-14 19:41
好像不起作用,感觉不完全是软件问题,会不会和固件也有关系

也可能与硬件有关,SWO信号是走UART的通信协议的,几百KHz以上的时候,UART的信号极易受到干扰,如果发生接收错误,就不会再重新发送,只能放弃一个或几个数据包。

坊间许多开发板,都是IC脚直出直入,没有加比较靠谱的信号抗干扰/整形电路,这一点,你看看J-LINK V9的电路图就知道,人家的各种信号线上面都有小IC以及各种电阻电容外围零件支持,而我们的简化方案仅仅是做到逻辑原理层面的正确,自然就会可能出现各种的不稳定。

我在测试我做的DAP时,就遇到过一块干扰很大的开发板,直接会导致SWD连接时断时续,后来我把并排的杜邦线分开单线,相互距离稍微远一点,才勉强正常工作。用示波器一看,波形惨不忍睹。

建议,除非万不得已,使用较低一些的SWO速度,比如500KHz。
再就是,SWO使用过程中不一定需要一个数据不漏,偶尔缺少一些数据,不影响正常判断程序的工作情况。
zhousun 回答时间:2018-9-15 13:34:16
我后来考虑了一下,这块DAP有天生缺陷,按照全速USB2.0 HID速度只有64kbyte,如果SWO速度快了肯定不行,1mbps大概100KBYTE了
radio2radio 回答时间:2018-9-15 13:56:00
本帖最后由 radio2radio 于 2018-9-15 17:23 编辑
zhousun 发表于 2018-9-15 13:34
我后来考虑了一下,这块DAP有天生缺陷,按照全速USB2.0 HID速度只有64kbyte,如果SWO速度快了肯定不行,1mb ...

不是这样的,SWO不使用USB,SWO硬件上是走USART串口的RX的,STM32F103在72MHz时,USART硬件的最高速度可以到2Mbps。 我们使用SWO时所设定的速度,就是这个UART的硬件速度,并不是SWO数据传输的平均速度。

你可以用示波器看到SWO信号的波形,也可以用另一个UART转USB小板把SWO线连到其RX上,在PC端收到每一包数据,你会发现没有打开Timestamps时数据量会少很多。

由于串口没有纠错协议,收到错的数据只能丢掉。

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版