第第05講_第3章JTAG技術(shù)_第1頁
第第05講_第3章JTAG技術(shù)_第2頁
第第05講_第3章JTAG技術(shù)_第3頁
第第05講_第3章JTAG技術(shù)_第4頁
第第05講_第3章JTAG技術(shù)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)原理與開發(fā)嵌入式系統(tǒng)原理與開發(fā)第第5講講南京大學(xué)計算機系 俞建新主講2008年春季2008年3月14日南京大學(xué)計算機系2第第3章章 嵌入式微處理器技術(shù)基礎(chǔ)嵌入式微處理器技術(shù)基礎(chǔ)l本章主要介紹以下內(nèi)容:l嵌入式微處理器典型技術(shù)l主流嵌入式微處理器l嵌入式處理器的調(diào)試技術(shù)l邊界掃描測試技術(shù)JTAG2008年3月14日南京大學(xué)計算機系33.4 邊界掃描測試接口邊界掃描測試接口JTAGlJTAG是一種片上調(diào)試接口,即OCD接口。lOCD英文原文:lOn-Chip Debugging InterfacelJTAG的建立使得集成電路固定在PCB(Printed Circuit Board,印刷電

2、路板)上,只通過邊界掃描便可以被測試。l含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應(yīng)用。2008年3月14日南京大學(xué)計算機系43.4.1 測試摩爾定律測試摩爾定律l1999年英特爾公司的副總裁Patrick Celsinger先生在美國大西洋城舉行的國際測試會議上提出了測試摩爾定律,并就此了講演。l該定律預(yù)測未來幾年,每一晶體管的硅投資成本將低于其測試成本。lPatrick Celsinger先生指出,硅成本已迅速下降,硅成本已迅速下降,測試成本卻基本保持不變測試成本卻基本保持不變。并且,被測器件的速度常常比測試設(shè)備能測的速度高。也就是說,測試設(shè)備的發(fā)展速度

3、已跟不上測試對象的發(fā)展。同時,測試成本在制造成本中所占比例過大。 2008年3月14日南京大學(xué)計算機系5代碼出錯案例:代碼出錯案例:阿利亞娜阿利亞娜5 5型火箭發(fā)射失敗型火箭發(fā)射失敗2008年3月14日南京大學(xué)計算機系63.4.2 JTAG基本概念基本概念lJTAG是Joint Test Action Group(聯(lián)合測試行動組)的縮寫,聯(lián)合測試行動組是IEEE的一個下屬組織l該組織研究標(biāo)準(zhǔn)測試訪問接口和邊界掃描結(jié)構(gòu)(Standard Test Access Port and Boundary-Scan Architecture)lJTAG的研究成果被接納為IEEE1149.1-1990規(guī)范l

4、JTAG成為電子行業(yè)的一種國際測試標(biāo)準(zhǔn)l現(xiàn)在,人們通常用JTAG來表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測試方法。2008年3月14日南京大學(xué)計算機系7JTAG掃描循環(huán)示意圖掃描循環(huán)示意圖每個JTAG單元監(jiān)聽相應(yīng)IC引腳輸出位狀態(tài)PC板JTAG連接器JTAG位流輸入JTAG位流輸出二進(jìn)制位流形成一個移位寄存器2008年3月14日南京大學(xué)計算機系8邊界掃描單元邊界掃描單元lJTAG標(biāo)準(zhǔn)定義了一個串行的移位寄存器l寄存器的每一個單元分配給IC芯片的相應(yīng)引腳l每一個獨立的單元稱為BSC(Boundary-Scan Cell)邊界掃描單元l這個串聯(lián)的BSC在IC

5、內(nèi)部構(gòu)成JTAG回路l所有的BSR(Boundary-Scan Register)邊界掃描寄存器通過JTAG測試激活2008年3月14日南京大學(xué)計算機系9ARM的的JTAG調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu)主控協(xié)議主控協(xié)議調(diào)試目標(biāo)機調(diào)試目標(biāo)機協(xié)議轉(zhuǎn)換器協(xié)議轉(zhuǎn)換器運行有ARM公司或者第三方提供的調(diào)試軟件的PC機負(fù)責(zé)與Debug主控端發(fā)出的高級ARM調(diào)試命令以及底層的和ARM內(nèi)核JTAG命令進(jìn)行通訊。以ARM7TDMI為處理器的開發(fā)系統(tǒng)2008年3月14日南京大學(xué)計算機系10ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)說明l調(diào)試系統(tǒng)一般包括3部分:l調(diào)試主機調(diào)試主機是運行軟件調(diào)試器的計算機l例如ADW,ARM Debugger fo

6、r Windowsl調(diào)試主機允許發(fā)出高級命令,如設(shè)置斷點或檢查存儲器內(nèi)容。l協(xié)議轉(zhuǎn)換器協(xié)議轉(zhuǎn)換器處理調(diào)試主機調(diào)試主機和ARM7TDMI處理器JTAG接口接口之間的通訊l包括調(diào)試主機發(fā)出的高級命令以及JTAG接口的低級命令。l一般通過增強型并行口進(jìn)行連接。2008年3月14日南京大學(xué)計算機系11ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試系統(tǒng)說明(續(xù))l調(diào)試目標(biāo)調(diào)試目標(biāo)lARM CPU主處理器邏輯:對調(diào)試有硬件支持。l嵌入式ICE-RT邏輯:這是用于產(chǎn)生調(diào)試異常(如斷點)的寄存器和比較器的集合。lTAP控制器:用JTAG串行接口控制掃描鏈的動作。2008年3月14日南京大學(xué)計算機系12協(xié)議轉(zhuǎn)換器的調(diào)試擴充功能協(xié)

7、議轉(zhuǎn)換器的調(diào)試擴充功能lARM7TDMI具有易于在最低層調(diào)試的硬件擴充,其調(diào)試擴充功能如下列出:l允許暫停程序的執(zhí)行;l檢查和修改內(nèi)核的內(nèi)部狀態(tài);l查看和修改存儲器系統(tǒng)的狀態(tài);l執(zhí)行中止異常,允許實時的內(nèi)核監(jiān)控;l重新開始程序執(zhí)行。2008年3月14日南京大學(xué)計算機系133.4.3 ARM7TDMI掃描鏈布局掃描鏈布局2008年3月14日南京大學(xué)計算機系14ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位2008年3月14日南京大學(xué)計算機系15JTAG接口的接口的IC內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)含含JTAG接口接口的IC的IC芯片芯片內(nèi)核邏輯內(nèi)核邏輯數(shù)據(jù)寄存器指令寄存器旁路寄存器測試訪問端

8、口(TAP)控制器TDITMSTDOTCKGndVcc芯片引腳邊界掃描寄存器(掃描單元)2008年3月14日南京大學(xué)計算機系16JTAG狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖15=Test LogicReset12=Run-Test orIdle7= Select-DRScan6=Capture-DR2=Shift-DR1=Exit1-DR3=Pause-DR0=Exit2-DR5=Update-DR4= Select-IRScan14=Capture-IR10=Shift-IR9=Exit1-IR11=Pause-IR8=Exit2-IR13=Update-IRtms=1tms=0tms=0tms=1tms=

9、0tms=1tms=1tms=0tms=0tms=0tms=1tms=1tms=0tms=1tms=1tms=0tms=1tms=0tms=1tms=0tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=1tms=0tms=12008年3月14日南京大學(xué)計算機系17JTAG信號信號lTMS:測試模式選擇(Test Mode Select)l通過TMS信號控制JTAG狀態(tài)機的狀態(tài)。lTCK:JTAG的時鐘信號lTDI:數(shù)據(jù)輸入信號lTDO:數(shù)據(jù)輸出信號lnTRST:JTAG復(fù)位信號,復(fù)位JTAG的狀態(tài)機和內(nèi)部的宏單元(Macrocell)。2008年

10、3月14日南京大學(xué)計算機系183.4.4 TAP控制器控制器lTAP控制器內(nèi)部有多個寄存器l測試數(shù)據(jù)寄存器lJTAG控制指令寄存器l旁路寄存器lARM7TDMI器件識別碼(ID)寄存器l掃描路徑選擇寄存器2008年3月14日南京大學(xué)計算機系19JTAG的的TAP控制器結(jié)構(gòu)控制器結(jié)構(gòu)掃描鏈3JTAG狀態(tài)機TDITCKTMSTDO指令寄存器 4bitID寄存器 32bit掃描路徑選擇寄存器 4bit旁路寄存器 1bit選擇器掃描鏈3選擇器選擇器掃描鏈控制信號2008年3月14日南京大學(xué)計算機系20測試數(shù)據(jù)寄存器測試數(shù)據(jù)寄存器l在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有如下8個:l指令寄存器;l

11、旁路寄存器;lARM7TDMI的器件識別(ID)碼寄存器;l掃描路徑選擇寄存器;l掃描鏈0、1、2和3。2008年3月14日南京大學(xué)計算機系21JTAG控制指令寄存器控制指令寄存器lJTAG接口中指令寄存器長度是4位l在指令寄存器共安排10條控制指令,見下表。指令二進(jìn)制指令二進(jìn)制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11112008年3月14日南京大學(xué)計算機系22JTAG的指令寄存器的指令寄存器l在SHIFT-IR態(tài),將指令寄存

12、器選做TDI和TDO之間串行路徑。見(a)l在UPDATE-IR態(tài),指令寄存器的值成為當(dāng)前指令。見(b)l在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(c)l復(fù)位時,IDCODE(b1110)成為當(dāng)前指令。見(d)l指令寄存器的最低有效位首先被掃描輸入和輸出。指令寄存器TDITDOSHIFT-IR狀態(tài)狀態(tài)(a)指令寄存器值=0001CAPTURE-IR狀態(tài)狀態(tài)(c)TDITDO當(dāng)前指令寄存器TDITDOUPDATE-IR狀態(tài)狀態(tài)(b)當(dāng)前指令寄存器IDCODE=0001IDCODE-IR狀態(tài)狀態(tài)(d)TDITDO2008年3月14日南京大學(xué)計算機系

13、23旁路寄存器旁路寄存器l功能:l通過提供TDI和TDO之間的路徑,在掃描測試期間對器件旁路。l長度:l1位l操作方式:l當(dāng)BYPASS指令是指令寄存器中的當(dāng)前指令時,串行數(shù)據(jù)在SHIFT-DR態(tài)以1個TCK周期的延遲從TDI傳到TDO。旁路寄存器沒有并行輸出。l在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。2008年3月14日南京大學(xué)計算機系24ARM7TDMI器件器件識別碼識別碼(ID)寄存器寄存器l識別碼用途:讀32位器件識別碼。不提供可編程的識別碼。l長度:32位。寄存器的格式如下圖所示。l操作方式l當(dāng)IDCODE指令是當(dāng)前指令時,將ID寄存器選做TDI和TDO之間的串

14、行路徑。ID寄存器沒有并行輸出。在CAPTURE-DR態(tài),32位器件識別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本 4位部件編號 16位制造者標(biāo)識 12位03111282008年3月14日南京大學(xué)計算機系25掃描路徑選擇寄存器掃描路徑選擇寄存器l用途和長度l變換當(dāng)前活動的掃描鏈,4位。l操作方式l僅當(dāng)執(zhí)行了一條SCAN_N指令或當(dāng)發(fā)生復(fù)位時,當(dāng)前所選的掃描鏈改變。復(fù)位時,將掃描鏈0選做活動的掃描鏈。l在SHIFT-DR態(tài), SCAN_N指令把掃描路徑選擇寄存器作為TDI和TDO之間的串行數(shù)據(jù)移位路徑。l在CAPTURE-DR態(tài),將b1000加載到該寄存器。這個值在

15、SHIFT-DR態(tài)加載輸出,同時裝入新值。l在UPDATE-DR態(tài),由寄存器中的值選擇一個掃描鏈成為當(dāng)前活動的掃描鏈。所有進(jìn)一步的指令(如INTEST)都應(yīng)用到該掃描鏈上。2008年3月14日南京大學(xué)計算機系26掃描鏈編號分配掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設(shè)計者實現(xiàn))4保留8保留2008年3月14日南京大學(xué)計算機系273.4.5 JTAG掃描鏈工作原理掃描鏈工作原理lJTAG掃描鏈由掃描單元組成l每一個被測試邏輯電路引出信號線同它的引腳之間配置一個掃描單元l每一個掃描單元的內(nèi)部由兩個D觸發(fā)器和兩個多路選擇器組成l分別把邏

16、輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運動的電流方向成為縱向。lJTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。2008年3月14日南京大學(xué)計算機系28JTAG掃描單元構(gòu)造掃描單元構(gòu)造From logic or pinFrom last cellShift/loadTo next cellTo logic or pin11G1ClockUpdateMode1DC11D C111G1縱向縱向橫向橫向橫向四種操作四種操作: 掛起,移掛起,移位,俘獲,更新位,俘獲,更新2008年3月14日南京大學(xué)計算機系29JTAG掃描鏈的組成掃描鏈的組成I1I2I3TC

17、KO1O2O3TDI0 X 00 X 00 X 00 X 00 X 00 X 0 待測裝置IIIOOO移位寄存器輸出數(shù)據(jù)輸入數(shù)據(jù)掃描前的輸入數(shù)據(jù)掃描后的輸出數(shù)據(jù)1 0 1 0 1 0TDOX X X X X XLogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic2008年3月14日南京大學(xué)計算機系30JTAG處于掛起狀態(tài)處于掛起狀態(tài)I1I2I3O1O2O3111 X 11 X 10 X 00 X 00 X 0DUT(測試器件)XTDI1 0 1 0 1 0TDOX X X X X X橫向直行橫向直行橫向直行橫向直行如同掃描鏈如同掃描鏈不存在不

18、存在2008年3月14日南京大學(xué)計算機系31捕獲捕獲JTAG狀態(tài)狀態(tài)當(dāng)前引腳當(dāng)前引腳信號的快照信號的快照存入掃描鏈存入掃描鏈2008年3月14日南京大學(xué)計算機系32移位數(shù)據(jù)移位數(shù)據(jù)I1I2I3O1O2O3111 1 11 1 10 1 00 0 00 0 0DUT1TDI0 1 0 1 0 XTDOX X X X X 0縱縱向向直直行行此刻處理此刻處理器的工作器的工作脈沖暫停脈沖暫停2008年3月14日南京大學(xué)計算機系33移位結(jié)束移位結(jié)束I1I2I3O1O2O3111 1 11 0 10 1 00 0 00 1 0DUT0TDIXTDO0 0 0 1 1 1XXXXX縱縱向向直直行行此刻處理此

19、刻處理器的工作器的工作脈沖暫停脈沖暫停2008年3月14日南京大學(xué)計算機系34數(shù)據(jù)更新數(shù)據(jù)更新JTAG掃描鏈取掃描鏈取代系統(tǒng)向處理器代系統(tǒng)向處理器輸入信號,并且輸入信號,并且替代處理器向系替代處理器向系統(tǒng)輸出信號。統(tǒng)輸出信號。2008年3月14日南京大學(xué)計算機系35掃描鏈掃描鏈0lScan Chain 0:有113個掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號。這條鏈上的信號復(fù)雜,不易控制,但是包含的信息豐富,可以通過這條鏈得到ARM7TDMI內(nèi)核的所有信息。l從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序為:(1)數(shù)據(jù)總線位0-位31;(2)內(nèi)核控制信號;(3)地址總線位31-位

20、0;(4)嵌入式ICE-RT控制信號。l嵌入式ICE-RT控制信號(特別是DBGRQI)首先被掃描輸出。2008年3月14日南京大學(xué)計算機系36掃描鏈掃描鏈0單元單元編號信號類型編號信號類型132D0D31輸入/輸出41BL0輸入33BREAKPT輸入42BL1輸入34NENIN輸入43BL2輸入35NENOUT輸出44BL3輸入36LOCK輸出45DCTL輸出37BIGEND輸入46nRW輸出38DBE輸入47DBGACK輸出39MAS0輸出48CGENDBGACK輸出40MAS1輸出49nFIQ輸入2008年3月14日南京大學(xué)計算機系37掃描鏈掃描鏈0單元單元(續(xù)續(xù)1)編號信號類型編號信號

21、類型50nIRQ輸入59nMREQ輸出51nRESET輸入60SEQ輸入52ISYNC輸入61nTRANS輸入53BRGRQ輸入62CPB輸入54ABORT輸入63nM4輸出55CPA輸入64nM3輸出56nOPC輸出65nM2輸出57IFEN輸入66nM1輸出58nCPI輸出67nM0輸出2008年3月14日南京大學(xué)計算機系38掃描鏈掃描鏈0單元單元(續(xù)續(xù)2)編號信號類型編號信號類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74105A31A0輸出106113ICE-RT信號2008年3月14日南京大學(xué)計算機系39掃描鏈掃描鏈1l掃描鏈1:

22、有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實現(xiàn)對ARM的內(nèi)部寄存器、協(xié)處理器以及外部存儲器的讀寫操作。2008年3月14日南京大學(xué)計算機系40掃描鏈掃描鏈1(續(xù))(續(xù))l掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAKPT內(nèi)核輸入上的掃描單元。第33位有如下4個用途:l在正常INTEST測試條件下,允許將已知值掃描到BREAKPT的輸入。l在EXTEST測試條件下,捕獲從系統(tǒng)加到BREAKPT輸入的值。l在調(diào)試期間,第33位的值決定在執(zhí)行指令之前ARM7TDMI核是否同步回系統(tǒng)速度。lARM7TDMI核進(jìn)入

23、調(diào)試狀態(tài)后,該位第一次被捕獲并被掃描輸出。其值告訴調(diào)試器內(nèi)核是否由斷點(位33清零)或由觀察點(位33置位)進(jìn)入調(diào)試狀態(tài)。2008年3月14日南京大學(xué)計算機系41掃描鏈掃描鏈2lScan Chain 2共有38個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點的控制。l從TDI到TDO的掃描鏈次序如下:l讀/寫;l寄存器地址位4-位0;l數(shù)據(jù)值位31-位0。2008年3月14日南京大學(xué)計算機系423.4.6 嵌入式嵌入式ICE-RT邏輯邏輯l嵌入式ICE-RT邏輯也稱為Embedded ICE或者Embedded ICE-RT,其主要功能是為ARM7TDMI核

24、提供集成的在線調(diào)試支持。lARM公司的片上測試部件。l使用ARM7TDMI的TAP控制器來控制嵌入式ICE-RT邏輯的串行數(shù)據(jù)輸入。l下圖給出了內(nèi)核、嵌入式ICE-RT邏輯和TAP控制器之間的關(guān)系。圖中僅顯示了有關(guān)的信號。2008年3月14日南京大學(xué)計算機系43嵌入式嵌入式ICE-RT連線結(jié)構(gòu)圖連線結(jié)構(gòu)圖DBGRQIDBGRQIA31:0D31:0nOPCnRWTBITMAS1:0nTRANSDBGACKIBREAKPTIIFENECLKnMREQSDOUTSDINCONTROLDBGENDBGRQBREAKPTDBGACKRANGEOUT1RANGEOUT0EXTERN0EXTERN1nTR

25、STTCKTMSTDITDOARM CPU主處理器邏輯主處理器邏輯嵌入式嵌入式ICE邏輯邏輯TAP2008年3月14日南京大學(xué)計算機系44嵌入式嵌入式ICE-RT邏輯的組成邏輯的組成l嵌入式ICE-RT邏輯的組成如下:l2個實時觀察點單元;l3個獨立的寄存器:調(diào)試控制寄存器、調(diào)試狀態(tài)寄存器、中止?fàn)顟B(tài)寄存器;l調(diào)試通信通道DCC(Debug Communications Channel)。2008年3月14日南京大學(xué)計算機系45嵌入式嵌入式ICE-RT邏輯的組成(續(xù))邏輯的組成(續(xù))l調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時使用中止?fàn)顟B(tài)寄存器。l可以編

26、程1個或2個觀察點單元來暫停內(nèi)核程序的執(zhí)行。當(dāng)編程進(jìn)入嵌入式ICE-RT的值與當(dāng)前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號的值匹配時,暫停執(zhí)行。2008年3月14日南京大學(xué)計算機系46EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)lEmbeddedICE是集成在ARM內(nèi)核中的嵌入式ICE仿真器。其結(jié)構(gòu)如下圖所示。l通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設(shè)置斷點以及讀取Debug通訊通道。lEmbeddedICE的串行數(shù)據(jù)長度是38位,包括:l32位數(shù)據(jù)l5位的訪問EmbeddedICE中寄存器的地址l1個讀寫控制位2008年3月1

27、4日南京大學(xué)計算機系47EmbeddedICE結(jié)構(gòu)結(jié)構(gòu)r/w4地址031數(shù)據(jù)0TDOTDI+斷點更新地址譯碼器ENABLECHAINEXTERNnOPCnBWnRWAv31:0Dv31:0CHAINEXTERNnOPCnBWnRWAm31:0Dm31:0比較器A31:0D31:0Control325EmbeddedICE掃描鏈共38位2008年3月14日南京大學(xué)計算機系48EmbeddedICE的寄存器的寄存器地址寬度功能地址寬度功能000006Debug control011009Watchpoint 0 control value000015Debug status011018Watchp

28、oint 0 control mask000101Abort status1000032Watchpoint 1 address value001006Debug commands control register 1000132Watchpoint 1 address mask0010132Debug commands data register 100102Watchpoint 1 data value01000 32Watchpoint 0 address value 1001132Watchpoint 1 data mask0100132Watchpoint 0 address mas

29、k 101009Watchpoint 1 control value0101032Watchpoint 0 data value 101018Watchpoint 1 control mask0101132Watchpoint 0 data mask 2008年3月14日南京大學(xué)計算機系49Watchpoint寄存器的使用寄存器的使用 lEmbeddedICE的一個主要作用就是可以在ARM的程序中設(shè)置軟件或者硬件的斷點。l在EmbeddedICE中,集成了一個比較器,比較器負(fù)責(zé)把ARM處理器取指的地址A31:0、數(shù)據(jù)D31:0以及一些控制信號與EmbeddedICE中Watchpoint寄存器

30、中設(shè)置的數(shù)值相比較l具體的說應(yīng)該是進(jìn)行同或運算l比較的結(jié)果用來確定輸出一個ARM的斷點(Breakpoint)信號。l具體的運算關(guān)系如下公式所描述:l(Av31:0,Cv4:0 XNOR A31:0,C4:0) OR Am31:0,Cm4:0 = 0 x1FFFFFFFFF2008年3月14日南京大學(xué)計算機系50EmbeddedICE斷點信號條件斷點信號條件l當(dāng)上述表達(dá)式為真的時候,斷點信號有效,ARM的內(nèi)核就進(jìn)入了Debug模式。l在Debug模式下,ARM內(nèi)核的時鐘從系統(tǒng)的主時鐘(MCLK)被替換成跟蹤時鐘(DCLK)。l跟蹤時鐘(DCLK)是通過在JTAG的狀態(tài)機的Run-test/Id

31、le狀態(tài)的TCK來控制的。 2008年3月14日南京大學(xué)計算機系51Watchpoint表達(dá)式的含義表達(dá)式的含義 信號說 明Av31:0Watchpoint中地址寄存器(Address register)的數(shù)據(jù)Am31:0Watchpoint中地址mask寄存器(address mask register)的數(shù)據(jù)A31:0從ARM7TDMI的核中得到的總線的地址,也就是當(dāng)前處理器取址的地址Dv31:0Watchpoint中數(shù)據(jù)寄存器(data register)中的數(shù)據(jù)Dm31:0Watchpoint中數(shù)據(jù)mask寄存器(data mask register)的數(shù)據(jù)D31:0從ARM7TDMI

32、的核中得到的總線的數(shù)據(jù),也就是當(dāng)前處理器取址所到的數(shù)據(jù)Cv8:0Watchpoint中控制寄存器(control register)中的數(shù)據(jù)Cm7:0Watchpoint中控制mask寄存器(control mask register)中的數(shù)據(jù)C9:0ARM7TDMI的控制總線2008年3月14日南京大學(xué)計算機系523.4.7 ARM7TDMI斷點的設(shè)置斷點的設(shè)置lARM中斷點的設(shè)置主要是設(shè)置EmbeddedICE中的寄存器l主要包括:設(shè)置EmbeddedICE的兩個watchpoint單元的地址、數(shù)據(jù)或控制信號寄存器。l當(dāng)一個(或者兩個)watchpoint寄存器滿足條件的時候,ARM就從運

33、行狀態(tài)進(jìn)入Debug狀態(tài)。l也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當(dāng)前的指令相同的時候2008年3月14日南京大學(xué)計算機系53硬件斷點和軟件斷點硬件斷點和軟件斷點l在ARM7TDMI處理器的內(nèi)核中,有兩種斷點的設(shè)置方式:硬件斷點和軟件斷點硬件斷點和軟件斷點l硬件斷點l通過設(shè)置EmbeddedICE中的Watchpoint寄存器中的地址相關(guān)的寄存器,來實現(xiàn)斷點。l通過這種方式設(shè)置斷點,斷點數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內(nèi)核中,只有兩組Watchpoint寄存器,最多只能設(shè)置兩個硬件斷點)。l硬件斷點可以在任何地方設(shè)置。

34、不受存儲器類型的限制。2008年3月14日南京大學(xué)計算機系54軟件斷點軟件斷點l軟件斷點的實現(xiàn)比較復(fù)雜,需要如下幾個步驟:l通過設(shè)置EmbeddedICE中的Watchpoint寄存器中的數(shù)據(jù)相關(guān)寄存器(data value和data mask value)為一個特殊的32位數(shù)字ARM的未定義指令,比如:0 x06000010。l替換RAM中的指令為上面所設(shè)置的那個未定的指令0 x06000010,作為一個標(biāo)志。l當(dāng)系統(tǒng)運行到RAM中所設(shè)定的單元位置時候,那個事先設(shè)置的標(biāo)志數(shù)字將被當(dāng)作一個指令讀入處理器的內(nèi)核。2008年3月14日南京大學(xué)計算機系55軟件斷點(續(xù))軟件斷點(續(xù))l此時,系統(tǒng)所讀

35、入的指令的數(shù)據(jù)剛好和data value中的數(shù)字相吻合,系統(tǒng)就進(jìn)入了Debug模式。這就是軟件斷點的工作過程。l軟件斷點的數(shù)目不受ARM內(nèi)核的Watchpoint數(shù)目的限制,不管系統(tǒng)設(shè)置多少個軟件斷點,僅僅使用了ARM內(nèi)核的一個Watchpoint資源。l軟件斷點是通過替換系統(tǒng)的斷點地址的指令實現(xiàn)的,所以,軟件斷點只能在可寫的存儲器的地址中設(shè)置(比如:RAM),而不能在ROM(比如:Flash)中設(shè)置。2008年3月14日南京大學(xué)計算機系56斷點設(shè)置小結(jié)斷點設(shè)置小結(jié)l總之,在有兩個Watchpoint資源的ARM7TDMI的內(nèi)核中,斷點可以有如下情況:l2個硬件斷點,沒有軟件斷點l1個硬件斷點

36、,任意多個軟件斷點l任意多個軟件斷點2008年3月14日南京大學(xué)計算機系573.4.8 ARM調(diào)試接口調(diào)試接口lARM7TDMI調(diào)試接口基于IEEE標(biāo)準(zhǔn)1149.1-1990以及標(biāo)準(zhǔn)測試訪問口和邊界掃描體系結(jié)構(gòu)(Standard Test Access Port and Boundary-Scan Architecture)。l調(diào)試擴充可強迫內(nèi)核進(jìn)入下列模式之一:l暫停模式(調(diào)試模式):暫停模式(調(diào)試模式):在斷點或觀察點,內(nèi)核進(jìn)入調(diào)試狀態(tài)。在調(diào)試狀態(tài),內(nèi)核停止工作并與系統(tǒng)的其它部分隔離。當(dāng)調(diào)試完成后,調(diào)試主機恢復(fù)內(nèi)核和系統(tǒng)狀態(tài),程序重新開始執(zhí)行。l監(jiān)控模式:監(jiān)控模式:在斷點或觀察點,形成指令中止或數(shù)據(jù)中止而不進(jìn)入調(diào)試狀態(tài)。內(nèi)核仍正常接受和服務(wù)中斷。2008年3月14日南京大學(xué)計算機系58調(diào)試階段調(diào)試階段l外部調(diào)試接口信號或嵌入式ICE-RT邏輯請求迫使ARM7TDMI進(jìn)入調(diào)試狀態(tài)。激活調(diào)試的事件如下:l斷點斷點(取指);l觀察點觀察點(數(shù)據(jù)訪問);l外部調(diào)試請求外部調(diào)試請求。

溫馨提示

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

最新文檔

評論

0/150

提交評論