JTAG調試原理-課件_第1頁
JTAG調試原理-課件_第2頁
JTAG調試原理-課件_第3頁
JTAG調試原理-課件_第4頁
JTAG調試原理-課件_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

JTAG調試原理JTAG調試原理ppt課件2021/3/261JTAG調試原理JTAG調試原理ppt課件2021/3/2JTAG調試原理ppt課件2021/3/262JTAG調試原理ppt課件2021/3/262目錄一、JTAG基本知識 1.1、什么是JTAG

1.2、JTAG的作用

1.3、

JTAG調試結構二、JTAG的工作原理 2.1、兩個重要概念:邊界掃描和TAP 2.2、JTAG的狀態(tài)機 2.3、ARM7TDMI內(nèi)核結構 2.4、JTAG掃描鏈結構及工作過程 2.5、EmbeddedICE-RTLogic的結構 2.6、EmbeddedICE的斷點/觀察點設置三、JTAG常用指令JTAG調試原理ppt課件2021/3/263目錄一、JTAG基本知識JTAG調試原理ppt課件2021一、JTAG基本知識1.1、什么是JTAG

JTAG是JointTestActionGroup(聯(lián)合測試行動組)的縮寫,是IEEE1149.1標準。

1.2、JTAG的作用

使得IC芯片固定在PCB版上,只通過邊界掃描便可以被測試。1.3、JTAG調試結構JTAG調試原理ppt課件2021/3/264一、JTAG基本知識1.1、什么是JTAGJTAG調試JTAG調試原理ppt課件2021/3/265JTAG調試原理ppt課件2021/3/265(1)、DEBUG主控制器:運行有ARM公司或是第三方提供的調試軟件的PC機。如:ARM公司提供的ADS、LINUX下的arm-elf-gdb等。通過這些調試軟件,可以發(fā)送高級調試命令,如:設置/取消斷點,讀寫MEMORY,單步跟蹤,全速運行等。JTAG調試原理ppt課件2021/3/266JTAG調試原理ppt課件2021/3/266(2)、協(xié)議轉換器(Protocolconverter)負責將Debug主控端發(fā)出的高級ARM調試命令轉換為底層的ARMJTAG調試命令。Debug主控端和協(xié)議轉換器間的介質可以有很多種,如:Earthnet、USB,串口,并口等。Debug主控端和協(xié)議轉換器間的通信協(xié)議可以是ARM公司的ANGEL標準,也可以是第三方自定義的標準。典型的協(xié)議轉換器有:ARM公司的Multi-ICE,H-JTAG,JLink等。

JTAG調試原理ppt課件2021/3/267(2)、協(xié)議轉換器(Protocolconverter)H-JTAG運行界面JTAG調試原理ppt課件2021/3/268H-JTAG運行界面JTAG調試原理ppt課件2021/3J-Link的運行界面JTAG調試原理ppt課件2021/3/269J-Link的運行界面JTAG調試原理ppt課件2021/(3)、調試目標機系統(tǒng)的調試對象。典型的ARM7TDMI內(nèi)核的調試結構:JTAG調試原理ppt課件2021/3/2610(3)、調試目標機JTAG調試原理ppt課件2021/3/二、JTAG的工作原理2.1、兩個重要概念:邊界掃描和TAP(1)邊界掃描(Boundary-Scan):

基本思想:在靠近芯片輸入/輸出管腳上增加一個移位寄存器單元(邊界掃描寄存器)。正常狀態(tài)下,邊界掃描寄存器對芯片來說是透明的,所以正常的運行不會受到任何的影響。

JTAG調試原理ppt課件2021/3/2611二、JTAG的工作原理JTAG調試原理ppt課件2021/

調試狀態(tài)下,邊界掃描寄存器將芯片和外的輸入輸出隔離開,通過這些邊界掃描寄存器可以實現(xiàn)對芯片輸入輸出信號的控制。具體控制過程如下:

、輸入管腳:通過與之相連的邊界掃描寄存器把信號(數(shù)據(jù))加載到該管腳中去。

②、輸出管腳:通過與之相連的邊界掃描寄存器“捕獲”該管腳上的輸出信號。JTAG調試原理ppt課件2021/3/2612JTAG調試原理ppt課件2021/注意:

芯片輸入輸出管腳上的邊界掃描寄存器單元可以相互連接起來,在芯片周圍形成一個邊界掃描鏈。該鏈可以實現(xiàn)串行的輸入輸出,通過相應的時鐘信號和控制信號,可方便的觀察和控制在調試狀態(tài)下的芯片。JTAG調試原理ppt課件2021/3/2613注意:JTAG調試原理ppt課件2021/3/2613(2)、TAP(TestAccessPort)

TAP是一個通用的端口,利用它可以訪問芯片提供的所有DR和IR。對整個TAP的控制是通過TAPController來完成的。

TAP包括5個信號接口:◆TCK(TestClockInput)

JTAG時鐘信號位。標準強制要求

◆TMS(TestModeSelect)測試模式選擇,通過該信號控制JTAG狀態(tài)機的狀態(tài)。TMS在TCK的上升沿有效。標準強制要求JTAG調試原理ppt課件2021/3/2614(2)、TAP(TestAccessPort)JTAG調◆TDI(TestDataInput)數(shù)據(jù)輸入口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI口一位一位串行輸入的(TCK驅動)。標準里強制要求◆TDO(TestDataOutput)數(shù)據(jù)輸出口。所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過TDO口串行的一位一位輸出的(TCK驅動)。標準里強制要求◆TRST(TestResetInput)JTAG復位信號。標準里是可選的JTAG調試原理ppt課件2021/3/2615◆TDI(TestDataInput)JTAG調試原理2.2、JTAG的狀態(tài)機TAP共有16個狀態(tài)機,如下圖所示:每一個狀態(tài)都有其相應的功能。箭頭表示了所有可能的狀態(tài)轉換流程。狀態(tài)的轉換是由TMS控制的。JTAG調試原理ppt課件2021/3/26162.2、JTAG的狀態(tài)機TAP共有16個狀JTAG調試原理ppt課件2021/3/2617JTAG調試原理ppt課件2021/3/26172.3、ARM7TDMI內(nèi)核結構ARM7TDMI處理器結構框圖:JTAG調試原理ppt課件2021/3/26182.3、ARM7TDMI內(nèi)核結構ARM7TDMI處理器結構框ARM7TDMI處理器包括三大部分:◆ARMCPUMainProcessorLogic

包括了對調試的硬件支持◆EmbeddedICE-RTLogic

包括一組寄存器和比較器,用來產(chǎn)生調試異常,設置斷點和觀察點?!鬞APController

通過JTAG接口來控制和操作掃描鏈JTAG調試原理ppt課件2021/3/2619ARM7TDMI處理器包括三大部分:JTAG調試原理ppt

ARM7TDMI還提供了3個附加的信號:

DBGRQ:調試請求,通過把DBGREQ置“1”,可以迫使ARM7TDMI進入調試狀態(tài)

DBGACK:調試確認,通過DBGACK,可以判斷當前ARM7TDMI是否在調試狀態(tài)BREAKPT:斷點信號,這個信號是輸入到ARM7TDMI處理器內(nèi)核的JTAG調試原理ppt課件2021/3/2620ARM7TDMI還提供了3個附加的信號:JTAG調試原2.4、JTAG掃描鏈結構及工作過程ARM7TDMI的框圖提供了3條掃描鏈:◆ScanChain0113個掃描單元,包括ARM所有的I/O,地址/數(shù)據(jù)總線和輸入/輸出控制信號。此鏈很復雜,不易控制,但包含信息豐富,可通過它得到ARM7TDMI內(nèi)核的所有信息。◆ScanChain133個掃描單元,包括數(shù)據(jù)總線和一個斷點控制信號。JTAG調試原理ppt課件2021/3/26212.4、JTAG掃描鏈結構及工作過程ARM7TDMI的框圖提◆ScanChain238個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM進行指令的斷點、觀察點的控制。其實還有個ScanChain3,ARM7TDMI可以訪問外部的邊界掃描鏈。只不過很少用,在此不做介紹。想了解可以看ARM7TDMI手冊。JTAG調試原理ppt課件2021/3/2622◆ScanChain2JTAG調試原理ppt課件202一個典型的JTAG鏈:JTAG調試原理ppt課件2021/3/2623一個典型的JTAG鏈:JTAG調試原理ppt課件2021/JTAG掃描鏈的工作過程JTAG調試原理ppt課件2021/3/2624JTAG掃描鏈的工作過程JTAG調試原理ppt課件2021JTAG調試原理ppt課件2021/3/2625JTAG調試原理ppt課件2021/3/2625JTAG調試原理ppt課件2021/3/2626JTAG調試原理ppt課件2021/3/2626JTAG調試原理ppt課件2021/3/2627JTAG調試原理ppt課件2021/3/2627JTAG調試原理ppt課件2021/3/2628JTAG調試原理ppt課件2021/3/2628JTAG調試原理ppt課件2021/3/2629JTAG調試原理ppt課件2021/3/26292.5、EmbeddedICE-RTLogic的結構通過對EmbeddedICE控制,以及通過對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設置斷點觀察點以及讀取Debug通信通道(DCC)。這里的斷點用來標識某個地址上的一條指令,而觀察點用來觀察某個地址上的數(shù)據(jù)變化,所以這二者是有區(qū)別的。DCC用來完成主調試器和目標機間的信息發(fā)送。JTAG調試原理ppt課件2021/3/26302.5、EmbeddedICE-RTLogic的結構EmbeddedICE的結構如下:JTAG調試原理ppt課件2021/3/2631EmbeddedICE的結構如下:JTAG調試原理ppt課EmbeddedICE的長度是38位,包括:◆32位數(shù)據(jù)◆5位地址,訪問EmbeddedICE中的寄存器◆1個讀寫控制位EmbeddedICE的寄存器主要包括Debug狀態(tài)和控制寄存器,Debug通信寄存器和斷點設置相關的寄存器,如下圖所示:JTAG調試原理ppt課件2021/3/2632EmbeddedICE的長度是38位,包括:JTAG調試原理EmbeddedICE的寄存器JTAG調試原理ppt課件2021/3/2633EmbeddedICE的寄存器JTAG調試原理ppt課件2EmbeddedICE寄存器格式及含義DebugControlRegister格式:DBGACK:用來控制DBGACK信號的值DBGRQ:是調試請求信號,通過將該信號置“1”,可以強制ARM7TDMI暫停當前的指令,進入調試狀態(tài)INTDIS:用來控制中斷SBZ/RAZ:任何時候都必須被置“0”JTAG調試原理ppt課件2021/3/2634EmbeddedICE寄存器格式及含義DebugContrMonitorModeEnable:用來控制是否進入Monitor模式EmbeddedICE-RTDisable:用來控制整個EmbeddedICE-RT,是啟用還是禁用DebugStatusRegister格式:DBGACK:用來標識當前系統(tǒng)是否處于調試狀態(tài)?!?’,表示進入;‘0’,表示未進入。JTAG調試原理ppt課件2021/3/2635MonitorModeEnable:用來控制是否進入MoDBGRQ:用來標識DBGRQ信號的當前狀態(tài)IFEN:用來標識系統(tǒng)的中斷控制狀態(tài):啟用 還是禁用cgenL:用來判斷當前對調試器在調試狀態(tài)下 對內(nèi)存的訪問是否完成TBIT:該位用來判斷ARM7TDMI是從ARM 狀態(tài)還是THUMB狀態(tài)進入到調試狀 態(tài)的JTAG調試原理ppt課件2021/3/2636JTAG調試原理ppt課件2021/3/2636AbortStatusRegister格式:

該寄存器的長度為1,來判斷一個異常的產(chǎn)生的原因:斷點觸發(fā)?觀察點觸發(fā)?還是一個真的異常?JTAG調試原理ppt課件2021/3/2637AbortStatusRegister格式:JTAG調實例1:用ScanChain2設置DebugControl

Register1)、選擇掃描鏈2,將其連接到TDI,TDO之間。具體過程如下:

通過TAP將SCAN_N指令寫入到指令寄存器當中去,

TAP狀態(tài)轉換如下:RUN-TEST/IDLE→SELECT-DR-SCAN→SELECT-IR-SCAN→CAPTURE-IR→SHIFT-IR→EXIT1-IR→UPDATE-IR→

RUN-TEST/IDLE,在SHIFT-IR狀態(tài)下,將SCAN_N通過TDI寫到指令寄存器中去;接下來,訪問被SCAN_N指令連接到TDIJTAG調試原理ppt課件2021/3/2638實例1:用ScanChain2設置DebugCont

和TDO之間的掃描鏈選擇寄存器,通過將2寫入到掃描鏈選擇寄存器當中去,以將掃描鏈2連接到TDI和TDO之間。將2寫入掃描鏈選擇寄存器的狀態(tài)轉換如下:

RUN-TEST/IDLE

→SELECT-DR-SCAN

→CAPTURE-DR→SHIFT-DR→EXIT1-DR

→UPDATE-DR→RUN-TEST/IDLE

在SHIFT-DR狀態(tài)下,將數(shù)值2通過TDI寫到掃描鏈選擇寄存器當中去。2)、將ScanChain2置為內(nèi)測試模式

用INTEST指令實現(xiàn)該操作,指令寫入與SCAN_N指令的過程類似JTAG調試原理ppt課件2021/3/2639和TDO之間的掃描鏈選擇寄存器,通過將2寫入到掃描鏈選3)、寫DebugControlRegister

假設要將DebugControlRegister的6位全部置“1”,按照掃描鏈2的格式,需要寫入到掃描鏈2第序列應該為:

1,00000,0000,0000,0000,0000,0000,0000,0011,1111‘1’表示寫操作,‘00000’標識的是DebugControlRegister的地址,中間32位是要寫入到DebugControlRegister的數(shù)據(jù)。因DebugControlRegister長度為6,所以只有低6位的數(shù)據(jù)序列‘111111’有效。JTAG調試原理ppt課件2021/3/26403)、寫DebugControlRegisterJTAG

將上面長度為38位的序列寫入到掃描鏈2中,TAP狀態(tài)轉換過程如下:

RUN-TEST/IDLE→SELECT-DR-SCAN→CAPTURE-DR→SHIFT-DR→EXIT1-DR→UPDATE-DR→RUN-TEST/IDLE

在SHIFT-DR狀態(tài)下,通過38個TCK時鐘驅動,就可以將上面的序列串行輸入到掃描練2當中去。在回到RUN-TEST/IDLE狀態(tài)后,DebugControlRegister的值就會被改寫為111111。JTAG調試原理ppt課件2021/3/2641JTAG調試原理ppt課件2021/3EmbeddedICE有兩個WtchPoint單元。下面介紹一下WatchPoint寄存器的使用:

EmbeddedICE的一個主要作用是可以在ARM程序中設置軟件或硬件斷點。在EmbeddedICE中,集成了一個比較器,負責把ARM處理器取指的地址A[31:0],數(shù)據(jù)D[31:0]以及一些控制信號與EmbeddedICE中WatchPoint寄存器中設置的數(shù)值相比較(具體說應該是進行與或運算),比較結果用來確定輸出一個ARM斷點(BreakPoint)信號。具體運算關系如下公式所描述:2.6、EmbeddedICE的斷點/觀察點設置JTAG調試原理ppt課件2021/3/2642EmbeddedICE有兩個Wtch{Av[31:0],Cv[4:0]}XOR{A[31:0],C[4:0]}OR{Am[31:0],Cm[4:0]}==0xFFFFFFFF

當上述表達式值為真時,斷點/觀察點信號有效,ARM內(nèi)核進入Debug模式。ARM中斷點和觀察點的設置首先介紹一下與之設置密切相關的WPControlValue/MaskRegister。WPControlValue/MaskRegister格式:JTAG調試原理ppt課件2021/3/2643{Av[31:0],Cv[4:0]}XOR{A[31:0WPControlValue/MaskRegister格式含義:ENABLE:如果該位置0的話,意味著斷點觸發(fā)條件永遠不成立,也就是把全部斷點都給disable掉了

RANGE:暫時不會用CHAIN:暫時不會用EXTERN:外部到EmbeddedICE-RT的輸入,通過該輸入,可以使得斷點的觸發(fā)依賴于一定的外部條件

nTRANS:用來判斷是在用戶態(tài)下還是非用戶態(tài)下,用戶態(tài)下:nTRANS=0,否則nTRANS=1JTAG調試原理ppt課件2021/3/2644WPControlValue/MaskRegisternOPC:檢測當前的周期是取指令還是進行數(shù)據(jù)訪問。nOPC=0,表示當前周期進行取指。nOPC=1,表示當前周期進行普通數(shù)據(jù)的訪問。(該位用的較多)MAS[1:0]:和ARM7TDMI的MAS[1:0]信號進行比較,以探測當前總線的寬度是8位、16位還是32位

nRW:nRW=0,

當前的是讀周期,nRW=1,當前的是寫周期JTAG調試原理ppt課件2021/3/2645nOPC:檢測當前的周期是取指令還是進行數(shù)據(jù)訪問。nOPC斷點設置的兩種方式:1)、硬件斷點:通過設置EmbeddedICE中的WP和地址相關的寄存器來實現(xiàn)的。通過該方式設置的斷點數(shù)受到WP數(shù)目的限制。因ARM7TAMI中僅有兩組WP,故最多可以設置兩個斷點。但是,硬件斷點可在任何地方設置不受存儲類型限制。JTAG調試原理ppt課件2021/3/2646斷點設置的兩種方式:JTAG調試原理ppt課件2021/3

2)、軟件斷點通過設置EmbeddedICE中的WP和數(shù)據(jù)相關的寄存器來實現(xiàn)的。分為兩步:

(1)、將datavalue和datamask設為ARM的未定義指令,通常是一個特殊的32位數(shù)字,如:0xCDCDCDCD

(2)、在需要設置斷點的地方將其內(nèi)容替換

JTAG調試原理ppt課件2021/3/2647JTAG調試原理ppt課件2021/3/2647為(1)中的特殊數(shù)字。這樣,一但程序運行到該位置,嘗試從該位置取指令或者數(shù)據(jù)的時候,因為取得的數(shù)據(jù)值和WPDataValue寄存器的值相同,ARM7TDMI會暫停當前的運行,自動進入調試狀態(tài)。由上所述,軟件斷點數(shù)目不受ARM內(nèi)核中WP數(shù)目的限制。但是,軟件斷點是通過替換系統(tǒng)斷點地址的指令實現(xiàn)的,所以,軟件斷點只能在可寫的存儲器空間中設置,如:RAM。而不能在FLASH,ROM中設置。JTAG調試原理ppt課件2021/3/2648為(1)中的特殊數(shù)字。這樣,一但程序運行到該位置,嘗試

總之,有兩個WP的ARM7TDMI內(nèi)核中,斷點設置有如下情況:★2個硬件斷點,沒有軟件斷點?!?個硬件斷點,任意個軟件斷點?!餂]有硬件斷點,任意個軟件斷點。觀察點設置:

將WPAddressValue寄存器的值設置為需要觀察的地址,WPAddressMask寄存器的值設置為0x00000000。將WPDataMask寄存器的值設置為0xFFFFFFFF。同時nPOC=1。另外,JTAG調試原理ppt課件2021/3/2649總之,有兩個WP的ARM7TDMI內(nèi)核

WPDataValue/MaskRegister也用來設置觀察點,用以觀察某個地址的數(shù)據(jù)變化。每當系統(tǒng)訪問(讀/寫)完被觀察地址的數(shù)據(jù)的時候,ARM7TDMI就會進入調試狀態(tài),這樣,我們就可以馬上檢查該地址上的數(shù)據(jù)。JTAG調試原理ppt課件2021/3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論