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

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

[复制链接]
radio2radio 发布时间:2018-5-31 15:47
阅读主题, 点击返回1楼
赞 1 收藏 45 评论418 发布时间:2018-5-31 15:47
418个回答
radio2radio 回答时间:2020-7-10 22:14:03
abcd44 发表于 2020-6-17 19:507 [( x1 @1 V" S# c3 j
楼主你好!为何下载的软件复位固件没法用?芯片型号是stm32f103rbt6,对应的引脚定义为PB14->SWDIO,PB13-> ...

& x. H! v. U* C1 H不好意思,今天刚刚看到,您的问题解决了吗。
lzhang97 回答时间:2020-7-21 22:20:20
大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3,程序怎么修改可以使用uart3啊
radio2radio 回答时间:2020-7-21 23:26:47
SUSTZL 发表于 2020-7-21 22:20
) U+ h% }" Q; z+ a大佬,去年撸了两个芯圣的板子,调试器用的103c8,想把这个调试器扣下来刷成DAP,原来板子上串口用的uart3 ...
2 y! `% n( o, i6 |7 N
这个似乎不难,利用全局查找私有代码,将所有UART2 / USART2相关的代码,改成UART3 / USART3试一试。
tdmn3374 回答时间:2020-7-29 17:04:04
好东西,感谢分享
拜仁主将 回答时间:2020-8-10 16:07:19
搞定了
0 g1 w) o0 d# |- {7 M' b
aogetuya 回答时间:2020-8-17 21:00:29
大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?
versenkt 回答时间:2020-9-19 16:27:37
LZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CONFIG.H,现在SWD正常,PC也能识别出VCP,但是没办法正常收发。 串口工具发几条就会死掉,RXTX短上也没有数据。串口应该是没问题的,给它刷固件就用的flash loader demo 串口刷的。是还要改动什么地方吗?测出来的MCU引脚图:5 v) a9 [( ~  ~( T9 i1 ]9 `
PZDAP.png " s1 x1 Y& b$ q7 q! f
改动的代码:
$ S) T) H. g7 bDAP_Config.h:
. R7 n( M- Z1 L+ U" [' [#define SWO_UART                0) c) j) a3 ]7 S- d" G" j- Y
5 w* O# ]7 z  r# u/ C& h
#define USART_CDC_CLOCK(state)      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, state)
. i- t; Y; M) R#define USART_CDC_GPIO_CLOCK(state) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, state)6 o/ B  ]) p6 a! }5 g% c+ w
#define USART_CDC_REMAP()           /* GPIO_PinRemapConfig(..., ENABLE) */
) P2 z0 ~! W0 u1 l- n8 a' Q" C. p/ g: u' O& X, g
#define USART_CDC_PORT        1     //USART1
9 H" {; W; n8 U% ?* g#define USART_CDC_GPIO        GPIOA+ m: L8 x5 P* h
#define USART_CDC_TX_PIN_MASK GPIO_Pin_9. H% _6 h2 S! M) d+ Y* b( H
#define USART_CDC_RX_PIN_MASK GPIO_Pin_10
: P4 C! F- t, t3 N9 ^#define USART_CDC_IRQn        USART1_IRQn+ F4 |" G+ N* T- }
#define USART_CDC_IRQHandler  USART1_IRQHandler
, g) \. _+ H  R8 u# Z/ z- C. k5 G3 W( J#define USART_CDC_BUFFER_SIZE (1024)  /*  Size of Receive and Transmit buffers MUST BE 2^n */7 J: {2 y9 M2 Z3 }, Q% `+ x3 m
; z8 @; I( d5 l. O. \% @

& P) w1 |& M* `, l3 z7 [. y2 j% e#define PIN_USB_CONNECT_RCC   RCC_APB2ENR_IOPAEN9 K, o, o8 b+ c3 V* |
#define PIN_USB_CONNECT_PORT  GPIOA" v9 C. p4 P( {* U1 k0 K- D
#define PIN_USB_CONNECT_PIN   8
5 {  ?; ?; h" \* r) x" z: S/ F
( y: D2 h/ Y4 B; z% O8 f+ N8 [7 P  ]+ ^+ o) v) M0 m
// TDI Pin (output)
7 K8 f) ~* b0 w) @3 l, z2 B4 }#define PIN_TDI_PORT        GPIOA
; t& V0 B/ Y" E5 U1 @#define PIN_TDI_PIN         79 }1 n+ t' k1 w: m" v8 d, d

( v' m; G. i  ~9 q1 t// SWDIO/TMS Pin) N5 U4 j# Z9 C4 P
#define PIN_SWDIO_TMS_PORT  GPIOA
8 H3 @  i; b$ Z( ~& k; D* l#define PIN_SWDIO_TMS_PIN   1# H2 a7 D: ?6 Z$ Q: G) w1 P  J, |
" U/ \/ B* F1 A  x0 X7 c
// SWCLK/TCK Pin
8 A$ I$ {" [7 U% p7 \#define PIN_SWCLK_TCK_PORT  GPIOA4 X7 `6 ]8 B5 z
#define PIN_SWCLK_TCK_PIN   5: j, K8 B+ e1 q) \0 J' e  A

7 C: A# e. d* X9 K7 j* S// TDO/SWO Pin (input)              //remap USART1_Rx_Pin to PB7 for SWO
3 ]; ]6 R6 W- ]$ B#define PIN_TDO_PORT        GPIOB
; h+ ]6 ?1 s, h, H# G#define PIN_TDO_PIN         7& Y% N  u' U3 }* D2 E/ d- N

+ e: l; L) H- h& r* i2 a// nRESET Pin
4 C: c+ [: e! J8 {#define PIN_nRESET_PORT     GPIOB
! n6 |$ z7 g2 z#define PIN_nRESET_PIN      0
7 W) d/ n! B  h9 a# w
0 e) Q8 Y  _, q  \& o4 i$ s' C! b  N
radio2radio 回答时间:2020-9-21 21:23:03
aogetuya 发表于 2020-8-17 21:00
' A: K3 f8 a4 E大佬,“CDC功能,使用串口2(PA2/PA3),已经改进。”,为什么要使用串口2?
: {! j; ]% z/ g. h% `* Y
因为串口1的Rx线被SWO/TDO占用了。
radio2radio 回答时间:2020-9-21 21:40:10
versenkt 发表于 2020-9-19 16:27
3 ]+ u# I, B" _# i9 k8 H  kLZ你好,我用的是普中的DAP仿真器。上面引出了串口1,所以想把串口1给CDC,把所有引脚量出来然后改了DAP_CO ...

5 P, F8 R4 m: F1 V这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。9 A; x' z+ C" F# T! [

, [2 S5 L. i/ O& p2 K: `. k由于SWO/TDO的引脚PB7,使用了USART1的Rx线的功能,您要改动VCP使用USART1,就要把SWO/TDO搬到USART2的Rx线去,或者禁止SWO和JTAG功能。 需要改动的地方比较多。
1 o7 m% b8 g& Z, y9 R" c$ |* p" Q3 {' o& @
如果,不想麻烦,建议另买一块Bluepill小板(研究源码),或者STLINKv2的山寨仿真器刷DAP(这个实用),都是十多元钱事儿。
% j6 R6 l- O$ u9 g
versenkt 回答时间:2020-9-23 08:11:40
radio2radio 发表于 2020-9-21 21:40, Y( t: T! ^& o: T) B8 p$ g
这个,我只能给一点提示,因为没有试过,没有办法具体说出正确的改动方法。' R) R" q% P3 H6 i

. w% F1 o2 c. w! K' Z( O由于SWO/TDO的引脚PB7,使用 ...

* B5 T8 m0 c; b5 A+ U9 \好的,我再研究下,谢谢回复,主要是想废物利用下
laobiaixng 回答时间:2020-10-7 11:26:06
不错,正好手上有块核心板,做个DAP试试。
kaide 回答时间:2020-11-5 13:52:48
radio2radio 发表于 2018-10-14 02:01" M1 P1 e4 I' ~7 E8 [8 @) v
不好意思,今天才看到,匆匆做了一个,您先试一试。可能问题多多。4 D, y" ~; |0 C& e9 P: i6 @4 j: K

# U* q5 i  F& M( ^, f7 V4 B9 c我是用BOARD_V1的环境改出来的,发现 ...
! w$ J. `! M5 ^, g
大佬,是我的板子芯片问题吗,我用好的DAPLINK给这个蓝色板子刷了好几个DAPlin固件都是不能在KEIL中识别到,但是电脑可以显示出U盘,和硬件管理那可以显示出串口,可以用疮口下载,就是不能在keil中识别,买了两块最小系统板板子都不能识别,有一个板子还是在优信买的。折腾了好久都没成功,怀疑是不是芯片问题
wth_arm 回答时间:2020-11-13 15:46:19
各位大吓,那一个版本的代码可以在UV4下编程使用,我用V2.0的链接出错。求大吓指点迷津
wth_arm 回答时间:2020-11-13 15:57:25
改用三楼的那个也是一样,编译没问题,链接出错。
1 _" f  j9 c8 |  Ylinking...0 n' x$ t4 P, _% D3 z9 l2 \
.\CMSIS-DAP\CMSIS_DAP.axf: Error: L9937E: RL-ARM is not allowed with this license" G5 x3 `# W+ u  N7 z& c
.\CMSIS-DAP\CMSIS_DAP.axf: Error: L9937E: RL-ARM is not allowed with this license  W4 m) }9 M7 u0 G% o/ L
.\CMSIS-DAP\CMSIS_DAP.axf: Error: L9937E: RL-ARM is not allowed with this license
- t: {  y+ `! _.\CMSIS-DAP\CMSIS_DAP.axf: Error: L9937E: RL-ARM is not allowed with this license
3 [2 j" w, d4 e. f6 W9 i5 y8 }  W.\CMSIS-DAP\CMSIS_DAP.axf: Error: L9937E: RL-ARM is not allowed with this license
radio2radio 回答时间:2020-11-13 16:39:36
wth_arm 发表于 2020-11-13 15:46
1 W& m* O( q- f/ P) e7 M* [各位大吓,那一个版本的代码可以在UV4下编程使用,我用V2.0的链接出错。求大吓指点迷津 ...
& F9 X5 P! q! e, k" x
用MDKv5.xx试一试,安装MDKv4兼容包。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版