版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
《嵌入式系統(tǒng)原理》
第4講計算機科學學院于山山主講2/6/20231曲阜師范大學計算機科學學院第3章嵌入式微處理器技術(shù)基礎本章主要介紹以下內(nèi)容:嵌入式微處理器典型技術(shù)主流嵌入式微處理器嵌入式處理器的調(diào)試技術(shù)邊界掃描測試技術(shù)JTAG2/6/20232曲阜師范大學計算機科學學院3.3嵌入式系統(tǒng)調(diào)試技術(shù)指令集模擬器ROM仿真器實時在線仿真片上調(diào)試器與背景調(diào)試模式基于Angle的調(diào)試方案邊界掃描測試技術(shù)和JTAG接口概述跟蹤接口ETMNexus調(diào)試標準半主機調(diào)試方式2/6/20233曲阜師范大學計算機科學學院嵌入式系統(tǒng)調(diào)試技術(shù)概貌嵌入式計算機調(diào)試基本結(jié)構(gòu)主機—目標機結(jié)構(gòu)主機常常是PC平臺原因:運算能力相對較弱存儲能力和顯示能力較小數(shù)據(jù)吞吐率較小很難在目標程序運行的計算設備上直接進行硬件軟件調(diào)試。2/6/20234曲阜師范大學計算機科學學院主機和目標機之間調(diào)試信道主機往往和目標機的體系結(jié)構(gòu)不同。因此,需要有通信轉(zhuǎn)換器對調(diào)試信息進行轉(zhuǎn)換。2/6/20235曲阜師范大學計算機科學學院3.3.1指令集模擬器指令集模擬器ISS,InstructionSetSimulator在一臺計算機上模擬另外一臺計算機上目標程序(機器指令)運行過程的軟件工具有時也叫做軟仿真器嵌入式系統(tǒng)開發(fā)的不可或缺工具2/6/20236曲阜師范大學計算機科學學院指令集模擬器的結(jié)構(gòu)指令集模擬器是一個純軟件系統(tǒng)內(nèi)部有一個反映目標處理器硬件的數(shù)據(jù)結(jié)構(gòu)以時序狀態(tài)機的方式工作可以根據(jù)目標機指令集定義執(zhí)行目標指令按照實現(xiàn)方法的不同指令集模擬器分為解釋型編譯型2/6/20237曲阜師范大學計算機科學學院指令集模擬器的運行指令集模擬器的操作界面與IDE類似模仿目標機的取指、譯碼和執(zhí)行操作將中間執(zhí)行結(jié)果或者最終執(zhí)行結(jié)果存入目標機映像數(shù)據(jù)結(jié)構(gòu)調(diào)試人員可以觀察目標機映像寄存器或者映像存儲器的單元,了解目標代碼的執(zhí)行結(jié)果2/6/20238曲阜師范大學計算機科學學院指令集模擬器主要用途指令集模擬器主要用在以下幾種場合:沒有目標機開發(fā)板有目標機開發(fā)板,但使用目標機開發(fā)板成本較高調(diào)試的程序模塊不需要在實際開發(fā)板上執(zhí)行,例如學習ARM匯編語言程序模塊代碼的先行調(diào)試,以加快調(diào)試速度2/6/20239曲阜師范大學計算機科學學院流行的ARM指令集模擬器有兩種比較流行的指令集模擬器:ARMulatorSkyEye還有一些研究中的ARM指令集模擬器2/6/202310曲阜師范大學計算機科學學院ARM公司推出的ARMulatorARMulator是業(yè)界著名的指令集仿真器運行在PC平臺上ARM體系結(jié)構(gòu)的指令集模擬器集成在SDT2.51和ADS1.2上的插件由四個部分組成:處理器核模型、存儲器接口、處理器接口、操作系統(tǒng)接口。2/6/202311曲阜師范大學計算機科學學院指令模擬精度的級別指令模擬精度有三個級別指令級周期級時序(節(jié)拍)級ARMulator完全實現(xiàn)了指令級和周期級模擬精度,但是沒有完全實現(xiàn)時序級精度。2/6/202312曲阜師范大學計算機科學學院指令集模擬器ARMulator對ARM程序運行
進行指令周期數(shù)統(tǒng)計的結(jié)果快照2/6/202313曲阜師范大學計算機科學學院Armulator的指令周期統(tǒng)計結(jié)果說明2/6/202314曲阜師范大學計算機科學學院SkyEye一個ARM體系結(jié)構(gòu)的嵌入式仿真和集成開發(fā)環(huán)境國內(nèi)開放源碼的自由軟件項目運行環(huán)境:Linux平臺和Windows的Cygwin能夠仿真的CPU包括:不帶MMU的Atmel91x40帶MMU的ARM720T等基于ARM7TDMI的內(nèi)核SkyEye還能夠模擬其它一些硬件外設,如串口、網(wǎng)絡芯片、內(nèi)存、時鐘等2/6/202315曲阜師范大學計算機科學學院3.3.2ROM仿真器嵌入式系統(tǒng)的程序存儲器為ROM時,如果調(diào)試需要修改代碼、設置斷點及更新程序代碼,就需要進行離線編程。離線編程是一個費時間的工作,用RAM替代ROM可以解決這個問題ROM仿真器用RAM以及附加電路制成的替代ROM進行離線編程的工具MCS-51單片機研發(fā)過程中常常使用ROM仿真工具2/6/202316曲阜師范大學計算機科學學院ROM仿真器照片支持各種51系列芯片的JY-E2300仿真器照片2/6/202317曲阜師范大學計算機科學學院3.3.3實時在線仿真實時在線仿真ICE,In-CircuitEmulator目前最為有效的調(diào)試嵌入式系統(tǒng)的手段通過ICE的實際執(zhí)行,開發(fā)者可以排除人們難以發(fā)現(xiàn)的隱藏在設計方案中的邏輯錯誤。ICE的另外一個主要功能是在應用系統(tǒng)中仿真微控制器的實際執(zhí)行優(yōu)點是功能強大,軟硬件均可以做到完全實時在線調(diào)試;缺點是價格昂貴。2/6/202318曲阜師范大學計算機科學學院3.3.4片上調(diào)試技術(shù)片上調(diào)試技術(shù)OCD,On-ChipDebugging嵌入式調(diào)試技術(shù)中運用最廣泛的一種片上調(diào)試是在CPU的內(nèi)部嵌入額外的控制模塊,即片上調(diào)試器;使得CPU的工作模式分為正常模式和調(diào)試模式。2/6/202319曲阜師范大學計算機科學學院常用的片上調(diào)試技術(shù)目前常用的片上調(diào)試技術(shù)主要有三種:背景調(diào)試模式BDM,BackgroundDebugModeJTAGIEEE1149.1NexusIEEE-5001ISTO2/6/202320曲阜師范大學計算機科學學院背景調(diào)試模式背景調(diào)試模式Motorola公司專有的片上調(diào)試器。Motorola公司是第一個把片上調(diào)試器集成在處理器內(nèi)核中的嵌入式微處理器廠商。BDM首先在68300系列處理器上實現(xiàn)現(xiàn)在在其他微控制器上得到應用2/6/202321曲阜師范大學計算機科學學院BDM與ICE的區(qū)別傳統(tǒng)ICE調(diào)試時,使用ICE中的CPU來取代目標板中的CPU,目標板和ICE之間使用多芯扁平電纜連接。而ICE在使用時一般還需要與主機(一般是PC)連接。在BDM調(diào)試方式下嵌入式處理器被停機,各種調(diào)試命令可以被發(fā)送到處理器中訪問內(nèi)存和寄存器。因此,滿足BDM調(diào)試的微處理器內(nèi)部已經(jīng)包含了用于調(diào)試的微碼,調(diào)試時仿真器軟件和目標板上CPU的調(diào)試微碼通信,目標板上的CPU無需取出。2/6/202322曲阜師范大學計算機科學學院BDM調(diào)試器與主機和目標開發(fā)板
之間的連接2/6/202323曲阜師范大學計算機科學學院3.3.5基于Angel的調(diào)試方案Angel是ARM公司的調(diào)試監(jiān)控程序也稱為Angel調(diào)試代理由多個程序部件組成與傳統(tǒng)調(diào)試監(jiān)控程序相類似駐留在目標機上Angel接收主機上發(fā)送過來的調(diào)試命令,執(zhí)行指定的調(diào)試操作,并將調(diào)試結(jié)果反饋回主機。適用于各種ARM硬件平臺。2/6/202324曲阜師范大學計算機科學學院Angel的功能與JTAG調(diào)試代理不同,Angel需要占用一定的系統(tǒng)資源,例如內(nèi)存空間和串口等?;贏ngel的調(diào)試系統(tǒng)包含兩個關鍵部分,位于主機上的調(diào)試軟件和駐留在目標機上的Angel調(diào)試監(jiān)控程序。Angel調(diào)試系統(tǒng)主要分成以下三層:應用層、功能支持層、通道管理層。Angel的兩種版本:完整版本和最小版本。2/6/202325曲阜師范大學計算機科學學院Angel調(diào)試協(xié)議的主機端組件2/6/202326曲阜師范大學計算機科學學院Angel調(diào)試協(xié)議的目標端組件2/6/202327曲阜師范大學計算機科學學院邊界掃描測試技術(shù)邊界掃描測試技術(shù)和JTAG接口是嵌入式系統(tǒng)最具特色的技術(shù)集成電路研制時的內(nèi)部電路測試嵌入式軟件開發(fā)時的程序調(diào)試2/6/202328曲阜師范大學計算機科學學院3.3.6邊界掃描技術(shù)和JTAG接口JTAG是一種片上調(diào)試接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成電路固定在PCB(PrintedCircuitBoard,印刷電路板)上,只通過邊界掃描便可以被測試。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應用。2/6/202329曲阜師范大學計算機科學學院測試摩爾定律1999年英特爾公司的副總裁PatrickCelsinger先生在美國大西洋城舉行的國際測試會議上提出了測試摩爾定律,并就此了講演。該定律預測未來幾年,每一晶體管的硅投資成本將低于其測試成本。PatrickCelsinger先生指出,硅成本已迅速下降,測試成本卻基本保持不變。并且,被測器件的速度常常比測試設備能測的速度高。也就是說,測試設備的發(fā)展速度已跟不上測試對象的發(fā)展。同時,測試成本在制造成本中所占比例過大。
2/6/202330曲阜師范大學計算機科學學院doubled_bh;shorts_bh;
sense_horizontal_velocity(&d_bh);
s_bh=d_bh;//OPERANDERROR代碼出錯案例:阿麗亞娜5型火箭發(fā)射失敗2/6/202331曲阜師范大學計算機科學學院將大的浮點數(shù)轉(zhuǎn)換成整數(shù)是一種常見的程序錯誤來源。1996年6月4日,對于Ariane5火箭的初次航行來說,這樣一個錯誤產(chǎn)生了災難性的后果。發(fā)射后僅僅37秒,火箭偏離它的飛行路徑,解體并爆炸了。火箭上載有價值5億美元的通信衛(wèi)星。6億美元付之一炬。后來的調(diào)查顯示,控制慣性導航系統(tǒng)的計算機向控制引擎噴嘴的計算機發(fā)送了一個無效數(shù)據(jù)。失事調(diào)查報告指出,火箭爆炸是因為:它沒有發(fā)送飛行控制信息,而是送出了一個診斷位模式,表明在將一個64位浮點數(shù)轉(zhuǎn)換成16位有符號整數(shù)時,產(chǎn)生了溢出。溢出值測量的是火箭的水平速率,這比早先的Ariane4火箭所能達到的高出了5倍。在設計Ariane4火箭的軟件時,他們小心地分析了數(shù)字值,并且確定水平速率絕不會超出一個16位的數(shù)。不幸的是,他們在Ariane5火箭的系統(tǒng)中簡單地重新使用了這一部分,而沒有檢查它所基于的假設。2/6/202332曲阜師范大學計算機科學學院JTAG基本概念JTAG是JointTestActionGroup(聯(lián)合測試行動組)的縮寫,聯(lián)合測試行動組是IEEE的一個下屬組織該組織研究標準測試訪問接口和邊界掃描結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接納為IEEE1149.1-1990規(guī)范JTAG成為電子行業(yè)的一種國際測試標準現(xiàn)在,人們通常用JTAG來表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測試方法。2/6/202333曲阜師范大學計算機科學學院JTAG掃描循環(huán)示意圖2/6/202334曲阜師范大學計算機科學學院邊界掃描單元JTAG標準定義了一個串行的移位寄存器寄存器的每一個單元分配給IC芯片的相應引腳每一個獨立的單元稱為BSC(Boundary-ScanCell)邊界掃描單元這個串聯(lián)的BSC在IC內(nèi)部構(gòu)成JTAG回路所有的BSR(Boundary-ScanRegister)邊界掃描寄存器通過JTAG測試激活2/6/202335曲阜師范大學計算機科學學院ARM的JTAG調(diào)試結(jié)構(gòu)2/6/202336曲阜師范大學計算機科學學院ARM調(diào)試系統(tǒng)說明調(diào)試系統(tǒng)一般包括3部分:調(diào)試主機是運行軟件調(diào)試器的計算機例如ADW,ARMDebuggerforWindows調(diào)試主機允許發(fā)出高級命令,如設置斷點或檢查存儲器內(nèi)容。協(xié)議轉(zhuǎn)換器處理調(diào)試主機和ARM7TDMI處理器JTAG接口之間的通訊包括調(diào)試主機發(fā)出的高級命令以及JTAG接口的低級命令。一般通過增強型并行口進行連接。2/6/202337曲阜師范大學計算機科學學院ARM調(diào)試系統(tǒng)說明(續(xù))調(diào)試目標ARMCPU主處理器邏輯:對調(diào)試有硬件支持。嵌入式ICE-RT邏輯:這是用于產(chǎn)生調(diào)試異常(如斷點)的寄存器和比較器的集合。TAP控制器:用JTAG串行接口控制掃描鏈的動作。2/6/202338曲阜師范大學計算機科學學院協(xié)議轉(zhuǎn)換器的調(diào)試擴充功能ARM7TDMI具有易于在最低層調(diào)試的硬件擴充,其調(diào)試擴充功能如下列出:允許暫停程序的執(zhí)行;檢查和修改內(nèi)核的內(nèi)部狀態(tài);查看和修改存儲器系統(tǒng)的狀態(tài);執(zhí)行中止異常,允許實時的內(nèi)核監(jiān)控;重新開始程序執(zhí)行。2/6/202339曲阜師范大學計算機科學學院3.4.3ARM7TDMI掃描鏈布局2/6/202340曲阜師范大學計算機科學學院ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位2/6/202341曲阜師范大學計算機科學學院JTAG接口的IC內(nèi)部結(jié)構(gòu)2/6/202342曲阜師范大學計算機科學學院JTAG狀態(tài)轉(zhuǎn)換圖2/6/202343曲阜師范大學計算機科學學院JTAG信號TMS:測試模式選擇(TestModeSelect)通過TMS信號控制JTAG狀態(tài)機的狀態(tài)。TCK:JTAG的時鐘信號TDI:數(shù)據(jù)輸入信號TDO:數(shù)據(jù)輸出信號nTRST:JTAG復位信號,復位JTAG的狀態(tài)機和內(nèi)部的宏單元(Macrocell)。2/6/202344曲阜師范大學計算機科學學院3.4.4TAP控制器TAP控制器內(nèi)部有多個寄存器測試數(shù)據(jù)寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件識別碼(ID)寄存器掃描路徑選擇寄存器2/6/202345曲阜師范大學計算機科學學院JTAG的TAP控制器結(jié)構(gòu)2/6/202346曲阜師范大學計算機科學學院測試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測試數(shù)據(jù)寄存器有如下8個:指令寄存器;旁路寄存器;ARM7TDMI的器件識別(ID)碼寄存器;掃描路徑選擇寄存器;掃描鏈0、1、2和3。2/6/202347曲阜師范大學計算機科學學院JTAG控制指令寄存器JTAG接口中指令寄存器長度是4位在指令寄存器共安排10條控制指令,見下表。指令二進制指令二進制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11112/6/202348曲阜師范大學計算機科學學院JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做TDI和TDO之間串行路徑。見(a)在UPDATE-IR態(tài),指令寄存器的值成為當前指令。見(b)在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(c)復位時,IDCODE(b1110)成為當前指令。見(d)指令寄存器的最低有效位首先被掃描輸入和輸出。指令寄存器TDITDOSHIFT-IR狀態(tài)(a)指令寄存器值=0001CAPTURE-IR狀態(tài)(c)TDITDO當前指令寄存器TDITDOUPDATE-IR狀態(tài)(b)當前指令寄存器IDCODE=0001IDCODE-IR狀態(tài)(d)TDITDO2/6/202349曲阜師范大學計算機科學學院旁路寄存器功能:通過提供TDI和TDO之間的路徑,在掃描測試期間對器件旁路。長度:1位操作方式:當BYPASS指令是指令寄存器中的當前指令時,串行數(shù)據(jù)在SHIFT-DR態(tài)以1個TCK周期的延遲從TDI傳到TDO。旁路寄存器沒有并行輸出。在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。2/6/202350曲阜師范大學計算機科學學院ARM7TDMI器件
識別碼(ID)寄存器識別碼用途:讀32位器件識別碼。不提供可編程的識別碼。長度:32位。寄存器的格式如下圖所示。操作方式當IDCODE指令是當前指令時,將ID寄存器選做TDI和TDO之間的串行路徑。ID寄存器沒有并行輸出。在CAPTURE-DR態(tài),32位器件識別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本4位部件編號16位制造者標識12位03111282/6/202351曲阜師范大學計算機科學學院掃描路徑選擇寄存器用途和長度變換當前活動的掃描鏈,4位。操作方式僅當執(zhí)行了一條SCAN_N指令或當發(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),由寄存器中的值選擇一個掃描鏈成為當前活動的掃描鏈。所有進一步的指令(如INTEST)都應用到該掃描鏈上。2/6/202352曲阜師范大學計算機科學學院掃描鏈編號分配掃描鏈編號功能0宏單元掃描測試1調(diào)試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設計者實現(xiàn))4保留8保留2/6/202353曲阜師范大學計算機科學學院3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元組成每一個被測試邏輯電路引出信號線同它的引腳之間配置一個掃描單元每一個掃描單元的內(nèi)部由兩個D觸發(fā)器和兩個多路選擇器組成分別把邏輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運動的電流方向成為縱向。JTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。2/6/202354曲阜師范大學計算機科學學院JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移位,俘獲,更新2/6/202355曲阜師范大學計算機科學學院JTAG掃描鏈的組成LogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic2/6/202356曲阜師范大學計算機科學學院JTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在2/6/202357曲阜師范大學計算機科學學院捕獲JTAG狀態(tài)當前引腳信號的快照存入掃描鏈2/6/202358曲阜師范大學計算機科學學院移位數(shù)據(jù)縱向直行此刻處理器的工作脈沖暫停2/6/202359曲阜師范大學計算機科學學院移位結(jié)束縱向直行此刻處理器的工作脈沖暫停2/6/202360曲阜師范大學計算機科學學院數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號,并且替代處理器向系統(tǒng)輸出信號。2/6/202361曲阜師范大學計算機科學學院掃描鏈0ScanChain0:有113個掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號。這條鏈上的信號復雜,不易控制,但是包含的信息豐富,可以通過這條鏈得到ARM7TDMI內(nèi)核的所有信息。從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序為:(1)數(shù)據(jù)總線位[0]-位[31];(2)內(nèi)核控制信號;(3)地址總線位[31]-位[0];(4)嵌入式ICE-RT控制信號。嵌入式ICE-RT控制信號(特別是DBGRQI)首先被掃描輸出。2/6/202362曲阜師范大學計算機科學學院掃描鏈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輸入2/6/202363曲阜師范大學計算機科學學院掃描鏈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]輸出2/6/202364曲阜師范大學計算機科學學院掃描鏈0單元(續(xù)2)編號信號類型編號信號類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74~105A[31]~A[0]輸出106~113ICE-RT信號2/6/202365曲阜師范大學計算機科學學院掃描鏈1掃描鏈1:有33個掃描單元,包括ARM核的數(shù)據(jù)總線和一個斷點控制信號。這是一條很有用的鏈,通過控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實現(xiàn)對ARM的內(nèi)部寄存器、協(xié)處理器以及外部存儲器的讀寫操作。2/6/202366曲阜師范大學計算機科學學院掃描鏈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核進入調(diào)試狀態(tài)后,該位第一次被捕獲并被掃描輸出。其值告訴調(diào)試器內(nèi)核是否由斷點(位[33]清零)或由觀察點(位[33]置位)進入調(diào)試狀態(tài)。2/6/202367曲阜師范大學計算機科學學院掃描鏈2ScanChain2共有38個掃描單元,通過控制EmbeddedICE宏單元,實現(xiàn)對ARM執(zhí)行指令的斷點、觀察點的控制。從TDI到TDO的掃描鏈次序如下:讀/寫;寄存器地址位[4]-位[0];數(shù)據(jù)值位[31]-位[0]。2/6/202368曲阜師范大學計算機科學學院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控制器之間的關系。圖中僅顯示了有關的信號。2/6/202369曲阜師范大學計算機科學學院嵌入式ICE-RT連線結(jié)構(gòu)圖2/6/202370曲阜師范大學計算機科學學院嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下:2個實時觀察點單元;3個獨立的寄存器:調(diào)試控制寄存器、調(diào)試狀態(tài)寄存器、中止狀態(tài)寄存器;調(diào)試通信通道DCC(DebugCommunicationsChannel)。2/6/202371曲阜師范大學計算機科學學院嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時使用中止狀態(tài)寄存器。可以編程1個或2個觀察點單元來暫停內(nèi)核程序的執(zhí)行。當編程進入嵌入式ICE-RT的值與當前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號的值匹配時,暫停執(zhí)行。2/6/202372曲阜師范大學計算機科學學院EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成在ARM內(nèi)核中的嵌入式ICE仿真器。其結(jié)構(gòu)如下圖所示。通過對EmbeddedICE的控制,對EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設置斷點以及讀取Debug通訊通道。EmbeddedICE的串行數(shù)據(jù)長度是38位,包括:32位數(shù)據(jù)5位的訪問EmbeddedICE中寄存器的地址1個讀寫控制位2/6/202373曲阜師范大學計算機科學學院EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38位2/6/202374曲阜師范大學計算機科學學院EmbeddedICE的寄存器地址寬度功能地址寬度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask2/6/202375曲阜師范大學計算機科學學院Watchpoint寄存器的使用
EmbeddedICE的一個主要作用就是可以在ARM的程序中設置軟件或者硬件的斷點。在EmbeddedICE中,集成了一個比較器,比較器負責把ARM處理器取指的地址A[31:0]、數(shù)據(jù)D[31:0]以及一些控制信號與EmbeddedICE中Watchpoint寄存器中設置的數(shù)值相比較具體的說應該是進行同或運算比較的結(jié)果用來確定輸出一個ARM的斷點(Breakpoint)信號。具體的運算關系如下公式所描述:({Av[31:0],Cv[4:0]}XNOR{A[31:0],C[4:0]})OR{Am[31:0],Cm[4:0]}==0x1FFFFFFFFF2/6/202376曲阜師范大學計算機科學學院EmbeddedICE斷點信號條件當上述表達式為真的時候,斷點信號有效,ARM的內(nèi)核就進入了Debug模式。在Debug模式下,ARM內(nèi)核的時鐘從系統(tǒng)的主時鐘(MCLK)被替換成跟蹤時鐘(DCLK)。跟蹤時鐘(DCLK)是通過在JTAG的狀態(tài)機的Run-test/Idle狀態(tài)的TCK來控制的。
2/6/202377曲阜師范大學計算機科學學院Watchpoint表達式的含義
信號說明Av[31:0]Watchpoint中地址寄存器(Addressregister)的數(shù)據(jù)Am[31:0]Watchpoint中地址mask寄存器(addressmaskregister)的數(shù)據(jù)A[31:0]從ARM7TDMI的核中得到的總線的地址,也就是當前處理器取址的地址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ù),也就是當前處理器取址所到的數(shù)據(jù)Cv[8:0]Watchpoint中控制寄存器(controlregister)中的數(shù)據(jù)Cm[7:0]Watchpoint中控制mask寄存器(controlmaskregister)中的數(shù)據(jù)C[9:0]ARM7TDMI的控制總線2/6/202378曲阜師范大學計算機科學學院3.4.7ARM7TDMI斷點的設置ARM中斷點的設置主要是設置EmbeddedICE中的寄存器主要包括:設置EmbeddedICE的兩個watchpoint單元的地址、數(shù)據(jù)或控制信號寄存器。當一個(或者兩個)watchpoint寄存器滿足條件的時候,ARM就從運行狀態(tài)進入Debug狀態(tài)。也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當前的指令相同的時候2/6/202379曲阜師范大學計算機科學學院硬件斷點和軟件斷點在ARM7TDMI處理器的內(nèi)核中,有兩種斷點的設置方式:硬件斷點和軟件斷點硬件斷點通過設置EmbeddedICE中的Watchpoint寄存器中的地址相關的寄存器,來實現(xiàn)斷點。通過這種方式設置斷點,斷點數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內(nèi)核中,只有兩組Watchpoint寄存器,最多只能設置兩個硬件斷點)。硬件斷點可以在任何地方設置。不受存儲器類型的限制。2/6/202380曲阜師范大學計算機科學學院軟件斷點軟件斷點的實現(xiàn)比較復雜,需要如下幾個步驟:通過設置EmbeddedICE中的Watchpoint寄存器中的數(shù)據(jù)相關寄存器(datavalue和datamaskvalue)為一個特殊的32位數(shù)字—ARM的未定義指令,比如:0x06000010。替換RAM中的指令為上面所設置的那個未定的指令0x06000010,作為一個標志。當系統(tǒng)運行到RAM中所設定的單元位置時候,那個事先設置的標志數(shù)字將被當作一個指令讀入處理器的內(nèi)核。2/6/202381曲阜師范大學計算機科學學院軟件斷點(續(xù))此時,系統(tǒng)所讀入的指令的數(shù)據(jù)剛好和datavalue中的數(shù)字相吻合,系統(tǒng)就進入了Debug模式。這就是軟件斷點的工作過程。軟件斷點的數(shù)目不受ARM內(nèi)核的Watchpoint數(shù)目的限制,不管系統(tǒng)設置多少個軟件斷點,僅僅使用了ARM內(nèi)核的一個Watchpoint資源。軟件斷點是通過替換系統(tǒng)的斷點地址的指令實現(xiàn)的,所以,軟件斷點只能在可寫的存儲器的地址中設置(比如:RAM),而不能在ROM(比如:Flash)中設置。2/6/202382曲阜師范大學計算機科學學院斷點設置小結(jié)總之,在有兩個Watchpoint資源的ARM7TDMI的內(nèi)核中,斷點可以有如下情況:2個硬件斷點,沒有軟件斷點1個硬件斷點,任意多個軟件斷點任意多個軟件斷點2/6/202383曲阜師范大學計算機科學學院3.4.8ARM調(diào)試接口ARM7TDMI調(diào)試接口基于IEEE標準1149.1-1990以及標準測試訪問口和邊界掃描體系結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)。調(diào)試擴充可強迫內(nèi)核進入下列模式之一:暫停模式(調(diào)試模式):在斷點或觀察點,內(nèi)核進入調(diào)試狀態(tài)。在調(diào)試狀態(tài),內(nèi)核停止工作并與系統(tǒng)的其它部分隔離。當調(diào)試完成后,調(diào)試主機恢復內(nèi)核和系統(tǒng)狀態(tài),程序重新開始執(zhí)行。監(jiān)控模式:在斷點或觀察點,形成指令中止或數(shù)據(jù)中止而不進入調(diào)試狀態(tài)。內(nèi)核仍正常接受和服務中斷。2/6/202384曲阜師范大學計算機科學學院調(diào)試階段外部調(diào)試接口信號或嵌入式ICE-RT邏輯請求迫使ARM7TDMI進入調(diào)試狀態(tài)。激活調(diào)試的事件如下:斷點(取指);觀察點(數(shù)據(jù)訪問);外部調(diào)試請求。使用JTAG格式的串行口檢測ARM7TDMI的內(nèi)部狀態(tài)。在暫停模式下,這可確保不使用外部數(shù)據(jù)總線即可將指令串行插入進內(nèi)核流水線。例如,在調(diào)試狀態(tài),存儲多個寄存器指令(STM)可以插入指令流水線,輸出ARM7TDMI寄存器的內(nèi)容。數(shù)據(jù)可以串行移出而不影響系統(tǒng)的其它部分。在監(jiān)控狀態(tài),JTAG接口用于在調(diào)試器與運行在ARM7TDMI核上簡單的監(jiān)控程序之間傳送數(shù)據(jù)。2/6/202385曲阜師范大學計算機科學學院時鐘
ARM7TDMI核有如下2個時鐘:MCLK是存儲器時鐘;DCLK是內(nèi)部調(diào)試時鐘,由測試時鐘TCK生成。在正常工作期間,內(nèi)核由MCLK時鐘驅(qū)動,內(nèi)部邏輯保持DCLK為低電平。當ARM7TDMI在暫停模式時,在TAP狀態(tài)機控制下,內(nèi)核由DCLK供給時鐘,MCLK自由運行。選擇的時鐘在信號線ECLK上輸出以便由外部系統(tǒng)使用。2/6/202386曲阜師范大學計算機科學學院調(diào)試接口信號與調(diào)試接口有關的外部信號主要有如下3個:BREAKPT和DBGRQ是處理器進入調(diào)試狀態(tài)的系統(tǒng)請求信號;DBGACK是指示內(nèi)核處于調(diào)試狀態(tài)的信號。進入調(diào)試狀態(tài)的入口(1)在斷點進入調(diào)試狀態(tài)(2)在觀察點進入調(diào)試狀態(tài)(3)由調(diào)試請求進入調(diào)試狀態(tài)2/6/202387曲阜師范大學計算機科學學院調(diào)試接口信號(續(xù))調(diào)試狀態(tài)下ARM7TDMI的動作在暫停模式下,除nMREQ和SEQ外,所有存儲器接口輸出發(fā)生與存儲器系統(tǒng)異步的改變。在監(jiān)控模式下,ARM7TDMI繼續(xù)執(zhí)行指令,存儲器接口的行為正常。2/6/202388曲阜師范大學計算機科學學院ARM處理器的實時JTAG仿真器
與開發(fā)板的連線圖2/6/202389曲阜師范大學計算機科學學院英蓓特公司的ARM仿真器照片JTAG實時在線協(xié)議轉(zhuǎn)換器通常稱為JTAG調(diào)試器(或JTAG仿真器),由于ARM處理器廣泛使用,通常也把ARM處理器的JTAG實時在線協(xié)議轉(zhuǎn)換器稱為ARM仿真器。右面給出了深圳市英蓓特公司的ARM仿真器照片。2/6/202390曲阜師范大學計算機科學學院JTAG仿真器連接JTAG仿真器連接比較方便,通過現(xiàn)有的JTAG邊界掃描口與ARMCPU核通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無需目標存儲器,不占用目標系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目標程序是在目標板上執(zhí)行,仿真更接近于目標硬件,因此,許多接口問題,如高頻操作限制、AC和DC參數(shù)不匹配,電線長度的限制等被最小化了。使用集成開發(fā)環(huán)境配合JTAG仿真器進行開發(fā)是目前采用最多的一種調(diào)試方式。可用于開發(fā)和調(diào)試包含JTAG接口的ARM電路板。2/6/202391曲阜師范大學計算機科學學院ARM處理器的實時JTAG仿真器
與開發(fā)板的連線圖2/6/202392曲阜師范大學計算機科學學院實時在線仿真(ICE)與JTAG的區(qū)別實時在線仿真系統(tǒng)的硬件主體是在線仿真器(ICE)。在8位單片機調(diào)試過程中,可以用這種ICE仿真器完全取代目標板上的MCU。因而目標系統(tǒng)對開發(fā)者來說完全是透明的、可控的。對16和32位的單片機還不能做到完全取代。JTAG調(diào)試在內(nèi)嵌了IEEE1149標準電路的CPU上進行,調(diào)試時不需要更換CPU。適用于8、16、32位的CPU。2/6/202393曲阜師范大學計算機科學學院Angel與JTAG的關系JTAG調(diào)試:協(xié)議轉(zhuǎn)換器解釋上位機傳送過來的命令,通過JTAG控制ARM執(zhí)行。Angel調(diào)試:協(xié)議轉(zhuǎn)換器可以直接作為目標板的Firmware的一部分,直接執(zhí)行從宿主機傳送過來的調(diào)試命令;并回送相應的數(shù)據(jù)。Angel可以節(jié)省專門的JTAG仿真器,但是,它需要軟件,或者是嵌入式操作系統(tǒng)的支持,做不到完全的實時仿真,而JTAG仿真是通過硬件和控制ARM的EmbeddedICE實現(xiàn)的,可以做到實時仿真。2/6/202394曲阜師范大學計算機科學學院英蓓特ARM仿真器的主要特征下載速度達25KB/S;支持主流開發(fā)環(huán)境ADS、EmbestIDE、SDT;支持各種ARM系列處理器;支持標準的14/20針JTAG接口;支持最多兩個硬件斷點/兩個數(shù)據(jù)斷點/不限數(shù)目的軟件斷點;支持匯編級調(diào)試,支持ARM、THUMB及指令集交叉調(diào)試;支持標準C語言程序調(diào)試;支持Flash在線編程;通過軟件升級方式支持更高版本的ARM核處理器。2/6/202395曲阜師范大學計算機科學學院3.3.7嵌入追蹤宏單元ETM跟蹤追蹤宏單元ETM也稱為跟蹤調(diào)試接口ARM公司開發(fā)的一種高級實時軟件開發(fā)調(diào)試工具,是ARM片上系統(tǒng)的一個組件。在CPU運行過程中把現(xiàn)場信息捕捉壓縮后輸出,然后在PC端就可以對這些數(shù)據(jù)進行解壓分析。2/6/202396曲阜師范大學計算機科學學院ETM—嵌入跟蹤宏單元本質(zhì)上ETM相當于一個嵌入芯片的邏輯分析儀2/6/202397曲阜師范大學計算機科學學院JTAG仿真器和ETM的功能區(qū)別基于JTAG的仿真器debug方法是利用芯片內(nèi)部的EmbeddedICE模塊來控制內(nèi)核,達到單步/斷點等調(diào)試目的,這種方法的特點是需要把目標CPU停住后才能觀察現(xiàn)場情況。在真正的實時系統(tǒng)中,停止CPU運行往往導致現(xiàn)場失真,ETM就能夠在CPU運行過程中把現(xiàn)場信息捕捉壓縮
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隨州模具課程設計程序
- 車輛主題探究課程設計
- 課程設計型船
- 國際交流校本課程設計計劃
- 展會活動中信息披露的法律問題研究
- 小學語文教學中的多元化教學方法探索
- 2025年個人上半年工作總結(jié)及下半年工作計劃(三篇)
- 教育場所高效照明系統(tǒng)與節(jié)能技術(shù)應用
- 2025年三年級數(shù)學的培優(yōu)補差總結(jié)樣本(二篇)
- 2025年專業(yè)版本的勞動合同模板(2篇)
- 中外美術(shù)史試題及答案
- 2025年安徽省銅陵市公安局交警支隊招聘交通輔警14人歷年高頻重點提升(共500題)附帶答案詳解
- 公共政策分析 課件 第8章政策評估;第9章政策監(jiān)控
- 人教版八年級上學期物理期末復習(壓軸60題40大考點)
- 企業(yè)環(huán)保知識培訓課件
- 2024年度管理評審報告
- 暨南大學《微觀經(jīng)濟學》2023-2024學年第一學期期末試卷
- 醫(yī)藥銷售合規(guī)培訓
- DB51-T 5038-2018 四川省地面工程施工工藝標準
- 三年級數(shù)學(上)計算題專項練習附答案
- 2024年廣東省深圳市中考英語試題含解析
評論
0/150
提交評論