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

【源代码】STM32F103C8T6最小板搞定CMSIS-DAP和SWO功能  

[复制链接]
radio2radio 发布时间:2018-5-31 15:47
2018-06-30重要更新,附件换成了源代码。
2018-08-29附件更新,与github相同。
2019-12-24重要更新,速度提升,功能不变。

github:http://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO

----------------------------------------------------------------
2018-06-13更新,搞定Cortex-M的软启动,不用连接RESET线,下载后Cortex也能马上自动开始运行。

10元钱能干什么?也许早餐都吃不饱。 可是10元钱在TB可以买到STM32F103C8T6的小板子,著名的BluePill。

BluePill

BluePill

几年前,X893大神就移植过了CMSIS-DAP到F103上面,我觉得这个很好玩!!!

于是我就花了一些时间,在X893包的基础上,做了如下改进:
1. 升级到CMSIS-DAP v2.0最新版。
2. 实现了SWO的主要功能,即printf转发至SWO口。
3. JTAG功能正常。
4. CDC功能,使用串口2(PA2/PA3),已经改进。
5. 实现了软启动功能,使用时可能不需要Reset连线启动程序。
6. 针对STLINK的廉价硬件,做出了改进版本,稳定。

HW_Connections.jpg

1.SWD_Remapped.jpg


STLINK-01.jpg

STLINK-02.jpg

STLINK-03.jpg

Schematic(part) STLINK_V2A_V2B.jpg

Readme6.jpg


注意,现在原装ST的F103不好找了,市场出现大量使用山寨的F103的板子。
山寨的F103有几种,已知的一种是CS32F103xxxx,另一种是GD32F103xxxx,有的甚至直接打印成STM32F103xxxx冒充原装,无法分辨。

即使卖家声称是ST原装的,也不能完全相信。

固件见附件,附件里面有两个LED的闪灯程序用来测试SWO功能用的。
使用SWO功能,需要启动内核的ITM功能。不同调试环境,启动ITM插入源代码的部分,可能有区别,我也不是很明白。



STM32F103C8T6_CMSIS-DAP_SWO-master20200509.zip

下载

3.48 MB, 下载次数: 9382

评分

参与人数 7 ST金币 +40 收起 理由
迟到的梦想 + 1 很给力!
xiaoshen-372360 + 10
toofree + 10 很给力!
我的人生我迷茫 + 1 赞一个!
玉宇swh + 2 赞一个!
wofei1314 + 8 赞一个!
子曰好人 + 8 很给力!

查看全部评分

1 收藏 43 评论399 发布时间:2018-5-31 15:47

举报

399个回答
happyavr128 回答时间:2020-2-4 17:26:56
楼主大神啊!
kernerl 回答时间:2019-12-7 13:30:15
找到一个可以编译通过的文件,不过好像有个DAP_config.h这个文件的版本不一样。

CMSIS-DAP.zip

下载

1.6 MB, 下载次数: 60

radio2radio 回答时间:2018-10-14 02:01:43
FireHero 发表于 2018-10-9 17:18
楼主你好,我下载了github上最新的代码,安装了Keil4兼容包之后,可以正常编译下载

下载到板子上后,USB插 ...

不好意思,今天才看到,匆匆做了一个,您先试一试。可能问题多多。

我是用BOARD_V1的环境改出来的,发现原来的BOARD_V1就是一部分代码有问题,因为我没有这个硬件,没有办法验证,只能由它去了。 主要是这种板子占用了PA2/PA3的USART2,CDC只好搬到USART1,比较乱的说。您先用用看。
附件的代码,我在SWD模式在F103目标板测试过,CDC测试过,都正常。
JTAG模式没有测试。

F103-DAP-SWO-CDC-BOARD_V1.rar

下载

29.59 KB, 下载次数: 195

点评

谢谢分享  发表于 2019-3-25 00:53
漫步云端-345339 回答时间:2018-8-8 10:58:03
huangxuejia-292 发表于 2018-7-25 15:00
改好了,调试能复位。
MSD(U盘拖放)无法复位。。。

你是用的STM32做的DAPLINK吗
radio2radio 回答时间:2018-6-15 13:54:57
bjrzs 发表于 2018-6-15 13:40
请问,这个最小系统板 通过USB 口接电脑,需要什么驱动程序呢?

通常不需要专门的驱动程序,CMSIS-DAP仿真器是使用Windows的HID接口,使用Windows自带的HID驱动程序。我试过Win10、Win7,没有问题。
(留意USB的线缆要用质量好一些的,和短一些的,以免影响USB的信号质量,市面上太多廉价+缩水的USB线!)

CDC功能,Win7需要安装一次驱动,文件在源码包里面有。

toofree 回答时间:2018-5-31 18:06:32
强力支持,楼主厉害
yangjiaxu 回答时间:2018-5-31 20:01:24
有点儿意思啊 支持楼主
radio2radio 回答时间:2018-5-31 22:18:42
使用SWD-SWO调试程序,是Cortex-M3/M4等高级ARM芯片特有的内核CoreSight独有的。
优点:
1. 对原来程序的时序影响很小。
2. 仅多用了一条SWO线(JTAG的JTDO线,F103是PB3引脚)。
3. 不占用串口,却可以方便地使用【printf】功能打印输出。
4. 速度快于串口,我测试过我这个SWO板子,500Kbps可以稳定输出,不丢数据。
5. 其他SWD/JTAG的断点功能,查看内存/寄存器变量功能,都有。
6. 烧录程序,和J-Link/ST-Link一样。
7. 成本低,10元的小板子,烧入固件就成了。不用再便宜了,路费人工都远不止10元。
8. ARM开源的,随便集成到你的开发板上面。

缺点:
1. 速度比J-Link慢,因为F103的这个小板内核速度不够快。下载速度不知多少,10元的能用已经很好。
2. SWO功能只能用于Cortex-M3/M4/M7......,不能用于Cortex-M0/M0+(内核不支持),其他功能可以用。
3. SWO功能只能用来单方向输出数据,不能像串口调试那样可以和上位机互动。
4. SWO功能不支持目标程序中的DMA部分,估计是ARM的CoreSight有限制。
5. 不支持软件复位。我改的软件,20180613版(见1楼)已经增加软件复位功能,只支持Cortex。
6. CMSIS-DAP的最高速度,还有功能,应该受限于ARM/KEIL的限制,不然商用的几千上万元专业仿真器还怎么卖?

我的板子:
SWD mode:                                                        PortNo
                                                SWDIO              PB9
                                                SWCLK              PB8
                                                SWO                 PB7
                                                nRESET             PB6
JTAG mode:
                                                JTMS                 PB9
                                                JTCK                  PB8
                                                JTDO                 PB7
                                                nRESET              PB6
                                                JTDI                   PB5
                                                nTRST                not available
                                                
CDC Function:
                                                UART2-TX           PA2
                                                UART2-RX           PA3
                                                
------------------------------------------
SWD Test passed!
JTAG Test passed!

Individual test results:
Execution breakpoint: passed
Breakpoint on read:   passed
Breakpoint on write:  passed
Register read:        passed
Register write:       passed
Memory read:          passed
Memory write:         passed
Control flow:         passed

CDC function:            OK
SWO function:           OK for printf-to-SWO
Soft-Reset function:   OK for Cortex-M
-----------------------------------------------------------------------------------

另外,安装时,HID不需要驱动。CDC功能,Win7需要安装1楼附件包里面的驱动程序。

radio2radio 回答时间:2018-5-31 22:56:47
本帖最后由 radio2radio 于 2018-7-15 00:11 编辑

有关CMSIS-DAP的项目,在硬件成本超过20元的板子上面做没有实际意义,这也是我集中精力做F103小板的原因。
50-100元,可以买到A货的J-Link v9, 性能比CMSIS-DAP好。
160元可以买到正宗的LPC-LINK2(CMSIS-DAP的高速USB版本,开源的)。

1楼的附件里面的源代码,或者固件,也可以选择重定义SWD引脚的,这样用起来更像“真家伙”,特别是只用4个引脚的时候。
(选择SWD_REMAP后缀的)
1.SWD_Remapped.jpg
gzbkey 回答时间:2018-6-1 17:38:58
厉害了,我现在用的一个dap,没有软件复位,必须接硬件复位,然而接上硬件复位,完全无法识别
CMSIS-DAP v2.0 有没有软件复位???
radio2radio 回答时间:2018-6-1 23:46:18
本帖最后由 radio2radio 于 2018-10-27 12:11 编辑
gzbkey 发表于 2018-6-1 17:38
厉害了,我现在用的一个dap,没有软件复位,必须接硬件复位,然而接上硬件复位,完全无法识别
CMSIS-DAP  ...

1楼的最新版,已经加入了软件复位功能,仅对Cortex的MCU有效。
wuxiu123456789 回答时间:2018-6-3 08:54:11
楼主,这个只是HEX吧?有源程序,仰慕一下吗?
zwei99999999 回答时间:2018-6-3 10:08:35
huangxuejia-292 回答时间:2018-6-3 12:18:09
百度或者淘宝反客科技,他们做的DAP,修改了固件,带软件复位,但是他说肯能只是针对特定内核,因为不同的内核软复位指令可能不一样。

所属标签

STM32团队

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


最新内容

相似技术帖

官网相关资源

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