国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

SWD協議研究

2019-11-08 01:40:17
字體:
來源:轉載
供稿:網友

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

  正文:

             首先,SWD協議是ARM內核調試器的一種通信協議。ST的單片機stm32103系列的調試端口可以是jtag或者是SWD的端口。今天主要說一下用一個單片機的IO口模擬swd協議來燒錄另一片單片機。主要參考文檔<<ARM?Debug Interface Architecture Specification ADIv5.0 to ADIv5.2 >>

           SWD協議簡單來說可以說是另一種方式來配置單片機內部寄存器,通過它可以配置單片機內部幾乎所有的寄存器(不太嚴謹)。想用SWD協議和單片機進行通信首先必須了解DP,AP所相關寄存器。關于DP,AP所包含的寄存器的具體意義就自己慢慢看文檔理解。我說的主要是其中可能會出問題的地方:1.當用SWD協議進行通信的時候首先是發送jtag轉SWD接口的命令。2.就是關于協議的讀寫,我理解的是數據會在時鐘的下降沿的時候進行采樣(我這樣寫的程序沒有任何問題)。在上升沿的時候進行數據的翻轉。

 讀協議:

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

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

            

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

 %20 %20 %20 %20 當通信協議都沒有問題了,就可以通過通信協議修改單片機內部的寄存器了。我們可以看到每次讀寫的數據都是32位的數據,但是發現當想通過它來寫內部Flash的時候發現對flash的寫操作只能是半字(16位)的形式。此時就需要修改AP寄存器組的CSW寄存器SIZE位。以此改變傳輸的位。這里發現網上很多都沒有介紹。當可以燒寫flash的時候已經就可以制作一個離線下載器了。%20  

 %20 %20 %20 %20 %20 %20 %20關于SWD數據一級一級的進行傳遞的方式,看文檔一般都可以理解的。參考下圖:

                      


上一篇:n a^o7 !

下一篇:Unit8 數組

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虞城县| 资中县| 淮北市| 乌拉特前旗| 兴安县| 泰来县| 开化县| 吉木乃县| 阿克| 宁安市| 博爱县| 奉节县| 定边县| 兖州市| 靖远县| 循化| 孝义市| 大方县| 青田县| 定襄县| 沙湾县| 开远市| 太仓市| 杂多县| 宁都县| 扎赉特旗| 柯坪县| 沛县| 永顺县| 湾仔区| 绩溪县| 辰溪县| 山丹县| 景洪市| 江油市| 郧西县| 夏河县| 宜城市| 通渭县| 怀集县| 南皮县|