搞嵌入式開發(fā)和ARM開發(fā)搞了半輩子了,調(diào)試程序是不可避免的。接觸了那么多的調(diào)試規(guī)范、調(diào)試工具、調(diào)試手段,彼此之間的關(guān)系卻也不是特別清楚,今天就來捋一捋: JTAG協(xié)議 JTAG(Joint Test Action Group,聯(lián)合測試行動小組)是一種國際標準測試協(xié)議(IEEE 1149.1兼容),主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標準的JTAG接口是4線:TMS、 TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。 相關(guān)JTAG引腳的定義為:
JTAG協(xié)議在定義時,由于當時的計算機(PC機)普遍帶有并口,因而在連接計算機端是定義使用的并口。而計算機到了今天,不要說筆記本電腦,現(xiàn)在臺式計算機上面有并口的都很少了,取而代之的是越來越多的USB接口。所以,目前市場上已經(jīng)很少看到它的身影了。 SWD接口 串行調(diào)試(Serial Wire Debug),應(yīng)該可以算是一種和JTAG不同的調(diào)試模式,使用的調(diào)試協(xié)議也應(yīng)該不一樣,所以最直接的體現(xiàn)在調(diào)試接口上,與JTAG的20個引腳相比,SWD只需要4個(或者5個)引腳,結(jié)構(gòu)簡單,但是使用范圍沒有JTAG廣泛,主流調(diào)試器上也是后來才加的SWD調(diào)試模式。 SWD和傳統(tǒng)的調(diào)試方式區(qū)別:
RDI接口 遠程調(diào)試接口(Remote Debug Interface),是ARM公司提出的標準調(diào)試接口,主要用于ARM芯片的仿真,由于各個IDE廠商使用的調(diào)試接口各自獨立,硬件無法進行跨平臺的調(diào)試?,F(xiàn)在眾多的IDE廠家都逐步采用標準RDI作為ARM仿真器的調(diào)試接口,因此使跨平臺的硬件調(diào)試成為可能。EasyJTAG由于使用標準RDI調(diào)試接口,因此在任何使用標準RDI接口的IDE調(diào)試環(huán)境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM 3.30 。 JLink仿真器 J-Link是德國SEGGER公司推出基于JTAG的仿真器。簡單地說,是給一個JTAG協(xié)議轉(zhuǎn)換盒,即一個小型USB到JTAG的轉(zhuǎn)換盒,其連接到計算機用的是USB接口,而到目標板內(nèi)部用的還是jtag協(xié)議。它完成了一個從軟件到硬件轉(zhuǎn)換的工作。 JLINK是一個通用的開發(fā)工具,可以用于KEIL、IAR、ADS 等平臺。速度,效率,功能都很好,據(jù)說是眾多仿真器里最強悍的。 ULink仿真器 ULINK是ARM/KEIL公司推出的仿真器,目前網(wǎng)上可找到的是其升級版本,ULINK2和ULINK Pro仿真器。ULINK/ULINK2可以配合Keil軟件實現(xiàn)仿真功能,并且僅可以在Keil軟件上使用,增加了串行調(diào)試(SWD)支持,返回時鐘支持和實時代理等功能。開發(fā)工程師通過結(jié)合使用RealView MDK的調(diào)試器和ULINK2,可以方便的在目標硬件上進行片上調(diào)試(使用on-chip JTAG,SWD和OCDS)、Flash編程。 但是要注意的是,ULINK是KEIL公司開發(fā)的仿真器,專用于KEIL平臺下使用,ADS、IAR下不能使用。 ST-Link仿真器 ST-LINK是專門針對意法半導體STM8和STM32系列芯片的仿真器。ST-LINK /V2指定的SWIM標準接口和JTAG / SWD標準接口,其主要功能有:
|
|
來自: 張宏韜 > 《IT技術(shù)類文章》