手頭的仿真器是JLINKV8,連接STM32F103時,使用SWD方式。
JTAG引腳示意圖: 
一、SWD和傳統的調試方式區別
1. SWD 模式比 JTAG在高速模式下面更加可靠
2. GPIO 剛好缺一個的時候,可以使用 SWD 仿真, 這種模式支持更少的引腳
3. 在板子的體積有限的時候推薦使用SWD 模式
二、仿真器對 SWD模式支持情況
1. 市面上的常用仿真器對 SWD模式支持情況
JLINKV8 非常好的支持 SWD仿真模式, 速度可以到 10M ULINK2 非常好的支持 SWD 模式,速度可以達到 10M
2. SWD硬件接口上的不同
(1) JLINKV7 需要的硬件接口為:GND, RST, SWDIO, SWDCLK
(2) JLINKV8 需要的硬件接口為: VCC, GND, RST, SWDIO, SWDCLK(注:下面有我自己用JLINKV8的實際連線及相應實驗結果)
(3) ULINK1 不支持 SWD 模式
(4) ULINK2 需要的硬件接口為: GND, RST, SWDIO, SWDCLK
三、在 MDK 中SWD 模式的設置
正常的JTAG需要20管腳,而J-Link的SWD只需要2根線(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就夠了(加上電源線也就4根),這樣就節省了3個I/O口(PA15/JTDI、PB3/JTDO、PB4/JNTRST)為其它所用,并且可節省一部分板子的空間(只需4個口就可以了)
第一步: 

第二步:  
另外,JTAG引腳可以被復用為IO口,但是這樣一來,JLINK就不能夠連上芯片了。解決的方法有兩種:
(1)另寫一段程序,不要將JTAG復用為I/O口,然后將這段程序用串口工具寫入芯片中
(2)將BOOT0/BOOT1設置成為內部RAM啟動,那么上電后就不會執行FLASH中的程序,這樣JLINK就能順利“接管”JTAG引腳
|