第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頁,還剩123頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)基礎(chǔ)

第5講合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院史久根1/4/20231合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)基礎(chǔ)

第5講12/20/20221合肥工第3章嵌入式微處理器技術(shù)基礎(chǔ)本章主要介紹以下內(nèi)容:嵌入式微處理器典型技術(shù)主流嵌入式微處理器嵌入式處理器的調(diào)試技術(shù)邊界掃描測試技術(shù)JTAG1/4/20232合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院第3章嵌入式微處理器技術(shù)基礎(chǔ)本章主要介紹以下內(nèi)容:12/3.4邊界掃描測試接口JTAGJTAG是一種片上調(diào)試接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成電路固定在PCB(PrintedCircuitBoard,印刷電路板)上,只通過邊界掃描便可以被測試。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應(yīng)用。1/4/20233合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4邊界掃描測試接口JTAGJTAG是一種片上調(diào)試接口3.4.1測試摩爾定律1999年英特爾公司的副總裁PatrickCelsinger先生在美國大西洋城舉行的國際測試會議上提出了測試摩爾定律,并就此了講演。該定律預(yù)測未來幾年,每一晶體管的硅投資成本將低于其測試成本。PatrickCelsinger先生指出,硅成本已迅速下降,測試成本卻基本保持不變。并且,被測器件的速度常常比測試設(shè)備能測的速度高。也就是說,測試設(shè)備的發(fā)展速度已跟不上測試對象的發(fā)展。同時,測試成本在制造成本中所占比例過大。

1/4/20234合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.1測試摩爾定律1999年英特爾公司的副總裁Patdoubled_bh;shorts_bh;sense_horizontal_velocity(&d_bh);s_bh=d_bh;//OPERANDERROR代碼出錯案例:阿利亞娜5型火箭發(fā)射失敗1/4/20235合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院doubled_bh;shorts_bh;代碼出錯案例3.4.2JTAG基本概念JTAG是JointTestActionGroup(聯(lián)合測試行動組)的縮寫,聯(lián)合測試行動組是IEEE的一個下屬組織該組織研究標(biāo)準(zhǔn)測試訪問接口和邊界掃描結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接納為IEEE1149.1-1990規(guī)范JTAG成為電子行業(yè)的一種國際測試標(biāo)準(zhǔn)現(xiàn)在,人們通常用JTAG來表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測試方法。1/4/20236合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.2JTAG基本概念JTAG是JointTestJTAG掃描循環(huán)示意圖1/4/20237合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描循環(huán)示意圖12/20/20227合肥工業(yè)大學(xué)計(jì)算邊界掃描單元JTAG標(biāo)準(zhǔn)定義了一個串行的移位寄存器寄存器的每一個單元分配給IC芯片的相應(yīng)引腳每一個獨(dú)立的單元稱為BSC(Boundary-ScanCell)邊界掃描單元這個串聯(lián)的BSC在IC內(nèi)部構(gòu)成JTAG回路所有的BSR(Boundary-ScanRegister)邊界掃描寄存器通過JTAG測試激活1/4/20238合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院邊界掃描單元JTAG標(biāo)準(zhǔn)定義了一個串行的移位寄存器12/20ARM的JTAG調(diào)試結(jié)構(gòu)1/4/20239合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM的JTAG調(diào)試結(jié)構(gòu)12/20/20229合肥工業(yè)大學(xué)計(jì)ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)一般包括3部分:調(diào)試主機(jī)是運(yùn)行軟件調(diào)試器的計(jì)算機(jī)例如ADW,ARMDebuggerforWindows調(diào)試主機(jī)允許發(fā)出高級命令,如設(shè)置斷點(diǎn)或檢查存儲器內(nèi)容。協(xié)議轉(zhuǎn)換器處理調(diào)試主機(jī)和ARM7TDMI處理器JTAG接口之間的通訊包括調(diào)試主機(jī)發(fā)出的高級命令以及JTAG接口的低級命令。一般通過增強(qiáng)型并行口進(jìn)行連接。1/4/202310合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)一般包括3部分:12/20/202ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試目標(biāo)ARMCPU主處理器邏輯:對調(diào)試有硬件支持。嵌入式ICE-RT邏輯:這是用于產(chǎn)生調(diào)試異常(如斷點(diǎn))的寄存器和比較器的集合。TAP控制器:用JTAG串行接口控制掃描鏈的動作。1/4/202311合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試目標(biāo)12/20/202211合肥協(xié)議轉(zhuǎn)換器的調(diào)試擴(kuò)充功能ARM7TDMI具有易于在最低層調(diào)試的硬件擴(kuò)充,其調(diào)試擴(kuò)充功能如下列出:允許暫停程序的執(zhí)行;檢查和修改內(nèi)核的內(nèi)部狀態(tài);查看和修改存儲器系統(tǒng)的狀態(tài);執(zhí)行中止異常,允許實(shí)時的內(nèi)核監(jiān)控;重新開始程序執(zhí)行。1/4/202312合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院協(xié)議轉(zhuǎn)換器的調(diào)試擴(kuò)充功能ARM7TDMI具有易于在最低層調(diào)試3.4.3ARM7TDMI掃描鏈布局1/4/202313合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.3ARM7TDMI掃描鏈布局12/20/2022ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位1/4/202314合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位12/20JTAG接口的IC內(nèi)部結(jié)構(gòu)1/4/202315合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG接口的IC內(nèi)部結(jié)構(gòu)12/20/202215合肥工業(yè)大JTAG狀態(tài)轉(zhuǎn)換圖1/4/202316合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG狀態(tài)轉(zhuǎn)換圖12/20/202216合肥工業(yè)大學(xué)計(jì)算機(jī)JTAG信號TMS:測試模式選擇(TestModeSelect)通過TMS信號控制JTAG狀態(tài)機(jī)的狀態(tài)。TCK:JTAG的時鐘信號TDI:數(shù)據(jù)輸入信號TDO:數(shù)據(jù)輸出信號nTRST:JTAG復(fù)位信號,復(fù)位JTAG的狀態(tài)機(jī)和內(nèi)部的宏單元(Macrocell)。1/4/202317合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG信號TMS:測試模式選擇(TestModeSel3.4.4TAP控制器TAP控制器內(nèi)部有多個寄存器測試數(shù)據(jù)寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件識別碼(ID)寄存器掃描路徑選擇寄存器1/4/202318合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.4TAP控制器TAP控制器內(nèi)部有多個寄存器12/JTAG的TAP控制器結(jié)構(gòu)1/4/202319合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG的TAP控制器結(jié)構(gòu)12/20/202219合肥工業(yè)大測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有如下8個:指令寄存器;旁路寄存器;ARM7TDMI的器件識別(ID)碼寄存器;掃描路徑選擇寄存器;掃描鏈0、1、2和3。1/4/202320合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位在指令寄存器共安排10條控制指令,見下表。指令二進(jìn)制指令二進(jìn)制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11111/4/202321合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位指令JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做TDI和TDO之間串行路徑。見(a)在UPDATE-IR態(tài),指令寄存器的值成為當(dāng)前指令。見(b)在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(c)復(fù)位時,IDCODE(b1110)成為當(dāng)前指令。見(d)指令寄存器的最低有效位首先被掃描輸入和輸出。指令寄存器TDITDOSHIFT-IR狀態(tài)(a)指令寄存器值=0001CAPTURE-IR狀態(tài)(c)TDITDO當(dāng)前指令寄存器TDITDOUPDATE-IR狀態(tài)(b)當(dāng)前指令寄存器IDCODE=0001IDCODE-IR狀態(tài)(d)TDITDO1/4/202322合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做T旁路寄存器功能:通過提供TDI和TDO之間的路徑,在掃描測試期間對器件旁路。長度:1位操作方式:當(dāng)BYPASS指令是指令寄存器中的當(dāng)前指令時,串行數(shù)據(jù)在SHIFT-DR態(tài)以1個TCK周期的延遲從TDI傳到TDO。旁路寄存器沒有并行輸出。在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。1/4/202323合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院旁路寄存器功能:12/20/202223合肥工業(yè)大學(xué)計(jì)算機(jī)與ARM7TDMI器件

識別碼(ID)寄存器識別碼用途:讀32位器件識別碼。不提供可編程的識別碼。長度:32位。寄存器的格式如下圖所示。操作方式當(dāng)IDCODE指令是當(dāng)前指令時,將ID寄存器選做TDI和TDO之間的串行路徑。ID寄存器沒有并行輸出。在CAPTURE-DR態(tài),32位器件識別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本4位部件編號16位制造者標(biāo)識12位03111281/4/202324合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM7TDMI器件

識別碼(ID)寄存器識別碼用途:讀32掃描路徑選擇寄存器用途和長度變換當(dāng)前活動的掃描鏈,4位。操作方式僅當(dāng)執(zhí)行了一條SCAN_N指令或當(dāng)發(fā)生復(fù)位時,當(dāng)前所選的掃描鏈改變。復(fù)位時,將掃描鏈0選做活動的掃描鏈。在SHIFT-DR態(tài),SCAN_N指令把掃描路徑選擇寄存器作為TDI和TDO之間的串行數(shù)據(jù)移位路徑。在CAPTURE-DR態(tài),將b1000加載到該寄存器。這個值在SHIFT-DR態(tài)加載輸出,同時裝入新值。在UPDATE-DR態(tài),由寄存器中的值選擇一個掃描鏈成為當(dāng)前活動的掃描鏈。所有進(jìn)一步的指令(如INTEST)都應(yīng)用到該掃描鏈上。1/4/202325合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描路徑選擇寄存器用途和長度12/20/202225合肥工業(yè)掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設(shè)計(jì)者實(shí)現(xiàn))4保留8保留1/4/202326合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式I3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元組成每一個被測試邏輯電路引出信號線同它的引腳之間配置一個掃描單元每一個掃描單元的內(nèi)部由兩個D觸發(fā)器和兩個多路選擇器組成分別把邏輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運(yùn)動的電流方向成為縱向。JTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。1/4/202327合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移位,俘獲,更新1/4/202328合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移JTAG掃描鏈的組成LogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic1/4/202329合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描鏈的組成LogicPinPinPinPinLogJTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在1/4/202330合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在12/2捕獲JTAG狀態(tài)當(dāng)前引腳信號的快照存入掃描鏈1/4/202331合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院捕獲JTAG狀態(tài)當(dāng)前引腳12/20/202231合肥工業(yè)大學(xué)移位數(shù)據(jù)縱向直行此刻處理器的工作脈沖暫停1/4/202332合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院移位數(shù)據(jù)縱此刻處理器的工作脈沖暫停12/20/202232合移位結(jié)束縱向直行此刻處理器的工作脈沖暫停1/4/202333合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院移位結(jié)束縱此刻處理器的工作脈沖暫停12/20/202233合數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理器向系統(tǒng)輸出信號。1/4/202334合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理掃描鏈0ScanChain0:有113個掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號。這條鏈上的信號復(fù)雜,不易控制,但是包含的信息豐富,可以通過這條鏈得到ARM7TDMI內(nèi)核的所有信息。從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序?yàn)椋?1)數(shù)據(jù)總線位[0]-位[31];(2)內(nèi)核控制信號;(3)地址總線位[31]-位[0];(4)嵌入式ICE-RT控制信號。嵌入式ICE-RT控制信號(特別是DBGRQI)首先被掃描輸出。1/4/202335合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0ScanChain0:有113個掃描單元,包括A掃描鏈0單元編號信號類型編號信號類型1~32D[0]~D[31]輸入/輸出41BL[0]輸入33BREAKPT輸入42BL[1]輸入34NENIN輸入43BL[2]輸入35NENOUT輸出44BL[3]輸入36LOCK輸出45DCTL輸出37BIGEND輸入46nRW輸出38DBE輸入47DBGACK輸出39MAS[0]輸出48CGENDBGACK輸出40MAS[1]輸出49nFIQ輸入1/4/202336合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元編號信號類型編號信號類型1~32D[0]~D[3掃描鏈0單元(續(xù)1)編號信號類型編號信號類型50nIRQ輸入59nMREQ輸出51nRESET輸入60SEQ輸入52ISYNC輸入61nTRANS輸入53BRGRQ輸入62CPB輸入54ABORT輸入63nM[4]輸出55CPA輸入64nM[3]輸出56nOPC輸出65nM[2]輸出57IFEN輸入66nM[1]輸出58nCPI輸出67nM[0]輸出1/4/202337合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元(續(xù)1)編號信號類型編號信號類型50nIRQ輸入掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74~105A[31]~A[0]輸出106~113ICE-RT信號1/4/202338合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點(diǎn)控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實(shí)現(xiàn)對ARM的內(nèi)部寄存器、協(xié)處理器以及外部存儲器的讀寫操作。1/4/202339合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAKPT內(nèi)核輸入上的掃描單元。第33位有如下4個用途:在正常INTEST測試條件下,允許將已知值掃描到BREAKPT的輸入。在EXTEST測試條件下,捕獲從系統(tǒng)加到BREAKPT輸入的值。在調(diào)試期間,第33位的值決定在執(zhí)行指令之前ARM7TDMI核是否同步回系統(tǒng)速度。ARM7TDMI核進(jìn)入調(diào)試狀態(tài)后,該位第一次被捕獲并被掃描輸出。其值告訴調(diào)試器內(nèi)核是否由斷點(diǎn)(位[33]清零)或由觀察點(diǎn)(位[33]置位)進(jìn)入調(diào)試狀態(tài)。1/4/202340合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAK掃描鏈2ScanChain2共有38個掃描單元,通過控制EmbeddedICE宏單元,實(shí)現(xiàn)對ARM執(zhí)行指令的斷點(diǎn)、觀察點(diǎn)的控制。從TDI到TDO的掃描鏈次序如下:讀/寫;寄存器地址位[4]-位[0];數(shù)據(jù)值位[31]-位[0]。1/4/202341合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈2ScanChain2共有38個掃描單元,通過控制3.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也稱為EmbeddedICE或者EmbeddedICE-RT,其主要功能是為ARM7TDMI核提供集成的在線調(diào)試支持。ARM公司的片上測試部件。使用ARM7TDMI的TAP控制器來控制嵌入式ICE-RT邏輯的串行數(shù)據(jù)輸入。下圖給出了內(nèi)核、嵌入式ICE-RT邏輯和TAP控制器之間的關(guān)系。圖中僅顯示了有關(guān)的信號。1/4/202342合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也嵌入式ICE-RT連線結(jié)構(gòu)圖1/4/202343合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT連線結(jié)構(gòu)圖12/20/202243合肥工業(yè)嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下:2個實(shí)時觀察點(diǎn)單元;3個獨(dú)立的寄存器:調(diào)試控制寄存器、調(diào)試狀態(tài)寄存器、中止?fàn)顟B(tài)寄存器;調(diào)試通信通道DCC(DebugCommunicationsChannel)。1/4/202344合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時使用中止?fàn)顟B(tài)寄存器??梢跃幊?個或2個觀察點(diǎn)單元來暫停內(nèi)核程序的執(zhí)行。當(dāng)編程進(jìn)入嵌入式ICE-RT的值與當(dāng)前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號的值匹配時,暫停執(zhí)行。1/4/202345合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成在ARM內(nèi)核中的嵌入式ICE仿真器。其結(jié)構(gòu)如下圖所示。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設(shè)置斷點(diǎn)以及讀取Debug通訊通道。EmbeddedICE的串行數(shù)據(jù)長度是38位,包括:32位數(shù)據(jù)5位的訪問EmbeddedICE中寄存器的地址1個讀寫控制位1/4/202346合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38位1/4/202347合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38EmbeddedICE的寄存器地址寬度功能地址寬度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask1/4/202348合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE的寄存器地址寬度功能地址寬度功能000Watchpoint寄存器的使用

EmbeddedICE的一個主要作用就是可以在ARM的程序中設(shè)置軟件或者硬件的斷點(diǎn)。在EmbeddedICE中,集成了一個比較器,比較器負(fù)責(zé)把ARM處理器取指的地址A[31:0]、數(shù)據(jù)D[31:0]以及一些控制信號與EmbeddedICE中Watchpoint寄存器中設(shè)置的數(shù)值相比較具體的說應(yīng)該是進(jìn)行同或運(yùn)算比較的結(jié)果用來確定輸出一個ARM的斷點(diǎn)(Breakpoint)信號。具體的運(yùn)算關(guān)系如下公式所描述:({Av[31:0],Cv[4:0]}XNOR{A[31:0],C[4:0]})OR{Am[31:0],Cm[4:0]}==0x1FFFFFFFFF1/4/202349合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院Watchpoint寄存器的使用EmbeddedICE的一EmbeddedICE斷點(diǎn)信號條件當(dāng)上述表達(dá)式為真的時候,斷點(diǎn)信號有效,ARM的內(nèi)核就進(jìn)入了Debug模式。在Debug模式下,ARM內(nèi)核的時鐘從系統(tǒng)的主時鐘(MCLK)被替換成跟蹤時鐘(DCLK)。跟蹤時鐘(DCLK)是通過在JTAG的狀態(tài)機(jī)的Run-test/Idle狀態(tài)的TCK來控制的。

1/4/202350合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE斷點(diǎn)信號條件當(dāng)上述表達(dá)式為真的時候,斷Watchpoint表達(dá)式的含義

信號說明Av[31:0]Watchpoint中地址寄存器(Addressregister)的數(shù)據(jù)Am[31:0]Watchpoint中地址mask寄存器(addressmaskregister)的數(shù)據(jù)A[31:0]從ARM7TDMI的核中得到的總線的地址,也就是當(dāng)前處理器取址的地址Dv[31:0]Watchpoint中數(shù)據(jù)寄存器(dataregister)中的數(shù)據(jù)Dm[31:0]Watchpoint中數(shù)據(jù)mask寄存器(datamaskregister)的數(shù)據(jù)D[31:0]從ARM7TDMI的核中得到的總線的數(shù)據(jù),也就是當(dāng)前處理器取址所到的數(shù)據(jù)Cv[8:0]Watchpoint中控制寄存器(controlregister)中的數(shù)據(jù)Cm[7:0]Watchpoint中控制mask寄存器(controlmaskregister)中的數(shù)據(jù)C[9:0]ARM7TDMI的控制總線1/4/202351合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院Watchpoint表達(dá)式的含義信號說3.4.7ARM7TDMI斷點(diǎn)的設(shè)置ARM中斷點(diǎn)的設(shè)置主要是設(shè)置EmbeddedICE中的寄存器主要包括:設(shè)置EmbeddedICE的兩個watchpoint單元的地址、數(shù)據(jù)或控制信號寄存器。當(dāng)一個(或者兩個)watchpoint寄存器滿足條件的時候,ARM就從運(yùn)行狀態(tài)進(jìn)入Debug狀態(tài)。也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當(dāng)前的指令相同的時候1/4/202352合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.7ARM7TDMI斷點(diǎn)的設(shè)置ARM中斷點(diǎn)的設(shè)置主要硬件斷點(diǎn)和軟件斷點(diǎn)在ARM7TDMI處理器的內(nèi)核中,有兩種斷點(diǎn)的設(shè)置方式:硬件斷點(diǎn)和軟件斷點(diǎn)硬件斷點(diǎn)通過設(shè)置EmbeddedICE中的Watchpoint寄存器中的地址相關(guān)的寄存器,來實(shí)現(xiàn)斷點(diǎn)。通過這種方式設(shè)置斷點(diǎn),斷點(diǎn)數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內(nèi)核中,只有兩組Watchpoint寄存器,最多只能設(shè)置兩個硬件斷點(diǎn))。硬件斷點(diǎn)可以在任何地方設(shè)置。不受存儲器類型的限制。1/4/202353合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院硬件斷點(diǎn)和軟件斷點(diǎn)在ARM7TDMI處理器的內(nèi)核中,有兩種斷軟件斷點(diǎn)軟件斷點(diǎn)的實(shí)現(xiàn)比較復(fù)雜,需要如下幾個步驟:通過設(shè)置EmbeddedICE中的Watchpoint寄存器中的數(shù)據(jù)相關(guān)寄存器(datavalue和datamaskvalue)為一個特殊的32位數(shù)字—ARM的未定義指令,比如:0x06000010。替換RAM中的指令為上面所設(shè)置的那個未定的指令0x06000010,作為一個標(biāo)志。當(dāng)系統(tǒng)運(yùn)行到RAM中所設(shè)定的單元位置時候,那個事先設(shè)置的標(biāo)志數(shù)字將被當(dāng)作一個指令讀入處理器的內(nèi)核。1/4/202354合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院軟件斷點(diǎn)軟件斷點(diǎn)的實(shí)現(xiàn)比較復(fù)雜,需要如下幾個步驟:12/20軟件斷點(diǎn)(續(xù))此時,系統(tǒng)所讀入的指令的數(shù)據(jù)剛好和datavalue中的數(shù)字相吻合,系統(tǒng)就進(jìn)入了Debug模式。這就是軟件斷點(diǎn)的工作過程。軟件斷點(diǎn)的數(shù)目不受ARM內(nèi)核的Watchpoint數(shù)目的限制,不管系統(tǒng)設(shè)置多少個軟件斷點(diǎn),僅僅使用了ARM內(nèi)核的一個Watchpoint資源。軟件斷點(diǎn)是通過替換系統(tǒng)的斷點(diǎn)地址的指令實(shí)現(xiàn)的,所以,軟件斷點(diǎn)只能在可寫的存儲器的地址中設(shè)置(比如:RAM),而不能在ROM(比如:Flash)中設(shè)置。1/4/202355合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院軟件斷點(diǎn)(續(xù))此時,系統(tǒng)所讀入的指令的數(shù)據(jù)剛好和datav斷點(diǎn)設(shè)置小結(jié)總之,在有兩個Watchpoint資源的ARM7TDMI的內(nèi)核中,斷點(diǎn)可以有如下情況:2個硬件斷點(diǎn),沒有軟件斷點(diǎn)1個硬件斷點(diǎn),任意多個軟件斷點(diǎn)任意多個軟件斷點(diǎn)1/4/202356合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院斷點(diǎn)設(shè)置小結(jié)總之,在有兩個Watchpoint資源的ARM73.4.8ARM調(diào)試接口ARM7TDMI調(diào)試接口基于IEEE標(biāo)準(zhǔn)1149.1-1990以及標(biāo)準(zhǔn)測試訪問口和邊界掃描體系結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)。調(diào)試擴(kuò)充可強(qiáng)迫內(nèi)核進(jìn)入下列模式之一:暫停模式(調(diào)試模式):在斷點(diǎn)或觀察點(diǎn),內(nèi)核進(jìn)入調(diào)試狀態(tài)。在調(diào)試狀態(tài),內(nèi)核停止工作并與系統(tǒng)的其它部分隔離。當(dāng)調(diào)試完成后,調(diào)試主機(jī)恢復(fù)內(nèi)核和系統(tǒng)狀態(tài),程序重新開始執(zhí)行。監(jiān)控模式:在斷點(diǎn)或觀察點(diǎn),形成指令中止或數(shù)據(jù)中止而不進(jìn)入調(diào)試狀態(tài)。內(nèi)核仍正常接受和服務(wù)中斷。1/4/202357合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.8ARM調(diào)試接口ARM7TDMI調(diào)試接口基于IE調(diào)試階段外部調(diào)試接口信號或嵌入式ICE-RT邏輯請求迫使ARM7TDMI進(jìn)入調(diào)試狀態(tài)。激活調(diào)試的事件如下:斷點(diǎn)(取指);觀察點(diǎn)(數(shù)據(jù)訪問);外部調(diào)試請求。使用JTAG格式的串行口檢測ARM7TDMI的內(nèi)部狀態(tài)。在暫停模式下,這可確保不使用外部數(shù)據(jù)總線即可將指令串行插入進(jìn)內(nèi)核流水線。例如,在調(diào)試狀態(tài),存儲多個寄存器指令(STM)可以插入指令流水線,輸出ARM7TDMI寄存器的內(nèi)容。數(shù)據(jù)可以串行移出而不影響系統(tǒng)的其它部分。在監(jiān)控狀態(tài),JTAG接口用于在調(diào)試器與運(yùn)行在ARM7TDMI核上簡單的監(jiān)控程序之間傳送數(shù)據(jù)。1/4/202358合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院調(diào)試階段外部調(diào)試接口信號或嵌入式ICE-RT邏輯請求迫使AR時鐘

ARM7TDMI核有如下2個時鐘:MCLK是存儲器時鐘;DCLK是內(nèi)部調(diào)試時鐘,由測試時鐘TCK生成。在正常工作期間,內(nèi)核由MCLK時鐘驅(qū)動,內(nèi)部邏輯保持DCLK為低電平。當(dāng)ARM7TDMI在暫停模式時,在TAP狀態(tài)機(jī)控制下,內(nèi)核由DCLK供給時鐘,MCLK自由運(yùn)行。選擇的時鐘在信號線ECLK上輸出以便由外部系統(tǒng)使用。1/4/202359合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院時鐘ARM7TDMI核有如下2個時鐘:12/20/2022調(diào)試接口信號與調(diào)試接口有關(guān)的外部信號主要有如下3個:BREAKPT和DBGRQ是處理器進(jìn)入調(diào)試狀態(tài)的系統(tǒng)請求信號;DBGACK是指示內(nèi)核處于調(diào)試狀態(tài)的信號。進(jìn)入調(diào)試狀態(tài)的入口(1)在斷點(diǎn)進(jìn)入調(diào)試狀態(tài)(2)在觀察點(diǎn)進(jìn)入調(diào)試狀態(tài)(3)由調(diào)試請求進(jìn)入調(diào)試狀態(tài)1/4/202360合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院調(diào)試接口信號與調(diào)試接口有關(guān)的外部信號主要有如下3個:12/2調(diào)試接口信號(續(xù))調(diào)試狀態(tài)下ARM7TDMI的動作在暫停模式下,除nMREQ和SEQ外,所有存儲器接口輸出發(fā)生與存儲器系統(tǒng)異步的改變。在監(jiān)控模式下,ARM7TDMI繼續(xù)執(zhí)行指令,存儲器接口的行為正常。1/4/202361合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院調(diào)試接口信號(續(xù))調(diào)試狀態(tài)下ARM7TDMI的動作12/20ARM處理器的實(shí)時JTAG仿真器

與開發(fā)板的連線圖1/4/202362合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM處理器的實(shí)時JTAG仿真器

與開發(fā)板的連線圖12/20第5講重點(diǎn)測試摩爾定律邊界掃描單元和JTAG掃描鏈ARM的JTAG調(diào)試結(jié)構(gòu)ARM7TDMI的JTAG掃描鏈結(jié)構(gòu)JTAG狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖JTAG標(biāo)準(zhǔn)信號和JTAG工作原理ARM公司的嵌入式ICE-RT功能和結(jié)構(gòu)硬件斷點(diǎn)和軟件斷點(diǎn)ARM處理器的JTAG仿真器接線1/4/202363合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院第5講重點(diǎn)測試摩爾定律12/20/202263合肥工業(yè)大學(xué)計(jì)第5講復(fù)習(xí)題和思考題哪些類型的半導(dǎo)體集成電路芯片內(nèi)嵌了JTAG掃描電路?測試摩爾定律的主要觀點(diǎn)是什么?試闡述JTAG標(biāo)準(zhǔn)的基本概念。ARM處理器的JTAG調(diào)試結(jié)構(gòu)對于其他含有JTAG接口的嵌入式處理器或者芯片也適用嗎?JTAG協(xié)議轉(zhuǎn)換器有哪些功能?JTAG掃描鏈能夠完成哪幾種基本操作?嵌入式ICE-RT邏輯可以設(shè)置幾個調(diào)試斷點(diǎn)?硬件斷點(diǎn)和軟件斷點(diǎn)有什么區(qū)別?試在因特網(wǎng)上檢索幾種ARM仿真器,并指出各自的技術(shù)特點(diǎn)?1/4/202364合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院第5講復(fù)習(xí)題和思考題哪些類型的半導(dǎo)體集成電路芯片內(nèi)嵌了J嵌入式系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)基礎(chǔ)

第5講合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院史久根1/4/202365合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式系統(tǒng)結(jié)構(gòu)與設(shè)計(jì)基礎(chǔ)

第5講12/20/20221合肥工第3章嵌入式微處理器技術(shù)基礎(chǔ)本章主要介紹以下內(nèi)容:嵌入式微處理器典型技術(shù)主流嵌入式微處理器嵌入式處理器的調(diào)試技術(shù)邊界掃描測試技術(shù)JTAG1/4/202366合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院第3章嵌入式微處理器技術(shù)基礎(chǔ)本章主要介紹以下內(nèi)容:12/3.4邊界掃描測試接口JTAGJTAG是一種片上調(diào)試接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成電路固定在PCB(PrintedCircuitBoard,印刷電路板)上,只通過邊界掃描便可以被測試。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應(yīng)用。1/4/202367合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4邊界掃描測試接口JTAGJTAG是一種片上調(diào)試接口3.4.1測試摩爾定律1999年英特爾公司的副總裁PatrickCelsinger先生在美國大西洋城舉行的國際測試會議上提出了測試摩爾定律,并就此了講演。該定律預(yù)測未來幾年,每一晶體管的硅投資成本將低于其測試成本。PatrickCelsinger先生指出,硅成本已迅速下降,測試成本卻基本保持不變。并且,被測器件的速度常常比測試設(shè)備能測的速度高。也就是說,測試設(shè)備的發(fā)展速度已跟不上測試對象的發(fā)展。同時,測試成本在制造成本中所占比例過大。

1/4/202368合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.1測試摩爾定律1999年英特爾公司的副總裁Patdoubled_bh;shorts_bh;sense_horizontal_velocity(&d_bh);s_bh=d_bh;//OPERANDERROR代碼出錯案例:阿利亞娜5型火箭發(fā)射失敗1/4/202369合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院doubled_bh;shorts_bh;代碼出錯案例3.4.2JTAG基本概念JTAG是JointTestActionGroup(聯(lián)合測試行動組)的縮寫,聯(lián)合測試行動組是IEEE的一個下屬組織該組織研究標(biāo)準(zhǔn)測試訪問接口和邊界掃描結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接納為IEEE1149.1-1990規(guī)范JTAG成為電子行業(yè)的一種國際測試標(biāo)準(zhǔn)現(xiàn)在,人們通常用JTAG來表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測試方法。1/4/202370合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.2JTAG基本概念JTAG是JointTestJTAG掃描循環(huán)示意圖1/4/202371合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描循環(huán)示意圖12/20/20227合肥工業(yè)大學(xué)計(jì)算邊界掃描單元JTAG標(biāo)準(zhǔn)定義了一個串行的移位寄存器寄存器的每一個單元分配給IC芯片的相應(yīng)引腳每一個獨(dú)立的單元稱為BSC(Boundary-ScanCell)邊界掃描單元這個串聯(lián)的BSC在IC內(nèi)部構(gòu)成JTAG回路所有的BSR(Boundary-ScanRegister)邊界掃描寄存器通過JTAG測試激活1/4/202372合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院邊界掃描單元JTAG標(biāo)準(zhǔn)定義了一個串行的移位寄存器12/20ARM的JTAG調(diào)試結(jié)構(gòu)1/4/202373合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM的JTAG調(diào)試結(jié)構(gòu)12/20/20229合肥工業(yè)大學(xué)計(jì)ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)一般包括3部分:調(diào)試主機(jī)是運(yùn)行軟件調(diào)試器的計(jì)算機(jī)例如ADW,ARMDebuggerforWindows調(diào)試主機(jī)允許發(fā)出高級命令,如設(shè)置斷點(diǎn)或檢查存儲器內(nèi)容。協(xié)議轉(zhuǎn)換器處理調(diào)試主機(jī)和ARM7TDMI處理器JTAG接口之間的通訊包括調(diào)試主機(jī)發(fā)出的高級命令以及JTAG接口的低級命令。一般通過增強(qiáng)型并行口進(jìn)行連接。1/4/202374合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)一般包括3部分:12/20/202ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試目標(biāo)ARMCPU主處理器邏輯:對調(diào)試有硬件支持。嵌入式ICE-RT邏輯:這是用于產(chǎn)生調(diào)試異常(如斷點(diǎn))的寄存器和比較器的集合。TAP控制器:用JTAG串行接口控制掃描鏈的動作。1/4/202375合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試目標(biāo)12/20/202211合肥協(xié)議轉(zhuǎn)換器的調(diào)試擴(kuò)充功能ARM7TDMI具有易于在最低層調(diào)試的硬件擴(kuò)充,其調(diào)試擴(kuò)充功能如下列出:允許暫停程序的執(zhí)行;檢查和修改內(nèi)核的內(nèi)部狀態(tài);查看和修改存儲器系統(tǒng)的狀態(tài);執(zhí)行中止異常,允許實(shí)時的內(nèi)核監(jiān)控;重新開始程序執(zhí)行。1/4/202376合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院協(xié)議轉(zhuǎn)換器的調(diào)試擴(kuò)充功能ARM7TDMI具有易于在最低層調(diào)試3.4.3ARM7TDMI掃描鏈布局1/4/202377合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.3ARM7TDMI掃描鏈布局12/20/2022ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位1/4/202378合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位12/20JTAG接口的IC內(nèi)部結(jié)構(gòu)1/4/202379合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG接口的IC內(nèi)部結(jié)構(gòu)12/20/202215合肥工業(yè)大JTAG狀態(tài)轉(zhuǎn)換圖1/4/202380合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG狀態(tài)轉(zhuǎn)換圖12/20/202216合肥工業(yè)大學(xué)計(jì)算機(jī)JTAG信號TMS:測試模式選擇(TestModeSelect)通過TMS信號控制JTAG狀態(tài)機(jī)的狀態(tài)。TCK:JTAG的時鐘信號TDI:數(shù)據(jù)輸入信號TDO:數(shù)據(jù)輸出信號nTRST:JTAG復(fù)位信號,復(fù)位JTAG的狀態(tài)機(jī)和內(nèi)部的宏單元(Macrocell)。1/4/202381合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG信號TMS:測試模式選擇(TestModeSel3.4.4TAP控制器TAP控制器內(nèi)部有多個寄存器測試數(shù)據(jù)寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件識別碼(ID)寄存器掃描路徑選擇寄存器1/4/202382合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.4TAP控制器TAP控制器內(nèi)部有多個寄存器12/JTAG的TAP控制器結(jié)構(gòu)1/4/202383合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG的TAP控制器結(jié)構(gòu)12/20/202219合肥工業(yè)大測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有如下8個:指令寄存器;旁路寄存器;ARM7TDMI的器件識別(ID)碼寄存器;掃描路徑選擇寄存器;掃描鏈0、1、2和3。1/4/202384合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位在指令寄存器共安排10條控制指令,見下表。指令二進(jìn)制指令二進(jìn)制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11111/4/202385合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位指令JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做TDI和TDO之間串行路徑。見(a)在UPDATE-IR態(tài),指令寄存器的值成為當(dāng)前指令。見(b)在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(c)復(fù)位時,IDCODE(b1110)成為當(dāng)前指令。見(d)指令寄存器的最低有效位首先被掃描輸入和輸出。指令寄存器TDITDOSHIFT-IR狀態(tài)(a)指令寄存器值=0001CAPTURE-IR狀態(tài)(c)TDITDO當(dāng)前指令寄存器TDITDOUPDATE-IR狀態(tài)(b)當(dāng)前指令寄存器IDCODE=0001IDCODE-IR狀態(tài)(d)TDITDO1/4/202386合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做T旁路寄存器功能:通過提供TDI和TDO之間的路徑,在掃描測試期間對器件旁路。長度:1位操作方式:當(dāng)BYPASS指令是指令寄存器中的當(dāng)前指令時,串行數(shù)據(jù)在SHIFT-DR態(tài)以1個TCK周期的延遲從TDI傳到TDO。旁路寄存器沒有并行輸出。在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。1/4/202387合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院旁路寄存器功能:12/20/202223合肥工業(yè)大學(xué)計(jì)算機(jī)與ARM7TDMI器件

識別碼(ID)寄存器識別碼用途:讀32位器件識別碼。不提供可編程的識別碼。長度:32位。寄存器的格式如下圖所示。操作方式當(dāng)IDCODE指令是當(dāng)前指令時,將ID寄存器選做TDI和TDO之間的串行路徑。ID寄存器沒有并行輸出。在CAPTURE-DR態(tài),32位器件識別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本4位部件編號16位制造者標(biāo)識12位03111281/4/202388合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院ARM7TDMI器件

識別碼(ID)寄存器識別碼用途:讀32掃描路徑選擇寄存器用途和長度變換當(dāng)前活動的掃描鏈,4位。操作方式僅當(dāng)執(zhí)行了一條SCAN_N指令或當(dāng)發(fā)生復(fù)位時,當(dāng)前所選的掃描鏈改變。復(fù)位時,將掃描鏈0選做活動的掃描鏈。在SHIFT-DR態(tài),SCAN_N指令把掃描路徑選擇寄存器作為TDI和TDO之間的串行數(shù)據(jù)移位路徑。在CAPTURE-DR態(tài),將b1000加載到該寄存器。這個值在SHIFT-DR態(tài)加載輸出,同時裝入新值。在UPDATE-DR態(tài),由寄存器中的值選擇一個掃描鏈成為當(dāng)前活動的掃描鏈。所有進(jìn)一步的指令(如INTEST)都應(yīng)用到該掃描鏈上。1/4/202389合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描路徑選擇寄存器用途和長度12/20/202225合肥工業(yè)掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設(shè)計(jì)者實(shí)現(xiàn))4保留8保留1/4/202390合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式I3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元組成每一個被測試邏輯電路引出信號線同它的引腳之間配置一個掃描單元每一個掃描單元的內(nèi)部由兩個D觸發(fā)器和兩個多路選擇器組成分別把邏輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運(yùn)動的電流方向成為縱向。JTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。1/4/202391合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移位,俘獲,更新1/4/202392合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移JTAG掃描鏈的組成LogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic1/4/202393合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG掃描鏈的組成LogicPinPinPinPinLogJTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在1/4/202394合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院JTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在12/2捕獲JTAG狀態(tài)當(dāng)前引腳信號的快照存入掃描鏈1/4/202395合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院捕獲JTAG狀態(tài)當(dāng)前引腳12/20/202231合肥工業(yè)大學(xué)移位數(shù)據(jù)縱向直行此刻處理器的工作脈沖暫停1/4/202396合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院移位數(shù)據(jù)縱此刻處理器的工作脈沖暫停12/20/202232合移位結(jié)束縱向直行此刻處理器的工作脈沖暫停1/4/202397合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院移位結(jié)束縱此刻處理器的工作脈沖暫停12/20/202233合數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理器向系統(tǒng)輸出信號。1/4/202398合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理掃描鏈0ScanChain0:有113個掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號。這條鏈上的信號復(fù)雜,不易控制,但是包含的信息豐富,可以通過這條鏈得到ARM7TDMI內(nèi)核的所有信息。從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序?yàn)椋?1)數(shù)據(jù)總線位[0]-位[31];(2)內(nèi)核控制信號;(3)地址總線位[31]-位[0];(4)嵌入式ICE-RT控制信號。嵌入式ICE-RT控制信號(特別是DBGRQI)首先被掃描輸出。1/4/202399合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0ScanChain0:有113個掃描單元,包括A掃描鏈0單元編號信號類型編號信號類型1~32D[0]~D[31]輸入/輸出41BL[0]輸入33BREAKPT輸入42BL[1]輸入34NENIN輸入43BL[2]輸入35NENOUT輸出44BL[3]輸入36LOCK輸出45DCTL輸出37BIGEND輸入46nRW輸出38DBE輸入47DBGACK輸出39MAS[0]輸出48CGENDBGACK輸出40MAS[1]輸出49nFIQ輸入1/4/2023100合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元編號信號類型編號信號類型1~32D[0]~D[3掃描鏈0單元(續(xù)1)編號信號類型編號信號類型50nIRQ輸入59nMREQ輸出51nRESET輸入60SEQ輸入52ISYNC輸入61nTRANS輸入53BRGRQ輸入62CPB輸入54ABORT輸入63nM[4]輸出55CPA輸入64nM[3]輸出56nOPC輸出65nM[2]輸出57IFEN輸入66nM[1]輸出58nCPI輸出67nM[0]輸出1/4/2023101合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元(續(xù)1)編號信號類型編號信號類型50nIRQ輸入掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74~105A[31]~A[0]輸出106~113ICE-RT信號1/4/2023102合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點(diǎn)控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實(shí)現(xiàn)對ARM的內(nèi)部寄存器、協(xié)處理器以及外部存儲器的讀寫操作。1/4/2023103合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAKPT內(nèi)核輸入上的掃描單元。第33位有如下4個用途:在正常INTEST測試條件下,允許將已知值掃描到BREAKPT的輸入。在EXTEST測試條件下,捕獲從系統(tǒng)加到BREAKPT輸入的值。在調(diào)試期間,第33位的值決定在執(zhí)行指令之前ARM7TDMI核是否同步回系統(tǒng)速度。ARM7TDMI核進(jìn)入調(diào)試狀態(tài)后,該位第一次被捕獲并被掃描輸出。其值告訴調(diào)試器內(nèi)核是否由斷點(diǎn)(位[33]清零)或由觀察點(diǎn)(位[33]置位)進(jìn)入調(diào)試狀態(tài)。1/4/2023104合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAK掃描鏈2ScanChain2共有38個掃描單元,通過控制EmbeddedICE宏單元,實(shí)現(xiàn)對ARM執(zhí)行指令的斷點(diǎn)、觀察點(diǎn)的控制。從TDI到TDO的掃描鏈次序如下:讀/寫;寄存器地址位[4]-位[0];數(shù)據(jù)值位[31]-位[0]。1/4/2023105合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院掃描鏈2ScanChain2共有38個掃描單元,通過控制3.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也稱為EmbeddedICE或者EmbeddedICE-RT,其主要功能是為ARM7TDMI核提供集成的在線調(diào)試支持。ARM公司的片上測試部件。使用ARM7TDMI的TAP控制器來控制嵌入式ICE-RT邏輯的串行數(shù)據(jù)輸入。下圖給出了內(nèi)核、嵌入式ICE-RT邏輯和TAP控制器之間的關(guān)系。圖中僅顯示了有關(guān)的信號。1/4/2023106合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也嵌入式ICE-RT連線結(jié)構(gòu)圖1/4/2023107合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT連線結(jié)構(gòu)圖12/20/202243合肥工業(yè)嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下:2個實(shí)時觀察點(diǎn)單元;3個獨(dú)立的寄存器:調(diào)試控制寄存器、調(diào)試狀態(tài)寄存器、中止?fàn)顟B(tài)寄存器;調(diào)試通信通道DCC(DebugCommunicationsChannel)。1/4/2023108合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時使用中止?fàn)顟B(tài)寄存器??梢跃幊?個或2個觀察點(diǎn)單元來暫停內(nèi)核程序的執(zhí)行。當(dāng)編程進(jìn)入嵌入式ICE-RT的值與當(dāng)前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號的值匹配時,暫停執(zhí)行。1/4/2023109合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成在ARM內(nèi)核中的嵌入式ICE仿真器。其結(jié)構(gòu)如下圖所示。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設(shè)置斷點(diǎn)以及讀取Debug通訊通道。EmbeddedICE的串行數(shù)據(jù)長度是38位,包括:32位數(shù)據(jù)5位的訪問EmbeddedICE中寄存器的地址1個讀寫控制位1/4/2023110合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38位1/4/2023111合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38EmbeddedICE的寄存器地址寬度功能地址寬度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask1/4/2023112合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE的寄存器地址寬度功能地址寬度功能000Watchpoint寄存器的使用

EmbeddedICE的一個主要作用就是可以在ARM的程序中設(shè)置軟件或者硬件的斷點(diǎn)。在EmbeddedICE中,集成了一個比較器,比較器負(fù)責(zé)把ARM處理器取指的地址A[31:0]、數(shù)據(jù)D[31:0]以及一些控制信號與EmbeddedICE中Watchpoint寄存器中設(shè)置的數(shù)值相比較具體的說應(yīng)該是進(jìn)行同或運(yùn)算比較的結(jié)果用來確定輸出一個ARM的斷點(diǎn)(Breakpoint)信號。具體的運(yùn)算關(guān)系如下公式所描述:({Av[31:0],Cv[4:0]}XNOR{A[31:0],C[4:0]})OR{Am[31:0],Cm[4:0]}==0x1FFFFFFFFF1/4/2023113合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院Watchpoint寄存器的使用EmbeddedICE的一EmbeddedICE斷點(diǎn)信號條件當(dāng)上述表達(dá)式為真的時候,斷點(diǎn)信號有效,ARM的內(nèi)核就進(jìn)入了Debug模式。在Debug模式下,ARM內(nèi)核的時鐘從系統(tǒng)的主時鐘(MCLK)被替換成跟蹤時鐘(DCLK)。跟蹤時鐘(DCLK)是通過在JTAG的狀態(tài)機(jī)的Run-test/Idle狀態(tài)的TCK來控制的。

1/4/2023114合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院EmbeddedICE斷點(diǎn)信號條件當(dāng)上述表達(dá)式為真的時候,斷Watchpoint表達(dá)式的含義

信號說明Av[31:0]Watchpoint中地址寄存器(Addressregister)的數(shù)據(jù)Am[31:0]Watchpoint中地址mask寄存器(addressmaskregister)的數(shù)據(jù)A[31:0]從ARM7TDMI的核中得到的總線的地址,也就是當(dāng)前處理器取址的地址Dv[31:0]Watchpoint中數(shù)據(jù)寄存器(dataregister)中的數(shù)據(jù)Dm[31:0]Watchpoint中數(shù)據(jù)mask寄存器(datamaskregister)的數(shù)據(jù)D[31:0]從ARM7TDMI的核中得到的總線的數(shù)據(jù),也就是當(dāng)前處理器取址所到的數(shù)據(jù)Cv[8:0]Watchpoint中控制寄存器(controlregister)中的數(shù)據(jù)Cm[7:0]Watchpoint中控制mask寄存器(controlmaskregister)中的數(shù)據(jù)C[9:0]ARM7TDMI的控制總線1/4/2023115合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院Watchpoint表達(dá)式的含義信號說3.4.7ARM7TDMI斷點(diǎn)的設(shè)置ARM中斷點(diǎn)的設(shè)置主要是設(shè)置EmbeddedICE中的寄存器主要包括:設(shè)置EmbeddedICE的兩個watchpoint單元的地址、數(shù)據(jù)或控制信號寄存器。當(dāng)一個(或者兩個)watchpoint寄存器滿足條件的時候,ARM就從運(yùn)行狀態(tài)進(jìn)入Debug狀態(tài)。也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當(dāng)前的指令相同的時候1/4/2023116合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院3.4.7ARM7TDMI斷點(diǎn)的設(shè)置ARM中斷點(diǎn)的設(shè)置主要硬件斷點(diǎn)和軟件斷點(diǎn)在ARM7TDMI處理器的內(nèi)核中,有兩種斷點(diǎn)的設(shè)置方式:硬件斷點(diǎn)和軟件斷點(diǎn)硬件斷點(diǎn)通過設(shè)置EmbeddedICE中的Watchpoint寄存器中的地址相關(guān)的寄存器,來實(shí)現(xiàn)斷點(diǎn)。通過這種方式設(shè)置斷點(diǎn),斷點(diǎn)數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內(nèi)核中,只有兩組Watchp

溫馨提示

  • 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

提交評論