STM32F103C8T6 get minimum plate CMSIS-DAP functions and SWO

Reprinted: http: //www.stmcu.org.cn/module/forum/forum.php mod = viewthread & tid = 616081 & extra = page% 3D & page = 1?

2018-06-30 critical updates, attachments into source code.
2018-08-29 attachment update, the same github. Meanwhile upload GitHub: https://github.com/RadioOperator/STM32F103C8T6_CMSIS-DAP_SWO --------------------------------- ------------------------------- 2018-06-13 update Cortex-M start to get soft, do not connect the RESET line after downloading Cortex can immediately start automatically. 10 dollars can you do? Maybe we have enough to eat breakfast. But at 10 dollars you can buy a small board STM32F103C8T6 TB, the famous BluePill. <ignore_js_op>A few years ago, X893 big God transplant after CMSIS-DAP to F103 above, I think this is fun! ! ! So I spent some time, based on the X893 package, made the following improvements:1. Upgrade to the latest version CMSIS-DAP v2.0. 2.  achieve SWO main functions, namely forwards printf to SWO mouth. 3. JTAG function properly. 4. CDC function, using serial 2 (PA2 / PA3), has been improved. 5. To achieve a soft start function , you may not need to start the program when using the Reset connection. 6.  For STLINK cheap hardware, improved version made stable. <ignore_js_op>








 










 

<ignore_js_op>  


<ignore_js_op>  

<ignore_js_op>  

<ignore_js_op>  

<ignore_js_op>  

<ignore_js_op>  

Firmware Annex, hope to have interested friends helper test.

Annex, there are two of the flashing LED test program is used.
SWO use, you need to boot the kernel function of ITM.
Different debugging environment, start ITM inserted into the source code section, there may be differences, I do not really understand.
I only used KEIL, the system requires the existence of CMSIS.


<ignore_js_op>

STM32F103C8T6_CMSIS-DAP_SWO-master20180824.zip

 

使用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功能需要安装下面的驱动程序,我只测试过Win10和Win7。

<ignore_js_op>

Windows-USB-CDC-Driver.rar

 

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

1楼的附件里面的源代码,或者固件,也可以选择重定义SWD引脚的,这样用起来更像“真家伙”,特别是只用4个引脚的时候。
(选择SWD_REMAP后缀的)
<ignore_js_op> 

 

815 Bytes, 下载次数: 182, 下载积分: ST金币 -1

 

我也看过DAPLink,它要求有较大的RAM/ROM来模拟U盘,STM32F103C8的资源有限,我估计github没有的原因是这个问题。
DAPLink的底层关键部分还是CMSIS-DAP,目前用v1.1.0。

 

今天测试过一些IC开发板,

1. 两款STM32F407xx的板子,JTAG/SWD正常,SWO正常。
2. LPC824的,正常。
3. nRF51xxx的一款,正常。

重要提示,由于这种F103最小板的GPIO脚,没有加任何抗干扰的退偶稳定元件,都是直接连接出来的,所以,高速运行时很容易被干扰。
建议不要使用长线连接和排线连接,使用分开了的短线会效果更好。 如果直接应用到您的项目之中,建议几条数据连线外加退偶零件。
如果做成专用的成品小板,留意这一点,就不会有问题。

简单的解决方法,
1. 在Keil里面设定低一些的速度,我测试过,设置速度10MHz与1MHz的下载速度差别只有20%,建议使用1MHz。
2. 在每一条数据线上面,串联一个47~100欧姆的电阻

 

有了,见附件。
除了你给的IO线,还有2条线有功能,你可以自己连线测试,或者告诉我使用其他的GPIO线:
SWO - PB7
LED - PC13

另外,附件中的固件,移除了JTAG功能,我觉得没有实用价值,如果您需要,我可以做,但是需要JTAG的GPIO定义。

 

<ignore_js_op>

STM32F103C8T6_DAP-SWO_HUANG292.rar

 

142.41 KB, 下载次数: 100, 下载积分: ST金币 -1

今天,编译了两个固件,用于 ST-LINK V2仿真器,改成CMSIS-DAP,同时带有SWO和CDC功能。


附件中,-V20和-V21分别用于ST-LINK v2.0(只有一个LED),和v2.1(双色LED,或两个LED的)


如果要使用SWO/CDC功能,可能需要自己将有关GPIO线接到外面:
SWO ------------- PB7。
CDC -------------- PA2/PA3(USART2)。

有兴趣的朋友可以试试,TB的ST-LINK,价格已经低到连邮费不到15元,也是白菜价了。

 

Guess you like

Origin www.cnblogs.com/CodeWorkerLiMing/p/11275662.html