SWD協議研究

2021-07-27 05:54:18 字數 1085 閱讀 9256

1.寫這個文章主要是介紹整理一下關於swd協議,感覺網上對它的介紹不多。再就是自己進行乙個學習記錄的總結。豐富一下網路的資料。

正文:

首先,swd協議是arm核心偵錯程式的一種通訊協議。st的微控制器stm32103系列的除錯埠可以是jtag或者是swd的埠。今天主要說一下用乙個微控制器的io口模擬swd協議來燒錄另一片微控制器。主要參考文件<

®debug inte***ce architecture specification 

adiv5.0 to adiv5.2 >>

swd協議簡單來說可以說是另一種方式來配置微控制器內部暫存器,通過它可以配置微控制器內部幾乎所有的暫存器(不太嚴謹)。想用swd協議和微控制器進行通訊首先必須了解dp,ap所相關暫存器。關於dp,ap所包含的暫存器的具體意義就自己慢慢看文件理解。我說的主要是其中可能會出問題的地方:1.當用swd協議進行通訊的時候首先是傳送jtag轉swd介面的命令。2.就是關於協議的讀寫,我理解的是資料會在時鐘的下降沿的時候進行取樣(我這樣寫的程式沒有任何問題)。在上公升沿的時候進行資料的翻轉。

讀協議:

我們可以看到協議先傳送命令然後目標機回應資料,根據回應 的值進行判斷是否準備好或者錯誤或者等待。接下來的就是可以讀取的資料。這個讀的協議沒什麼問題。

寫協議:這是需要重點注意的地方

我當時寫資料的時候發現有時候寫的進去不會報錯,有的時候寫的資料會報錯。當時很是不解看示波器波形也都是沒什麼問題。後來經過自己反覆實驗在寫資料之後也就是校驗位之後再加乙個週期的時鐘。後來發現文件上最後竟然還有乙個時鐘週期,當時沒有注意。這告訴我千萬不要忽略文件上任何乙個小的細節。一般來說像arm這種大公司的官方文件還是很可靠的。

SWD應用介面

隨著arm公司對cortex系列的推出,取樣swd方式除錯成了大家的首選。swd不僅速度可以與jtag媲美,而且使用的除錯線少得多。很多人在取樣swd方式進行除錯時,一般都是採用4線 vcc 電源 gnd 地線 swdio 資料 swclk 時鐘 pin 1 gnd pin 2 nrst pin 3...

Android SyncML協議研究

syncml程式框架是建立在同步描述協議 syncml representation protocol 和同步協議 syncml synchronization protocol 兩個協議的基礎上的.同步描述協議定義了同步訊息 in xml 的格式描述和在同步框架內工作的細節.同步協議定義了同步客服...

ping R ICMP協議研究

icmp p i n g程式為我們提供了檢視 i p記錄路由 r r 選項的機會 ping 使用icmp協議,並只執行在ip網路層.下面是tcpdump抓取的選項,rr選項是ping路由資訊,ip是出口位址.16 43 t sudo tcpdump ev icmp sudo password for...