天天看點

關于STM32 調試工具JLINK

今天4月6号,淘寶買的JLink剛到,折騰了一晚上,終于能聯合MDK下載下傳和調試,趁腦子還在,先寫一點關于已有知識的總結。

首先我的開發環境是MDK3.80,JLink的版本是V4.12,我是照着這個文檔一步一步調試成功的《 keil MDK之JLink問題 》–百度文庫 我用的JLink驅動是JLink V4.12版本驅動下載下傳

關于JTAG、SWD、JLINK、ULINK

JTag和SWD

JTag和SWD實際上是調試ARM的兩種接口,在ARM内部都有嵌入對應的硬體實作調試,SWD相對JTag需要較少的引腳。

JTag、JLink、ULink

這裡說的JTag不同于上面說的JTag,上面的是一種調試接口,這裡的是調試的工具,是硬體。先說Jlink和ULink,這實際上是兩個ARM編譯軟體公司開發的硬體,ULink是MDK公司的,隻能MDK公司用,而Jlink是ADS公司的,當MDK的編譯軟體也相容它,兩個調試工具都支援JTag和SWD接口。這裡說的JTag是一個隻支援JTag調試接口的調試工具,它和JLink的差別是:

  1. 在電腦上寫一個服務程式,把IAR、KEIL和ADS中的RDI指令解析成相關的JTAG協定,然後通後一個實體轉換接口(注意,這個轉換隻是電氣實體層上的轉換,就像RS232那樣的作用)發送你的的目标闆。 H-JTAG就是這樣的。 H-JTAG的硬體就僅是一個實體電平的轉換接口,是以很簡單。而電腦中裝的h-JTAG軟體就是前面說到的服務程式,負責協定轉換的。
  2. 做一個闆,用此闆直接接收來自IAR、KEIL和ADS等軟體的調試指令,由此闆做RDI->JTAG協定的轉換。然後與目标闆通信,這就是JLINK的工作原理。

上訴文字出處以及JTag工作原理請戳

有一篇特别好的關于JTag接口的詳細原理包括硬體的文章,我随意百度是看到的,真心不錯于是收藏,需要的童鞋可以百度關鍵詞Open-JTag,或者上我資源下載下傳ARM-JTAG (資源積分1分,賺點小錢,百度都有,土豪随意)

class="preview-iframe" scrolling="no" src="http://download.csdn.net/source/preview/8572539/1a4e63d964e5db96ac644495878971f6" height="523" width="738">

JTag接口

JTag接口常見有20P和14P兩種,其中關于調試的引腳的介紹以及是否可選在上面的Open-Jtag中有詳細的說明(TCK、TDI、TDO、TMS是強制選擇的),下面隻是講一下20P實體接口

關于STM32 調試工具JLINK

其中1号腳VREF是用于檢測開發闆電源電壓,在JLink Commander中可以看到目标闆的電壓。2号腳在有的山寨JLink中可以通過一個跳線選擇是否輸出3.3V為開發闆提供電源。19号腳是電源腳可以在JLink Command中通過power on、power off設定是否開啟,power on perm、power off perm可以設定預設值。

MDK上的設定

MDK3.80提供了很多調試器供選擇

關于STM32 調試工具JLINK

其中關于JLink的有:

JLINK/J-TRACE

Cortex-M3 J-LINK

RDI Interface Driver(這個是JLink提供的一個調試接口)

個人覺的這個是

JLINK/J-TRACE的配置方式剛開始已經講過,Cortex-M3 J-LINK的配置方式可以參考Jlink在MDK下使用Cortex-m3-Jlink模式開發STM32的說明-百度文庫 (我MDK3.80+JLINK V4.12親測可用。)其中Cortex-M3 J-LINK模式可以選擇JLINK以JTAG工作還是SWD。

下面談一些個人的了解

1.對于我買的¥70的JLink使用RDI并不能成功,使用Cortex-M3 J-LINK比JLINK/J-TRACE調試更穩定,下載下傳也更快

2.這邊MDK提供的3種模式,隻是對于使用者層面的三種方式,在底層還是基于ARM的JTAG和SWD接口

繼續閱讀