JTAG調(diào)試原理ppt課件_第1頁
JTAG調(diào)試原理ppt課件_第2頁
JTAG調(diào)試原理ppt課件_第3頁
JTAG調(diào)試原理ppt課件_第4頁
JTAG調(diào)試原理ppt課件_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、JTAG調(diào)試原理調(diào)試原理1;.2;.目錄目錄一、一、JTAG基本知識基本知識1.1、什么是、什么是JTAG1.2 、 JTAG的作用的作用 1.3、 JTAG調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu)二、二、 JTAG的工作原理的工作原理2.1、兩個重要概念:邊界掃描和、兩個重要概念:邊界掃描和TAP2.2、JTAG的狀態(tài)機(jī)的狀態(tài)機(jī)2.3、 ARM7TDMI內(nèi)核結(jié)構(gòu)內(nèi)核結(jié)構(gòu)2.4、 JTAG掃描鏈結(jié)構(gòu)及工作過程掃描鏈結(jié)構(gòu)及工作過程2.5、 EmbeddedICE-RT Logic的結(jié)構(gòu)的結(jié)構(gòu)2.6、 EmbeddedICE的斷點的斷點/觀察點設(shè)置觀察點設(shè)置三、三、 JTAG常用指令常用指令3;.一、一、JTAG基本知識

2、基本知識1.1、 什么是什么是JTAG JTAG是是Joint Test Action Group(聯(lián)合聯(lián)合測試行動組測試行動組)的縮寫,是的縮寫,是IEEE1149.1標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。 1.2 、 JTAG的作用的作用 使得使得IC芯片固定在芯片固定在PCB版上,只通過邊版上,只通過邊界掃描便可以被測試。界掃描便可以被測試。1.3、 JTAG調(diào)試結(jié)構(gòu)調(diào)試結(jié)構(gòu)4;.5;.(1)、)、DEBUG主控制器:主控制器: 運(yùn)行有運(yùn)行有ARM公司或是第三方提供的公司或是第三方提供的調(diào)試軟件的調(diào)試軟件的PC機(jī)。如:機(jī)。如:ARM公司提供的公司提供的ADS、LINUX下的下的arm-elf-gdb等。通過這等。

3、通過這些調(diào)試軟件,可以發(fā)送高級調(diào)試命令,如:些調(diào)試軟件,可以發(fā)送高級調(diào)試命令,如:設(shè)置設(shè)置/取消斷點,讀寫取消斷點,讀寫MEMORY,單步跟,單步跟蹤,全速運(yùn)行等。蹤,全速運(yùn)行等。 6;.(2)、協(xié)議轉(zhuǎn)換器()、協(xié)議轉(zhuǎn)換器(Protocol converter) 負(fù)責(zé)將負(fù)責(zé)將Debug主控端發(fā)出的高級主控端發(fā)出的高級ARM調(diào)試命令轉(zhuǎn)換為底層的調(diào)試命令轉(zhuǎn)換為底層的ARM JTAG調(diào)試命調(diào)試命令。令。 Debug主控端和協(xié)議轉(zhuǎn)換器間的介質(zhì)主控端和協(xié)議轉(zhuǎn)換器間的介質(zhì)可以有很多種,如:可以有很多種,如:Earthnet、USB,串口,串口,并口等。并口等。 Debug主控端和協(xié)議轉(zhuǎn)換器間的主控端和協(xié)議

4、轉(zhuǎn)換器間的通信協(xié)議可以是通信協(xié)議可以是ARM公司的公司的ANGEL標(biāo)準(zhǔn),標(biāo)準(zhǔn),也可以是第三方自定義的標(biāo)準(zhǔn)。典型的協(xié)也可以是第三方自定義的標(biāo)準(zhǔn)。典型的協(xié)議轉(zhuǎn)換器有:議轉(zhuǎn)換器有:ARM公司的公司的Multi-ICE,H-JTAG,JLink等。等。 7;.H-JTAG運(yùn)行界面運(yùn)行界面8;.J-Link的運(yùn)行界面的運(yùn)行界面9;.(3)、調(diào)試目標(biāo)機(jī))、調(diào)試目標(biāo)機(jī) 系統(tǒng)的調(diào)試對象。典型的系統(tǒng)的調(diào)試對象。典型的ARM7TDMI內(nèi)核的調(diào)試結(jié)構(gòu):內(nèi)核的調(diào)試結(jié)構(gòu):10;.二、二、JTAG的工作原理的工作原理2.1、兩個重要概念:邊界掃描和、兩個重要概念:邊界掃描和TAP(1)邊界掃描(邊界掃描(Boundary

5、-Scan):): 基本思想:在靠近芯片輸入基本思想:在靠近芯片輸入/輸出管腳上輸出管腳上增加一個移位寄存器單元(邊界掃描寄存增加一個移位寄存器單元(邊界掃描寄存器)。器)。 正常狀態(tài)下,邊界掃描寄存器對芯片正常狀態(tài)下,邊界掃描寄存器對芯片來說是透明的,所以正常的運(yùn)行不會受到來說是透明的,所以正常的運(yùn)行不會受到任何的影響。任何的影響。 11;. 調(diào)試狀態(tài)下,邊界掃描寄存器將芯片調(diào)試狀態(tài)下,邊界掃描寄存器將芯片和外的輸入輸出隔離開,通過這些邊界掃和外的輸入輸出隔離開,通過這些邊界掃描寄存器可以實現(xiàn)對芯片輸入輸出信號的描寄存器可以實現(xiàn)對芯片輸入輸出信號的控制。具體控制過程如下:控制。具體控制過程如

6、下: 、輸入管腳:通過與之相連的邊界輸入管腳:通過與之相連的邊界掃描寄存器把信號(數(shù)據(jù))加載到該管腳掃描寄存器把信號(數(shù)據(jù))加載到該管腳中去。中去。 、輸出管腳:通過與之相連的邊界輸出管腳:通過與之相連的邊界掃描掃描 寄存器寄存器“捕獲捕獲”該管腳上的輸出信號。該管腳上的輸出信號。12;.注意:注意: 芯片輸入輸出管腳上的邊界掃描寄存器芯片輸入輸出管腳上的邊界掃描寄存器單元可以相互連接起來,在芯片周圍形成單元可以相互連接起來,在芯片周圍形成一個邊界掃描鏈。該鏈可以實現(xiàn)串行的輸一個邊界掃描鏈。該鏈可以實現(xiàn)串行的輸入輸出,通過相應(yīng)的時鐘信號和控制信號,入輸出,通過相應(yīng)的時鐘信號和控制信號,可方便的

7、觀察和控制在調(diào)試狀態(tài)下的芯片??煞奖愕挠^察和控制在調(diào)試狀態(tài)下的芯片。13;.(2)、)、TAP(Test Access Port) TAP是一個通用的端口,利用它可以是一個通用的端口,利用它可以訪問芯片提供的所有訪問芯片提供的所有DR和和IR。對整個。對整個TAP的控制是通過的控制是通過TAP Controller來完成的。來完成的。 TAP包括包括5個信號接口:個信號接口: TCK(Test Clock Input) JTAG時鐘信號位。時鐘信號位。標(biāo)準(zhǔn)強(qiáng)制要求標(biāo)準(zhǔn)強(qiáng)制要求 TMS(Test Mode Select) 測試模式選擇,通過該信號控制測試模式選擇,通過該信號控制JTAG狀態(tài)機(jī)的狀

8、態(tài)。狀態(tài)機(jī)的狀態(tài)。TMS在在TCK的上升的上升沿有效。沿有效。標(biāo)準(zhǔn)強(qiáng)制要求標(biāo)準(zhǔn)強(qiáng)制要求14;.TDI(Test Data Input) 數(shù)據(jù)輸入口。所有要輸入到特定寄存器數(shù)據(jù)輸入口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過的數(shù)據(jù)都是通過TDI口一位一位串行輸入的口一位一位串行輸入的(TCK驅(qū)動)。驅(qū)動)。標(biāo)準(zhǔn)里強(qiáng)制要求標(biāo)準(zhǔn)里強(qiáng)制要求TDO(Test Data Output) 數(shù)據(jù)輸出口。所有要從特定的寄存器中數(shù)據(jù)輸出口。所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過輸出的數(shù)據(jù)都是通過TDO口串行的一位一口串行的一位一位輸出的(位輸出的(TCK驅(qū)動)。驅(qū)動)。標(biāo)準(zhǔn)里強(qiáng)制要求標(biāo)準(zhǔn)里強(qiáng)制要求TRST(Test

9、 Reset Input) JTAG復(fù)位信號。復(fù)位信號。標(biāo)準(zhǔn)里是可選的標(biāo)準(zhǔn)里是可選的15;.2.2、JTAG的狀態(tài)機(jī)的狀態(tài)機(jī) TAP共有共有16個狀態(tài)機(jī),如下圖所示:個狀態(tài)機(jī),如下圖所示: 每一個狀態(tài)都有其相應(yīng)的功能。箭頭表示每一個狀態(tài)都有其相應(yīng)的功能。箭頭表示了所有可能的狀態(tài)轉(zhuǎn)換流程。狀態(tài)的轉(zhuǎn)換了所有可能的狀態(tài)轉(zhuǎn)換流程。狀態(tài)的轉(zhuǎn)換是由是由TMS控制的??刂频?。16;.17;.2.3、ARM7TDMI內(nèi)核結(jié)構(gòu)內(nèi)核結(jié)構(gòu)ARM7TDMI處理器結(jié)構(gòu)框圖:18;.ARM7TDMI處理器包括三大部分:處理器包括三大部分:ARM CPU Main Processor Logic 包括了對調(diào)試的硬件支持包括

10、了對調(diào)試的硬件支持Embedded ICE-RT Logic 包括一組寄存器和比較器,用來產(chǎn)生調(diào)試包括一組寄存器和比較器,用來產(chǎn)生調(diào)試異常,設(shè)置斷點和觀察點。異常,設(shè)置斷點和觀察點。TAP Controller 通過通過JTAG接口來控制和操作掃描鏈接口來控制和操作掃描鏈19;. ARM7TDMI還提供了還提供了3個附加的信號:個附加的信號: DBGRQ : 調(diào)試請求,通過把調(diào)試請求,通過把DBGREQ置置 “1”,可以迫使,可以迫使ARM7TDMI進(jìn)入調(diào)試狀態(tài)進(jìn)入調(diào)試狀態(tài) DBGACK :調(diào)試確認(rèn),通過調(diào)試確認(rèn),通過DBGACK,可,可以判斷當(dāng)前以判斷當(dāng)前ARM7TDMI是否在調(diào)試狀態(tài)是否在

11、調(diào)試狀態(tài) BREAKPT :斷點信號,這個信號是輸入到斷點信號,這個信號是輸入到ARM7TDMI處理器內(nèi)核的處理器內(nèi)核的20;.2.4、JTAG掃描鏈結(jié)構(gòu)及工作過程掃描鏈結(jié)構(gòu)及工作過程ARM7TDMI的框圖提供了的框圖提供了3條掃描鏈:條掃描鏈:Scan Chain 0 113個掃描單元,包括個掃描單元,包括ARM所有的所有的I/O,地,地址址/數(shù)據(jù)總線和輸入數(shù)據(jù)總線和輸入/輸出控制信號。此鏈很輸出控制信號。此鏈很復(fù)雜,不易控制,但包含信息豐富,可通復(fù)雜,不易控制,但包含信息豐富,可通過它得到過它得到ARM7TDMI內(nèi)核的所有信息。內(nèi)核的所有信息。Scan Chain 1 33個掃描單元,包括

12、數(shù)據(jù)總線和一個斷點個掃描單元,包括數(shù)據(jù)總線和一個斷點控制信號??刂菩盘?。21;.Scan Chain 2 38個掃描單元,通過控制個掃描單元,通過控制EmbeddedICE宏宏單元,實現(xiàn)對單元,實現(xiàn)對ARM進(jìn)行指令的斷點、觀察進(jìn)行指令的斷點、觀察點的控制。點的控制。 其實還有個其實還有個Scan Chain 3,ARM7TDMI可可以訪問外部的邊界掃描鏈。只不過很少用,以訪問外部的邊界掃描鏈。只不過很少用,在此不做介紹。想了解可以看在此不做介紹。想了解可以看ARM7TDMI手冊。手冊。22;.一個典型的一個典型的JTAG鏈鏈:23;.JTAG掃描鏈的工作過程掃描鏈的工作過程24;.25;.26

13、;.27;.28;.29;.2.5、EmbeddedICE-RT Logic的結(jié)構(gòu)的結(jié)構(gòu) 通過對通過對EmbeddedICE控制,以及通過對控制,以及通過對EmbeddedICE中寄存器的讀取,可以獲得中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設(shè)置斷點觀察點以及讀取內(nèi)核的狀態(tài),為程序設(shè)置斷點觀察點以及讀取Debug通信通道(通信通道(DCC)。)。 這里的斷點用來標(biāo)識某個地址上的一條指這里的斷點用來標(biāo)識某個地址上的一條指令,而觀察點用來觀察某個地址上的數(shù)據(jù)變化,令,而觀察點用來觀察某個地址上的數(shù)據(jù)變化,所以這二者是有區(qū)別的。所以這二者是有區(qū)別的。DCC用來完成主調(diào)試用來完成主調(diào)試器和目標(biāo)

14、機(jī)間的信息發(fā)送。器和目標(biāo)機(jī)間的信息發(fā)送。30;.EmbeddedICE的結(jié)構(gòu)如下:的結(jié)構(gòu)如下:31;.EmbeddedICE的長度是的長度是38位,包括:位,包括: 32位數(shù)據(jù)位數(shù)據(jù) 5位地址,訪問位地址,訪問EmbeddedICE中的寄存器中的寄存器 1個讀寫控制位個讀寫控制位EmbeddedICE的寄存器主要包括的寄存器主要包括Debug狀態(tài)狀態(tài)和控制寄存器,和控制寄存器,Debug通信寄存器和斷點設(shè)通信寄存器和斷點設(shè)置相關(guān)的寄存器,如下圖所示:置相關(guān)的寄存器,如下圖所示:32;.EmbeddedICE的寄存器的寄存器33;.EmbeddedICE寄存器格式及含義寄存器格式及含義Debug

15、 Control Register 格式:格式:DBGACK:用來控制用來控制DBGACK信號的值信號的值DBGRQ:是調(diào)試請求信號,通過將該信號是調(diào)試請求信號,通過將該信號置置“1”,可以強(qiáng)制,可以強(qiáng)制ARM7TDMI暫停當(dāng)前的暫停當(dāng)前的指令,進(jìn)入調(diào)試狀態(tài)指令,進(jìn)入調(diào)試狀態(tài)INTDIS:用來控制中斷用來控制中斷SBZ/RAZ:任何時候都必須被置任何時候都必須被置“0”34;.Monitor Mode Enable:用來控制是否進(jìn)入用來控制是否進(jìn)入Monitor模式模式EmbeddedICE-RT Disable:用來控制整個用來控制整個EmbeddedICE-RT,是啟用還是禁用,是啟用還是

16、禁用Debug Status Register 格式:格式:DBGACK:用來標(biāo)識當(dāng)前系統(tǒng)是否處于調(diào)試用來標(biāo)識當(dāng)前系統(tǒng)是否處于調(diào)試狀態(tài)。狀態(tài)。1,表示進(jìn)入;,表示進(jìn)入;0,表示未進(jìn)入。,表示未進(jìn)入。35;.DBGRQ:用來標(biāo)識用來標(biāo)識DBGRQ信號的當(dāng)前狀態(tài)信號的當(dāng)前狀態(tài)IFEN:用來標(biāo)識系統(tǒng)的中斷控制狀態(tài):啟用用來標(biāo)識系統(tǒng)的中斷控制狀態(tài):啟用 還是禁用還是禁用cgenL:用來判斷當(dāng)前對調(diào)試器在調(diào)試狀態(tài)下用來判斷當(dāng)前對調(diào)試器在調(diào)試狀態(tài)下對內(nèi)存的訪問是否完成對內(nèi)存的訪問是否完成TBIT:該位用來判斷該位用來判斷ARM7TDMI是從是從ARM 狀態(tài)還是狀態(tài)還是THUMB狀態(tài)進(jìn)入到調(diào)試狀狀態(tài)進(jìn)入到調(diào)

17、試狀態(tài)的態(tài)的36;.Abort Status Register 格式:格式: 該寄存器的長度為該寄存器的長度為1,來判斷一個異常的,來判斷一個異常的產(chǎn)生的原因:斷點觸發(fā)?觀察點觸發(fā)?還是產(chǎn)生的原因:斷點觸發(fā)?觀察點觸發(fā)?還是一個真的異常?一個真的異常? 37;.實例實例1:用:用Scan Chain 2 設(shè)置設(shè)置Debug Control Register1)、 選擇掃描鏈選擇掃描鏈2,將其連接到,將其連接到TDI,TDO 之之間。具體過程如下:間。具體過程如下: 通過通過TAP將將SCAN_N指令寫入到指令寄存器指令寫入到指令寄存器當(dāng)中去,當(dāng)中去, TAP狀態(tài)轉(zhuǎn)換如下:RUN-TEST/ID

18、LESELECT-DR-SCAN SELECT-IR-SCAN CAPTURE-IR SHIFT-IR EXIT1-IR UPDATE-IR RUN-TEST/IDLE,在在SHIFT-IR狀態(tài)下,將狀態(tài)下,將SCAN_N通過通過TDI寫到指令寄存器寫到指令寄存器中去;接下來,訪問被中去;接下來,訪問被SCAN_N指令連接到指令連接到TDI38;. 和和TDO之間的之間的掃描鏈選擇寄存器掃描鏈選擇寄存器,通過將,通過將2寫入到掃描鏈選擇寄存器當(dāng)中去,以將掃寫入到掃描鏈選擇寄存器當(dāng)中去,以將掃描鏈描鏈2連接到連接到TDI和和TDO之間。將之間。將2寫入掃寫入掃描鏈選擇寄存器的狀態(tài)轉(zhuǎn)換如下:描鏈選

19、擇寄存器的狀態(tài)轉(zhuǎn)換如下: RUN-TEST/IDLE SELECT-DR-SCAN CAPTURE-DR SHIFT-DR EXIT1-DR UPDATE-DR RUN-TEST/IDLE 在在SHIFT-DR狀態(tài)下,將數(shù)值狀態(tài)下,將數(shù)值2通過通過TDI寫寫到掃描鏈選擇寄存器當(dāng)中去。到掃描鏈選擇寄存器當(dāng)中去。2)、將)、將Scan Chain 2置為內(nèi)測試模式置為內(nèi)測試模式 用用INTEST 指令實現(xiàn)該操作,指令寫入指令實現(xiàn)該操作,指令寫入與與SCAN_N指令的過程類似指令的過程類似39;.3)、寫)、寫Debug Control Register 假設(shè)要將假設(shè)要將Debug Control

20、Register的的6位全位全部置部置“1”,按照掃描鏈,按照掃描鏈2的格式,需要寫入到的格式,需要寫入到掃描鏈掃描鏈2第序列應(yīng)該為:第序列應(yīng)該為: 1,00000,0000,0000,0000,0000,0000,0000,0011,1111 1表示寫操作,表示寫操作,00000標(biāo)識的是標(biāo)識的是Debug Control Register的地址,中間的地址,中間32位是位是要寫入到要寫入到Debug Control Register的數(shù)據(jù)。因的數(shù)據(jù)。因Debug Control Register長度為長度為6,所以只有低,所以只有低6位的數(shù)據(jù)序列位的數(shù)據(jù)序列111111有效。有效。40;.

21、將上面長度為將上面長度為38位的序列寫入到掃描鏈位的序列寫入到掃描鏈2中,中,TAP狀態(tài)轉(zhuǎn)換過程如下狀態(tài)轉(zhuǎn)換過程如下: RUN-TEST/IDLE SELECT-DR-SCAN CAPTURE-DR SHIFT-DR EXIT1-DR UPDATE-DR RUN-TEST/IDLE 在在SHIFT-DR狀態(tài)下,通過狀態(tài)下,通過38個個TCK時時鐘驅(qū)動,就可以將上面的序列串行輸入到鐘驅(qū)動,就可以將上面的序列串行輸入到掃描練掃描練2當(dāng)中去。在回到當(dāng)中去。在回到RUN-TEST/IDLE狀態(tài)后,狀態(tài)后,Debug Control Register的值就會的值就會被改寫為被改寫為111111。41;.

22、 EmbeddedICE有兩個有兩個WtchPointtchPoint單元。單元。下面介紹一下下面介紹一下WatchPointWatchPoint寄存器的使用:寄存器的使用: EmbeddedICE的一個主要作用是可以在的一個主要作用是可以在ARM程序中設(shè)置程序中設(shè)置軟件或硬件斷點軟件或硬件斷點。在。在EmbeddedICE中,集成了一個比較器,負(fù)責(zé)中,集成了一個比較器,負(fù)責(zé)把把ARM處理器取指的地址處理器取指的地址A31:0,數(shù)據(jù),數(shù)據(jù) D31:0以及一些控制信號與以及一些控制信號與EmbeddedICE中中WatchPointWatchPoint寄存器中設(shè)置的數(shù)值相比較寄存器中設(shè)置的數(shù)值相

23、比較(具體說應(yīng)該是進(jìn)行與或運(yùn)算),比較結(jié)果(具體說應(yīng)該是進(jìn)行與或運(yùn)算),比較結(jié)果用來確定輸出一個用來確定輸出一個ARMARM斷點斷點(BreakPoint)(BreakPoint)信信號。具體運(yùn)算關(guān)系如下公式所描述:號。具體運(yùn)算關(guān)系如下公式所描述:2.6、EmbeddedICE的斷點的斷點/觀察點設(shè)置觀察點設(shè)置42;.Av31:0,Cv4:0 XOR A31:0,C4:0 ORAm31:0,Cm4:0 = 0 xFFFFFFFF 當(dāng)上述表達(dá)式值為真時,斷點當(dāng)上述表達(dá)式值為真時,斷點/觀察點信觀察點信號有效,號有效,ARM內(nèi)核進(jìn)入內(nèi)核進(jìn)入Debug模式模式。ARM中斷點和觀察點的設(shè)置中斷點和觀察

24、點的設(shè)置 首先介紹一下與之設(shè)置密切相關(guān)的首先介紹一下與之設(shè)置密切相關(guān)的WP Control Value/Mask Register。 WP Control Value/Mask Register格式:格式:43;.WP Control Value/Mask Register格式含義:ENABLE: 如果該位置如果該位置0的話,意味著斷點的話,意味著斷點觸發(fā)條件永遠(yuǎn)不成立,也就是把全部斷點觸發(fā)條件永遠(yuǎn)不成立,也就是把全部斷點都給都給disable掉了掉了 RANGE: 暫時不會用CHAIN: 暫時不會用EXTERN: 外部到外部到EmbeddedICE-RT的輸?shù)妮斎?,通過該輸入,可以使得斷點的

25、觸發(fā)依入,通過該輸入,可以使得斷點的觸發(fā)依賴于一定的外部條件賴于一定的外部條件 nTRANS: 用來判斷是在用戶態(tài)下還是非用戶態(tài)下,用戶態(tài)下:nTRANS = 0,否則nTRANS = 144;.nOPC: 檢測當(dāng)前的周期是取指令還是進(jìn)行數(shù)檢測當(dāng)前的周期是取指令還是進(jìn)行數(shù)據(jù)訪問。據(jù)訪問。nOPC=0,表示當(dāng)前周期進(jìn)行取指。,表示當(dāng)前周期進(jìn)行取指。 nOPC=1,表示當(dāng)前周期進(jìn)行普通數(shù)據(jù)的訪,表示當(dāng)前周期進(jìn)行普通數(shù)據(jù)的訪問。(問。(該位用的較多該位用的較多)MAS1:0: 和和ARM7TDMI的的MAS1:0信號信號進(jìn)行比較,以探測當(dāng)前總線的寬度是進(jìn)行比較,以探測當(dāng)前總線的寬度是8位、位、16位

26、還是位還是32位位 nRW: nRW = 0, 當(dāng)前的是讀周期,當(dāng)前的是讀周期,nRW = 1,當(dāng)前的是寫周期當(dāng)前的是寫周期45;.斷點設(shè)置的兩種方式:斷點設(shè)置的兩種方式:1)、硬件斷點:)、硬件斷點: 通過設(shè)置通過設(shè)置EmbeddedICE中的中的WP和地址相和地址相關(guān)的寄存器來實現(xiàn)的。通過該方式設(shè)置的斷關(guān)的寄存器來實現(xiàn)的。通過該方式設(shè)置的斷點數(shù)受到點數(shù)受到WP數(shù)目的限制。因數(shù)目的限制。因ARM7TAMI中中僅有兩組僅有兩組WP,故最多可以設(shè)置兩個斷點。,故最多可以設(shè)置兩個斷點。但是,硬件斷點可在任何地方設(shè)置不受存儲但是,硬件斷點可在任何地方設(shè)置不受存儲類型限制。類型限制。46;. 2)、軟

27、件斷點)、軟件斷點 通過設(shè)置通過設(shè)置EmbeddedICE中的中的WP和數(shù)和數(shù)據(jù)相關(guān)的寄存器來實現(xiàn)的。分為兩步:據(jù)相關(guān)的寄存器來實現(xiàn)的。分為兩步: (1)、將、將data value和和data mask設(shè)為設(shè)為ARM的的未定義指令,通常是一個特殊的未定義指令,通常是一個特殊的32位數(shù)字,位數(shù)字,如:如:0 xCDCDCDCD (2)、在需要設(shè)置斷點的地方將其內(nèi)容替換、在需要設(shè)置斷點的地方將其內(nèi)容替換 47;. 為(1)中的特殊數(shù)字。這樣,一但程序運(yùn)行到中的特殊數(shù)字。這樣,一但程序運(yùn)行到該位置,嘗試從該位置取指令或者數(shù)據(jù)的時該位置,嘗試從該位置取指令或者數(shù)據(jù)的時候,因為取得的數(shù)據(jù)值和候,因為取

28、得的數(shù)據(jù)值和WP Data Value寄寄存器的值相同,存器的值相同,ARM7TDMI會暫停當(dāng)前的會暫停當(dāng)前的運(yùn)行,自動進(jìn)入調(diào)試狀態(tài)。運(yùn)行,自動進(jìn)入調(diào)試狀態(tài)。 由上所述,軟件斷點數(shù)目不受由上所述,軟件斷點數(shù)目不受ARM內(nèi)核內(nèi)核中中WP數(shù)目的限制。但是,軟件斷點是通過數(shù)目的限制。但是,軟件斷點是通過替換系統(tǒng)斷點地址的指令實現(xiàn)的,所以,軟替換系統(tǒng)斷點地址的指令實現(xiàn)的,所以,軟件斷點只能在可寫的存儲器空間中設(shè)置,如:件斷點只能在可寫的存儲器空間中設(shè)置,如:RAM。而不能在。而不能在FLASH,ROM中設(shè)置。中設(shè)置。48;. 總之,有兩個總之,有兩個WP的的ARM7TDMI內(nèi)核中,內(nèi)核中,斷點設(shè)置有如

29、下情況:斷點設(shè)置有如下情況: 2個硬件斷點,沒有軟件斷點。個硬件斷點,沒有軟件斷點。 1個硬件斷點,任意個軟件斷點。個硬件斷點,任意個軟件斷點。 沒有硬件斷點,任意個軟件斷點。沒有硬件斷點,任意個軟件斷點。觀察點設(shè)置:觀察點設(shè)置: 將將WP Address Value寄存器的值設(shè)置為需要觀寄存器的值設(shè)置為需要觀察的地址,察的地址,WP Address Mask寄存器的值設(shè)置寄存器的值設(shè)置為為0 x00000000。將。將WP Data Mask寄存器的值寄存器的值設(shè)置為設(shè)置為0 xFFFFFFFF。同時。同時nPOC = 1。另外,49;. WP Data Value/Mask Register也用來設(shè)置也用來設(shè)置觀察點,用以觀察某個地址的數(shù)據(jù)變化。觀察點,用以觀察某個地址的數(shù)據(jù)變化。每當(dāng)系統(tǒng)訪問(讀每當(dāng)系統(tǒng)訪問(讀/寫)完被觀察地址的數(shù)寫)完被觀察地址的數(shù)據(jù)的時候,據(jù)的時候,ARM7TDMI就會進(jìn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論