STM32的SWD除錯方式

2021-08-17 08:20:56 字數 1393 閱讀 7136

swd **模式概念簡述

一、swd 和傳統的除錯方式區別

二、**器對 swd 模式支援情況

1. 市面上的常用**器對 swd 模式支援情況

(1) jlinkv6 支援 swd **模式, 速度較慢。

(2) jlinkv7 比較好的支援 swd **模式, 速度有了明顯的提高,速度是 jlinkv6 的 6 倍。 

(3) jlinkv8 非常好的支援 swd **模式, 速度可以到 10m。

(4) ulink1 不支援 swd 模式。

(5) 盜版 ulink2 非常好的支援 swd 模式, 速度可以達到 10m。

(6) 正版 ulink2 非常好的支援 swd 模式, 速度可以達到 10m。

2. swd 硬體介面上的不同

(1) jlinkv6 需要的硬體介面為: gnd, rst, swdio, swdclk

(2) jlinkv7 需要的硬體介面為: gnd, rst, swdio, swdclk

(3) jlinkv8 需要的硬體介面為: vcc, gnd, rst, swdio, swdclk (注:下面有我自己用jlinkv8的實際連線及相應實驗結果)

(4) ulink1 不支援 swd 模式

(5) 盜版 ulink2 需要的硬體介面為: gnd, rst, swdio, swdclk

(6) 正版 ulink2 需要的硬體介面為: gnd, rst, swdio, swdclk

由此可以看到只有 jlinkv8 需要 5 個引腳, 即多了乙個vcc引腳,其好處是: **器對目標板子的**需要用到 rst 引腳, 使用**器內部的 vcc 作這個功能其實並不是非常美妙。 因此,jlinkv8 選擇了只和目標板共 gnd, 但不共 vcc。 因此我覺得這種模式最合理, 當然通常情況下**器和目標板共 gnd 和 vcc 是沒有錯的。

三、在 mdk 中swd 模式的設定

下面我說一下swd兩線**的一些步驟、注意事項及需要注意的問題。

介面的連線如下:將jlink的1、7、9、20分別與自己的開發板上jtag的vcc、jtms、jtck、gnd用杜邦線相連即可!

開啟工程option設定:

在設定中按照上圖設定成 swd 模式, 速度你可以按照你的實際需求來設定, 如果你的板子供電系統不是特別穩定, 紋波比較大或者**線比較長可以設定成 500k 或者 1m,如果環境很好當然可以選擇 10m , 當然速度會飛起來。

記得不要忽略了左下方的那個usb還是 tcp 模式, 當然我們是 usb 模式, 因為有的時候預設是 tcp 模式, 這個時候我們忽略這個設定後會**常常連線不上的。

按sw方式來除錯,實際需要接1,7,9,15,20腳,某些資料上說的需要6個腳(第13腳swo也需要連上)是不對的,swo不需要連線。

我的jilnk 和 開發板 接線圖:

stm32硬體除錯

stm32的基本系統主要涉及下面幾個部分 一 電源 1 無論是否使用模擬部分和ad部分,mcu外圍出去vcc和gnd,vdda vssa vref 如果 封裝有該引腳 都必需要連線,不可懸空 2 對於每組對應的vdd和gnd都應至少放置乙個104的陶瓷電容用於濾波,並接該 電容應放置盡量靠近mcu ...

STM32除錯問題

1 stm32用iar除錯出現error pe020 identifier file is undefined 解決方法 需要在 iar的options general options library configuration裡設定一下函式庫,不然printf函式不對,將library confi...

STM32簡單例程除錯

一 按鍵例程 key.c檔案 如下 按鍵初始化相當於gpio口的配置。步驟 時鐘設定,輸入輸出設定,io口屬性設定 include include key.h include delay.h 修改說明 按鍵初始化 void key init void 按鍵處理函式 返回按鍵值 u8 key scan...