打印

SWD 接口

[复制链接]
21855|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhang..yb|  楼主 | 2010-12-13 13:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
要用 SWD 调试,需连接几根线?除 SWDIO SWCLK外还需连其它线吗?
沙发
winloop| | 2010-12-13 13:42 | 只看该作者
VCC GND

使用特权

评论回复
板凳
zhang..yb|  楼主 | 2010-12-13 13:44 | 只看该作者
谢谢楼上!

使用特权

评论回复
地板
liuq| | 2010-12-13 20:17 | 只看该作者
至少三根线,VCC肯定不是必须的。

使用特权

评论回复
5
mcuisp| | 2010-12-13 22:55 | 只看该作者
nRST这个最好接上

使用特权

评论回复
6
liuq| | 2010-12-14 09:36 | 只看该作者
请问ls,
何时需要nRST?
何谓最好?
对于科学,应该只有TRUE和FALSE。

STM32和Cortex的设计者在对于SWD应用时,已经考虑在连接时不使用nRST信号的。
对于其它半导体厂商,由于设计时的欠考虑而不得不加此信号。

使用特权

评论回复
7
winloop| | 2010-12-14 09:59 | 只看该作者
刘工,那为什么STM8的调试口不去掉RST呢?

使用特权

评论回复
8
mcuisp| | 2010-12-14 10:39 | 只看该作者
科学的说法,应该是逻辑学只有TRUE和FALSE,呵呵。
科学应该不止TRUE和FALSE。
一般来说,需要remap SWD的两个脚时,最好引出nRST。

使用特权

评论回复
9
香水城| | 2010-12-14 10:57 | 只看该作者
刘工,那为什么STM8的调试口不去掉RST呢?
winloop 发表于 2010-12-14 09:59


STM8的调试口有SWD的功能吗?

使用特权

评论回复
10
liuq| | 2010-12-15 10:56 | 只看该作者
7楼:
STM8没有采用SWD调试方式。

使用特权

评论回复
11
liuq| | 2010-12-15 10:59 | 只看该作者
8楼:
remap不应在SWD讨论之列。
它是半导体厂商在调试接口之外的扩展。

使用特权

评论回复
12
mcuisp| | 2010-12-15 11:10 | 只看该作者
刘工,你是对的,非常佩服您的严谨。

我这里讨论的默认是STM32的SWD,没有说明白。

使用特权

评论回复
13
vigia| | 2010-12-15 11:41 | 只看该作者
我觉得应该这么理解

nRST肯定可以用来复位

没有nRST,也可以通过其他方式复位

所以,是不是需要nRST,其实取决于所用的调试器到底使用了什么方式来复位芯片。如果一个调试器,只支持nRST的复位方式,板子的nRST线还是必须的。

使用特权

评论回复
14
liuq| | 2010-12-15 13:10 | 只看该作者
与13楼商榷:
您的结论是“板子的nRST线还是必须的”,我持保留意见。
“必须的”是指没有是不行的,那不是大部分SWD用户都无法调试啦?
其实不然,对于STM32(请不要用其它公司CortexM相比),三根线(包含GND)是完全足够的!
我对S1,S2,T1,T2,N1,N2,E,F,A公司的CM3/CM0多达数百种芯片近100个系列的测试,只发现N2需要(是必须)用nRST信号的,其它完全可以不要!
对于调试器设计者来说,软件是可以通过升级应用程序来解决的。

使用特权

评论回复
15
ST_ARM| | 2010-12-15 13:27 | 只看该作者
关于nRST是否需要的问题,关键是你使用什么调试软件,如果你使用IAR,那就可以不接。如果你使用Keil,这个引脚是需要的。
理由:
IAR的复位按钮只是用于复位软件里的PC指针,并没有通过与它相连的调试器对STM32进行硬件复位。所以在使用IAR时,nRST就没有必要了,liuq是IAR的代理,所以他觉得nRST不需要。
Keil的复位按钮可以通过与它相连的调试器对STM32进行硬件复位,调试时可能方便一点,我没有使用Keil,我对Keil了解不多。

使用特权

评论回复
16
liuq| | 2010-12-15 16:26 | 只看该作者
的确我们是推广IAR的。
但对于调试器/仿真器来说100%的复位都是通过一个或两个或多个寄存器来实现的。
nRST复位与CortexM的复位,在调试过程中是不相关的,即本身就无关。
通俗一点说:nRST复位后的过程:1.SWD与CortexM必须进行连接;2. 必须访问寄存器DHCSR或DEMCR(有些厂家的MCU)中的复位bit或外设复位寄存器中的位;3. 软件设置PC(这是假的,为调试而设置的)。关键是过程中的第二点,这才是复位的核心。有没有nRST,上述过程缺一不可。

使用特权

评论回复
17
crazy_mcu| | 2010-12-15 16:43 | 只看该作者
要不要nRST, 要看具体问题的。

举一个例子:
比如芯片尺寸很小,管脚很少,每一个管脚都是无比宝贵的资源,
独立分出两个管教给SWD用,实在过于浪费。
于是会考虑将SWD的管脚,也和其他GPIO等复用了。
这样,如果芯片里原先有其他程序,将管脚复用设成非SWD, 就无法调试。
只有reset一下,SWD才有机会抢过来用。
NXP的LPC1102, Nuvoton的M051,都有这样的设计。
这是从用户角度出发的考虑。除非芯片很大,管脚很多,用户不在乎浪费几个管脚。

这是从芯片角度看。
从debugger工具厂商看,不支持nRST的debugger, 不能不算是缺陷了。

使用特权

评论回复
18
liuq| | 2010-12-15 16:49 | 只看该作者
ls:
前半部分走题了,后半部分同感!

使用特权

评论回复
19
crazy_mcu| | 2010-12-15 17:07 | 只看该作者
ls, 所以真正欠考虑不是其他半导体厂商,而恰好是STM32?
它没有考虑开放SWD的管脚复用,两根pin至少可以多连一个UART呢。
希望STM32以后能改进。

使用特权

评论回复
20
香水城| | 2010-12-15 17:41 | 只看该作者
ls, 所以真正欠考虑不是其他半导体厂商,而恰好是STM32?
它没有考虑开放SWD的管脚复用,两根pin至少可以多连一个UART呢。
希望STM32以后能改进。
crazy_mcu 发表于 2010-12-15 17:07


谁告诉你说,STM32没有开放SWD的管脚复用?

请你好好地看看手册吧,:lol

STM32_Debug_Pin_Remap.GIF (15.14 KB )

STM32_Debug_Pin_Remap.GIF

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

103

主题

441

帖子

1

粉丝