




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、JTAG調試原理,目錄,一、JTAG基本知識 1.1、什么是JTAG 1.2 、 JTAG的作用 1.3、 JTAG調試結構 二、 JTAG的工作原理 2.1、兩個重要概念:邊界掃描和TAP 2.2、JTAG的狀態(tài)機 2.3、 ARM7TDMI內核結構 2.4、 JTAG掃描鏈結構及工作過程 2.5、 EmbeddedICE-RT Logic的結構 2.6、 EmbeddedICE的斷點/觀察點設置 三、 JTAG常用指令,一、JTAG基本知識,1.1、 什么是JTAG JTAG是Joint Test Action Group(聯合測試行動組)的縮寫,是IEEE1149.1標準。 1.2 、
2、JTAG的作用 使得IC芯片固定在PCB版上,只通過邊界掃描便可以被測試。 1.3、 JTAG調試結構,(1)、DEBUG主控制器: 運行有ARM公司或是第三方提供的調試軟件的PC機。如:ARM公司提供的ADS、LINUX下的arm-elf-gdb等。通過這些調試軟件,可以發(fā)送高級調試命令,如:設置/取消斷點,讀寫MEMORY,單步跟蹤,全速運行等。,(2)、協議轉換器(Protocol converter) 負責將Debug主控端發(fā)出的高級ARM調試命令轉換為底層的ARM JTAG調試命令。 Debug主控端和協議轉換器間的介質可以有很多種,如:Earthnet、USB,串口,并口等。 De
3、bug主控端和協議轉換器間的通信協議可以是ARM公司的ANGEL標準,也可以是第三方自定義的標準。典型的協議轉換器有:ARM公司的Multi-ICE,H-JTAG,JLink等。,H-JTAG運行界面,J-Link的運行界面,(3)、調試目標機 系統(tǒng)的調試對象。典型的ARM7TDMI內核的調試結構:,二、JTAG的工作原理,2.1、兩個重要概念:邊界掃描和TAP (1)邊界掃描(Boundary-Scan): 基本思想:在靠近芯片輸入/輸出管腳上增加一個移位寄存器單元(邊界掃描寄存器)。 正常狀態(tài)下,邊界掃描寄存器對芯片來說是透明的,所以正常的運行不會受到任何的影響。,調試狀態(tài)下,邊界掃描寄存
4、器將芯片和外的輸入輸出隔離開,通過這些邊界掃描寄存器可以實現對芯片輸入輸出信號的控制。具體控制過程如下: 、輸入管腳:通過與之相連的邊界掃描寄存器把信號(數據)加載到該管腳中去。 、輸出管腳:通過與之相連的邊界掃描 寄存器“捕獲”該管腳上的輸出信號。,注意: 芯片輸入輸出管腳上的邊界掃描寄存器單元可以相互連接起來,在芯片周圍形成一個邊界掃描鏈。該鏈可以實現串行的輸入輸出,通過相應的時鐘信號和控制信號,可方便的觀察和控制在調試狀態(tài)下的芯片。,(2)、TAP(Test Access Port) TAP是一個通用的端口,利用它可以訪問芯片提供的所有DR和IR。對整個TAP的控制是通過TAP Cont
5、roller來完成的。 TAP包括5個信號接口: TCK(Test Clock Input) JTAG時鐘信號位。標準強制要求 TMS(Test Mode Select) 測試模式選擇,通過該信號控制JTAG狀態(tài)機的狀態(tài)。TMS在TCK的上升沿有效。標準強制要求,TDI(Test Data Input) 數據輸入口。所有要輸入到特定寄存器的數據都是通過TDI口一位一位串行輸入的(TCK驅動)。標準里強制要求 TDO(Test Data Output) 數據輸出口。所有要從特定的寄存器中輸出的數據都是通過TDO口串行的一位一位輸出的(TCK驅動)。標準里強制要求 TRST(Test Reset
6、Input) JTAG復位信號。標準里是可選的,2.2、JTAG的狀態(tài)機,TAP共有16個狀態(tài)機,如下圖所示: 每一個狀態(tài)都有其相應的功能。箭頭表示了所有可能的狀態(tài)轉換流程。狀態(tài)的轉換是由TMS控制的。,2.3、ARM7TDMI內核結構,ARM7TDMI處理器結構框圖:,ARM7TDMI處理器包括三大部分: ARM CPU Main Processor Logic 包括了對調試的硬件支持 Embedded ICE-RT Logic 包括一組寄存器和比較器,用來產生調試異常,設置斷點和觀察點。 TAP Controller 通過JTAG接口來控制和操作掃描鏈,ARM7TDMI還提供了3個附加的信
7、號: DBGRQ : 調試請求,通過把DBGREQ置 “1”,可以迫使ARM7TDMI進入調試狀態(tài) DBGACK :調試確認,通過DBGACK,可以判斷當前ARM7TDMI是否在調試狀態(tài) BREAKPT :斷點信號,這個信號是輸入到ARM7TDMI處理器內核的,2.4、JTAG掃描鏈結構及工作過程,ARM7TDMI的框圖提供了3條掃描鏈: Scan Chain 0 113個掃描單元,包括ARM所有的I/O,地址/數據總線和輸入/輸出控制信號。此鏈很復雜,不易控制,但包含信息豐富,可通過它得到ARM7TDMI內核的所有信息。 Scan Chain 1 33個掃描單元,包括數據總線和一個斷點控制信
8、號。,Scan Chain 2 38個掃描單元,通過控制EmbeddedICE宏單元,實現對ARM進行指令的斷點、觀察點的控制。 其實還有個Scan Chain 3,ARM7TDMI可以訪問外部的邊界掃描鏈。只不過很少用,在此不做介紹。想了解可以看ARM7TDMI手冊。,一個典型的JTAG鏈:,JTAG掃描鏈的工作過程,2.5、EmbeddedICE-RT Logic的結構,通過對EmbeddedICE控制,以及通過對EmbeddedICE中寄存器的讀取,可以獲得ARM內核的狀態(tài),為程序設置斷點觀察點以及讀取Debug通信通道(DCC)。 這里的斷點用來標識某個地址上的一條指令,而觀察點用來觀
9、察某個地址上的數據變化,所以這二者是有區(qū)別的。DCC用來完成主調試器和目標機間的信息發(fā)送。,EmbeddedICE的結構如下:,EmbeddedICE的長度是38位,包括: 32位數據 5位地址,訪問EmbeddedICE中的寄存器 1個讀寫控制位 EmbeddedICE的寄存器主要包括Debug狀態(tài)和控制寄存器,Debug通信寄存器和斷點設置相關的寄存器,如下圖所示:,EmbeddedICE的寄存器,EmbeddedICE寄存器格式及含義,Debug Control Register 格式: DBGACK:用來控制DBGACK信號的值 DBGRQ:是調試請求信號,通過將該信號置“1”,可以強
10、制ARM7TDMI暫停當前的指令,進入調試狀態(tài) INTDIS:用來控制中斷 SBZ/RAZ:任何時候都必須被置“0”,Monitor Mode Enable:用來控制是否進入Monitor模式 EmbeddedICE-RT Disable:用來控制整個EmbeddedICE-RT,是啟用還是禁用 Debug Status Register 格式: DBGACK:用來標識當前系統(tǒng)是否處于調試狀態(tài)。1,表示進入;0,表示未進入。,DBGRQ:用來標識DBGRQ信號的當前狀態(tài) IFEN:用來標識系統(tǒng)的中斷控制狀態(tài):啟用 還是禁用 cgenL:用來判斷當前對調試器在調試狀態(tài)下對內存的訪問是否完成 TB
11、IT:該位用來判斷ARM7TDMI是從ARM 狀態(tài)還是THUMB狀態(tài)進入到調試狀態(tài)的,Abort Status Register 格式:,該寄存器的長度為1,來判斷一個異常的產生的原因:斷點觸發(fā)?觀察點觸發(fā)?還是一個真的異常?,實例1:用Scan Chain 2 設置Debug Control Register,1)、 選擇掃描鏈2,將其連接到TDI,TDO 之間。具體過程如下: 通過TAP將SCAN_N指令寫入到指令寄存器當中去, TAP狀態(tài)轉換如下:RUN-TEST/IDLESELECT-DR-SCAN SELECT-IR-SCAN CAPTURE-IR SHIFT-IR EXIT1-IR
12、 UPDATE-IR RUN-TEST/IDLE,在SHIFT-IR狀態(tài)下,將SCAN_N通過TDI寫到指令寄存器中去;接下來,訪問被SCAN_N指令連接到TDI,和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)下,將數值2通過TDI寫到掃描鏈選擇寄存器當中去。 2)、將Scan Chain 2置為內測試模式
13、用INTEST 指令實現該操作,指令寫入與SCAN_N指令的過程類似,3)、寫Debug Control Register 假設要將Debug Control Register的6位全部置“1”,按照掃描鏈2的格式,需要寫入到掃描鏈2第序列應該為: 1,00000,0000,0000,0000,0000,0000,0000,0011,1111 1表示寫操作,00000標識的是Debug Control Register的地址,中間32位是要寫入到Debug Control Register的數據。因Debug Control Register長度為6,所以只有低6位的數據序列111111有效。
14、,將上面長度為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)后,Debug Control Register的值就會被改寫為111111。,EmbeddedICE有兩個WtchPoint單元。下面介紹一下WatchPoint寄存器的使用: EmbeddedICE的一個主要作用是可以在ARM程序
15、中設置軟件或硬件斷點。在EmbeddedICE中,集成了一個比較器,負責把ARM處理器取指的地址A31:0,數據 D31:0以及一些控制信號與EmbeddedICE中WatchPoint寄存器中設置的數值相比較(具體說應該是進行與或運算),比較結果用來確定輸出一個ARM斷點(BreakPoint)信號。具體運算關系如下公式所描述:,2.6、EmbeddedICE的斷點/觀察點設置,Av31:0,Cv4:0 XOR A31:0,C4:0 OR Am31:0,Cm4:0 = 0 xFFFFFFFF 當上述表達式值為真時,斷點/觀察點信號有效,ARM內核進入Debug模式。 ARM中斷點和觀察點的設
16、置 首先介紹一下與之設置密切相關的WP Control Value/Mask Register。 WP Control Value/Mask Register格式:,WP Control Value/Mask Register格式含義:,ENABLE: 如果該位置0的話,意味著斷點觸發(fā)條件永遠不成立,也就是把全部斷點都給disable掉了 RANGE: 暫時不會用 CHAIN: 暫時不會用 EXTERN: 外部到EmbeddedICE-RT的輸入,通過該輸入,可以使得斷點的觸發(fā)依賴于一定的外部條件 nTRANS: 用來判斷是在用戶態(tài)下還是非用戶態(tài)下,用戶態(tài)下:nTRANS = 0,否則nTRA
17、NS = 1,nOPC: 檢測當前的周期是取指令還是進行數據訪問。nOPC=0,表示當前周期進行取指。 nOPC=1,表示當前周期進行普通數據的訪問。(該位用的較多) MAS1:0: 和ARM7TDMI的MAS1:0信號進行比較,以探測當前總線的寬度是8位、16位還是32位 nRW: nRW = 0, 當前的是讀周期,nRW = 1,當前的是寫周期,斷點設置的兩種方式: 1)、硬件斷點: 通過設置EmbeddedICE中的WP和地址相關的寄存器來實現的。通過該方式設置的斷點數受到WP數目的限制。因ARM7TAMI中僅有兩組WP,故最多可以設置兩個斷點。但是,硬件斷點可在任何地方設置不受存儲類型
18、限制。,2)、軟件斷點 通過設置EmbeddedICE中的WP和數據相關的寄存器來實現的。分為兩步: (1)、將data value和data mask設為ARM的未定義指令,通常是一個特殊的32位數字,如:0 xCDCDCDCD (2)、在需要設置斷點的地方將其內容替換,為(1)中的特殊數字。這樣,一但程序運行到該位置,嘗試從該位置取指令或者數據的時候,因為取得的數據值和WP Data Value寄存器的值相同,ARM7TDMI會暫停當前的運行,自動進入調試狀態(tài)。 由上所述,軟件斷點數目不受ARM內核中WP數目的限制。但是,軟件斷點是通過替換系統(tǒng)斷點地址的指令實現的,所以,軟件斷點只能在可寫
19、的存儲器空間中設置,如:RAM。而不能在FLASH,ROM中設置。,總之,有兩個WP的ARM7TDMI內核中,斷點設置有如下情況: 2個硬件斷點,沒有軟件斷點。 1個硬件斷點,任意個軟件斷點。 沒有硬件斷點,任意個軟件斷點。 觀察點設置: 將WP Address Value寄存器的值設置為需要觀察的地址,WP Address Mask寄存器的值設置為0 x00000000。將WP Data Mask寄存器的值設置為0 xFFFFFFFF。同時nPOC = 1。另外,,WP Data Value/Mask Register也用來設置觀察點,用以觀察某個地址的數據變化。每當系統(tǒng)訪問(讀/寫)完被觀察地址的數據的時候,ARM7TDMI就會進入調試狀態(tài),這樣,我們就可以馬上檢查該地址上的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 展會營銷與管理課件
- 尊重教育主題班會課件
- 16 必修1 第三單元 第14講 減數分裂和受精作用
- 龍舟手工教學課件
- 老舊小區(qū)改造項目拆遷補償合同
- 交通安全預評價與交通安全設施合同
- 醫(yī)療機構專業(yè)保潔及防疫安全服務合同
- 餐飲廢棄物處理與廢棄物能源利用合作協議
- 通信網絡技術與光纖入戶安裝知識測試試卷
- 艾草課件教學
- 2025-2030中國功率半導體器件市場格局與投資方向報告
- 統(tǒng)編版五年級升六年級語文暑期銜接《課外閱讀》專項測試卷及答案
- 2025年 煙草陜西公司招聘考試筆試試題附答案
- 2025年老年教育課程設置:藝術修養(yǎng)與審美教學探索報告
- 2025年河北高考真題化學試題+解析(參考版)
- 護理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- 2025至2030中國數字出版行業(yè)產業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 人教版(2024)七年級下冊英語全冊教案(8個單元整體教學設計)
- 10kV小區(qū)供配電設計、采購、施工EPC投標技術方案技術標
- 中小學校長公開招聘理論考試(試卷)
- 無人機駕駛員國家職業(yè)技能標準(2021年版)(word精排版)
評論
0/150
提交評論