第04講-嵌入式調(diào)試技術(shù)_第1頁(yè)
第04講-嵌入式調(diào)試技術(shù)_第2頁(yè)
第04講-嵌入式調(diào)試技術(shù)_第3頁(yè)
第04講-嵌入式調(diào)試技術(shù)_第4頁(yè)
第04講-嵌入式調(diào)試技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩105頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《嵌入式系統(tǒng)原理》

第4講計(jì)算機(jī)科學(xué)學(xué)院于山山主講2/6/20231曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院第3章嵌入式微處理器技術(shù)基礎(chǔ)本章主要介紹以下內(nèi)容:嵌入式微處理器典型技術(shù)主流嵌入式微處理器嵌入式處理器的調(diào)試技術(shù)邊界掃描測(cè)試技術(shù)JTAG2/6/20232曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3嵌入式系統(tǒng)調(diào)試技術(shù)指令集模擬器ROM仿真器實(shí)時(shí)在線仿真片上調(diào)試器與背景調(diào)試模式基于Angle的調(diào)試方案邊界掃描測(cè)試技術(shù)和JTAG接口概述跟蹤接口ETMNexus調(diào)試標(biāo)準(zhǔn)半主機(jī)調(diào)試方式2/6/20233曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院嵌入式系統(tǒng)調(diào)試技術(shù)概貌嵌入式計(jì)算機(jī)調(diào)試基本結(jié)構(gòu)主機(jī)—目標(biāo)機(jī)結(jié)構(gòu)主機(jī)常常是PC平臺(tái)原因:運(yùn)算能力相對(duì)較弱存儲(chǔ)能力和顯示能力較小數(shù)據(jù)吞吐率較小很難在目標(biāo)程序運(yùn)行的計(jì)算設(shè)備上直接進(jìn)行硬件軟件調(diào)試。2/6/20234曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院主機(jī)和目標(biāo)機(jī)之間調(diào)試信道主機(jī)往往和目標(biāo)機(jī)的體系結(jié)構(gòu)不同。因此,需要有通信轉(zhuǎn)換器對(duì)調(diào)試信息進(jìn)行轉(zhuǎn)換。2/6/20235曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.1指令集模擬器指令集模擬器ISS,InstructionSetSimulator在一臺(tái)計(jì)算機(jī)上模擬另外一臺(tái)計(jì)算機(jī)上目標(biāo)程序(機(jī)器指令)運(yùn)行過(guò)程的軟件工具有時(shí)也叫做軟仿真器嵌入式系統(tǒng)開(kāi)發(fā)的不可或缺工具2/6/20236曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院指令集模擬器的結(jié)構(gòu)指令集模擬器是一個(gè)純軟件系統(tǒng)內(nèi)部有一個(gè)反映目標(biāo)處理器硬件的數(shù)據(jù)結(jié)構(gòu)以時(shí)序狀態(tài)機(jī)的方式工作可以根據(jù)目標(biāo)機(jī)指令集定義執(zhí)行目標(biāo)指令按照實(shí)現(xiàn)方法的不同指令集模擬器分為解釋型編譯型2/6/20237曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院指令集模擬器的運(yùn)行指令集模擬器的操作界面與IDE類似模仿目標(biāo)機(jī)的取指、譯碼和執(zhí)行操作將中間執(zhí)行結(jié)果或者最終執(zhí)行結(jié)果存入目標(biāo)機(jī)映像數(shù)據(jù)結(jié)構(gòu)調(diào)試人員可以觀察目標(biāo)機(jī)映像寄存器或者映像存儲(chǔ)器的單元,了解目標(biāo)代碼的執(zhí)行結(jié)果2/6/20238曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院指令集模擬器主要用途指令集模擬器主要用在以下幾種場(chǎng)合:沒(méi)有目標(biāo)機(jī)開(kāi)發(fā)板有目標(biāo)機(jī)開(kāi)發(fā)板,但使用目標(biāo)機(jī)開(kāi)發(fā)板成本較高調(diào)試的程序模塊不需要在實(shí)際開(kāi)發(fā)板上執(zhí)行,例如學(xué)習(xí)ARM匯編語(yǔ)言程序模塊代碼的先行調(diào)試,以加快調(diào)試速度2/6/20239曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院流行的ARM指令集模擬器有兩種比較流行的指令集模擬器:ARMulatorSkyEye還有一些研究中的ARM指令集模擬器2/6/202310曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM公司推出的ARMulatorARMulator是業(yè)界著名的指令集仿真器運(yùn)行在PC平臺(tái)上ARM體系結(jié)構(gòu)的指令集模擬器集成在SDT2.51和ADS1.2上的插件由四個(gè)部分組成:處理器核模型、存儲(chǔ)器接口、處理器接口、操作系統(tǒng)接口。2/6/202311曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院指令模擬精度的級(jí)別指令模擬精度有三個(gè)級(jí)別指令級(jí)周期級(jí)時(shí)序(節(jié)拍)級(jí)ARMulator完全實(shí)現(xiàn)了指令級(jí)和周期級(jí)模擬精度,但是沒(méi)有完全實(shí)現(xiàn)時(shí)序級(jí)精度。2/6/202312曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院指令集模擬器ARMulator對(duì)ARM程序運(yùn)行

進(jìn)行指令周期數(shù)統(tǒng)計(jì)的結(jié)果快照2/6/202313曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Armulator的指令周期統(tǒng)計(jì)結(jié)果說(shuō)明2/6/202314曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院SkyEye一個(gè)ARM體系結(jié)構(gòu)的嵌入式仿真和集成開(kāi)發(fā)環(huán)境國(guó)內(nèi)開(kāi)放源碼的自由軟件項(xiàng)目運(yùn)行環(huán)境:Linux平臺(tái)和Windows的Cygwin能夠仿真的CPU包括:不帶MMU的Atmel91x40帶MMU的ARM720T等基于ARM7TDMI的內(nèi)核SkyEye還能夠模擬其它一些硬件外設(shè),如串口、網(wǎng)絡(luò)芯片、內(nèi)存、時(shí)鐘等2/6/202315曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.2ROM仿真器嵌入式系統(tǒng)的程序存儲(chǔ)器為ROM時(shí),如果調(diào)試需要修改代碼、設(shè)置斷點(diǎn)及更新程序代碼,就需要進(jìn)行離線編程。離線編程是一個(gè)費(fèi)時(shí)間的工作,用RAM替代ROM可以解決這個(gè)問(wèn)題ROM仿真器用RAM以及附加電路制成的替代ROM進(jìn)行離線編程的工具M(jìn)CS-51單片機(jī)研發(fā)過(guò)程中常常使用ROM仿真工具2/6/202316曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ROM仿真器照片支持各種51系列芯片的JY-E2300仿真器照片2/6/202317曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.3實(shí)時(shí)在線仿真實(shí)時(shí)在線仿真ICE,In-CircuitEmulator目前最為有效的調(diào)試嵌入式系統(tǒng)的手段通過(guò)ICE的實(shí)際執(zhí)行,開(kāi)發(fā)者可以排除人們難以發(fā)現(xiàn)的隱藏在設(shè)計(jì)方案中的邏輯錯(cuò)誤。ICE的另外一個(gè)主要功能是在應(yīng)用系統(tǒng)中仿真微控制器的實(shí)際執(zhí)行優(yōu)點(diǎn)是功能強(qiáng)大,軟硬件均可以做到完全實(shí)時(shí)在線調(diào)試;缺點(diǎn)是價(jià)格昂貴。2/6/202318曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.4片上調(diào)試技術(shù)片上調(diào)試技術(shù)OCD,On-ChipDebugging嵌入式調(diào)試技術(shù)中運(yùn)用最廣泛的一種片上調(diào)試是在CPU的內(nèi)部嵌入額外的控制模塊,即片上調(diào)試器;使得CPU的工作模式分為正常模式和調(diào)試模式。2/6/202319曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院常用的片上調(diào)試技術(shù)目前常用的片上調(diào)試技術(shù)主要有三種:背景調(diào)試模式BDM,BackgroundDebugModeJTAGIEEE1149.1NexusIEEE-5001ISTO2/6/202320曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院背景調(diào)試模式背景調(diào)試模式Motorola公司專有的片上調(diào)試器。Motorola公司是第一個(gè)把片上調(diào)試器集成在處理器內(nèi)核中的嵌入式微處理器廠商。BDM首先在68300系列處理器上實(shí)現(xiàn)現(xiàn)在在其他微控制器上得到應(yīng)用2/6/202321曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院BDM與ICE的區(qū)別傳統(tǒng)ICE調(diào)試時(shí),使用ICE中的CPU來(lái)取代目標(biāo)板中的CPU,目標(biāo)板和ICE之間使用多芯扁平電纜連接。而ICE在使用時(shí)一般還需要與主機(jī)(一般是PC)連接。在BDM調(diào)試方式下嵌入式處理器被停機(jī),各種調(diào)試命令可以被發(fā)送到處理器中訪問(wèn)內(nèi)存和寄存器。因此,滿足BDM調(diào)試的微處理器內(nèi)部已經(jīng)包含了用于調(diào)試的微碼,調(diào)試時(shí)仿真器軟件和目標(biāo)板上CPU的調(diào)試微碼通信,目標(biāo)板上的CPU無(wú)需取出。2/6/202322曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院BDM調(diào)試器與主機(jī)和目標(biāo)開(kāi)發(fā)板

之間的連接2/6/202323曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.5基于Angel的調(diào)試方案Angel是ARM公司的調(diào)試監(jiān)控程序也稱為Angel調(diào)試代理由多個(gè)程序部件組成與傳統(tǒng)調(diào)試監(jiān)控程序相類似駐留在目標(biāo)機(jī)上Angel接收主機(jī)上發(fā)送過(guò)來(lái)的調(diào)試命令,執(zhí)行指定的調(diào)試操作,并將調(diào)試結(jié)果反饋回主機(jī)。適用于各種ARM硬件平臺(tái)。2/6/202324曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Angel的功能與JTAG調(diào)試代理不同,Angel需要占用一定的系統(tǒng)資源,例如內(nèi)存空間和串口等?;贏ngel的調(diào)試系統(tǒng)包含兩個(gè)關(guān)鍵部分,位于主機(jī)上的調(diào)試軟件和駐留在目標(biāo)機(jī)上的Angel調(diào)試監(jiān)控程序。Angel調(diào)試系統(tǒng)主要分成以下三層:應(yīng)用層、功能支持層、通道管理層。Angel的兩種版本:完整版本和最小版本。2/6/202325曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Angel調(diào)試協(xié)議的主機(jī)端組件2/6/202326曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Angel調(diào)試協(xié)議的目標(biāo)端組件2/6/202327曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院邊界掃描測(cè)試技術(shù)邊界掃描測(cè)試技術(shù)和JTAG接口是嵌入式系統(tǒng)最具特色的技術(shù)集成電路研制時(shí)的內(nèi)部電路測(cè)試嵌入式軟件開(kāi)發(fā)時(shí)的程序調(diào)試2/6/202328曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.6邊界掃描技術(shù)和JTAG接口JTAG是一種片上調(diào)試接口,即OCD接口。OCD英文原文:On-ChipDebuggingInterfaceJTAG的建立使得集成電路固定在PCB(PrintedCircuitBoard,印刷電路板)上,只通過(guò)邊界掃描便可以被測(cè)試。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD/FPGA等,廣泛得到應(yīng)用。2/6/202329曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院測(cè)試摩爾定律1999年英特爾公司的副總裁PatrickCelsinger先生在美國(guó)大西洋城舉行的國(guó)際測(cè)試會(huì)議上提出了測(cè)試摩爾定律,并就此了講演。該定律預(yù)測(cè)未來(lái)幾年,每一晶體管的硅投資成本將低于其測(cè)試成本。PatrickCelsinger先生指出,硅成本已迅速下降,測(cè)試成本卻基本保持不變。并且,被測(cè)器件的速度常常比測(cè)試設(shè)備能測(cè)的速度高。也就是說(shuō),測(cè)試設(shè)備的發(fā)展速度已跟不上測(cè)試對(duì)象的發(fā)展。同時(shí),測(cè)試成本在制造成本中所占比例過(guò)大。

2/6/202330曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院doubled_bh;shorts_bh;

sense_horizontal_velocity(&d_bh);

s_bh=d_bh;//OPERANDERROR代碼出錯(cuò)案例:阿麗亞娜5型火箭發(fā)射失敗2/6/202331曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院將大的浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)是一種常見(jiàn)的程序錯(cuò)誤來(lái)源。1996年6月4日,對(duì)于Ariane5火箭的初次航行來(lái)說(shuō),這樣一個(gè)錯(cuò)誤產(chǎn)生了災(zāi)難性的后果。發(fā)射后僅僅37秒,火箭偏離它的飛行路徑,解體并爆炸了?;鸺陷d有價(jià)值5億美元的通信衛(wèi)星。6億美元付之一炬。后來(lái)的調(diào)查顯示,控制慣性導(dǎo)航系統(tǒng)的計(jì)算機(jī)向控制引擎噴嘴的計(jì)算機(jī)發(fā)送了一個(gè)無(wú)效數(shù)據(jù)。失事調(diào)查報(bào)告指出,火箭爆炸是因?yàn)椋核鼪](méi)有發(fā)送飛行控制信息,而是送出了一個(gè)診斷位模式,表明在將一個(gè)64位浮點(diǎn)數(shù)轉(zhuǎn)換成16位有符號(hào)整數(shù)時(shí),產(chǎn)生了溢出。溢出值測(cè)量的是火箭的水平速率,這比早先的Ariane4火箭所能達(dá)到的高出了5倍。在設(shè)計(jì)Ariane4火箭的軟件時(shí),他們小心地分析了數(shù)字值,并且確定水平速率絕不會(huì)超出一個(gè)16位的數(shù)。不幸的是,他們?cè)贏riane5火箭的系統(tǒng)中簡(jiǎn)單地重新使用了這一部分,而沒(méi)有檢查它所基于的假設(shè)。2/6/202332曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG基本概念JTAG是JointTestActionGroup(聯(lián)合測(cè)試行動(dòng)組)的縮寫,聯(lián)合測(cè)試行動(dòng)組是IEEE的一個(gè)下屬組織該組織研究標(biāo)準(zhǔn)測(cè)試訪問(wèn)接口和邊界掃描結(jié)構(gòu)(StandardTestAccessPortandBoundary-ScanArchitecture)JTAG的研究成果被接納為IEEE1149.1-1990規(guī)范JTAG成為電子行業(yè)的一種國(guó)際測(cè)試標(biāo)準(zhǔn)現(xiàn)在,人們通常用JTAG來(lái)表示IEEE1149.1-1990規(guī)范,或者滿足IEEE1149規(guī)范的接口或者測(cè)試方法。2/6/202333曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG掃描循環(huán)示意圖2/6/202334曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院邊界掃描單元JTAG標(biāo)準(zhǔn)定義了一個(gè)串行的移位寄存器寄存器的每一個(gè)單元分配給IC芯片的相應(yīng)引腳每一個(gè)獨(dú)立的單元稱為BSC(Boundary-ScanCell)邊界掃描單元這個(gè)串聯(lián)的BSC在IC內(nèi)部構(gòu)成JTAG回路所有的BSR(Boundary-ScanRegister)邊界掃描寄存器通過(guò)JTAG測(cè)試激活2/6/202335曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM的JTAG調(diào)試結(jié)構(gòu)2/6/202336曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM調(diào)試系統(tǒng)說(shuō)明調(diào)試系統(tǒng)一般包括3部分:調(diào)試主機(jī)是運(yùn)行軟件調(diào)試器的計(jì)算機(jī)例如ADW,ARMDebuggerforWindows調(diào)試主機(jī)允許發(fā)出高級(jí)命令,如設(shè)置斷點(diǎn)或檢查存儲(chǔ)器內(nèi)容。協(xié)議轉(zhuǎn)換器處理調(diào)試主機(jī)和ARM7TDMI處理器JTAG接口之間的通訊包括調(diào)試主機(jī)發(fā)出的高級(jí)命令以及JTAG接口的低級(jí)命令。一般通過(guò)增強(qiáng)型并行口進(jìn)行連接。2/6/202337曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM調(diào)試系統(tǒng)說(shuō)明(續(xù))調(diào)試目標(biāo)ARMCPU主處理器邏輯:對(duì)調(diào)試有硬件支持。嵌入式ICE-RT邏輯:這是用于產(chǎn)生調(diào)試異常(如斷點(diǎn))的寄存器和比較器的集合。TAP控制器:用JTAG串行接口控制掃描鏈的動(dòng)作。2/6/202338曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院協(xié)議轉(zhuǎn)換器的調(diào)試擴(kuò)充功能ARM7TDMI具有易于在最低層調(diào)試的硬件擴(kuò)充,其調(diào)試擴(kuò)充功能如下列出:允許暫停程序的執(zhí)行;檢查和修改內(nèi)核的內(nèi)部狀態(tài);查看和修改存儲(chǔ)器系統(tǒng)的狀態(tài);執(zhí)行中止異常,允許實(shí)時(shí)的內(nèi)核監(jiān)控;重新開(kāi)始程序執(zhí)行。2/6/202339曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.3ARM7TDMI掃描鏈布局2/6/202340曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM7TDMI內(nèi)核掃描鏈結(jié)構(gòu)113位38位33位2/6/202341曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG接口的IC內(nèi)部結(jié)構(gòu)2/6/202342曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG狀態(tài)轉(zhuǎn)換圖2/6/202343曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG信號(hào)TMS:測(cè)試模式選擇(TestModeSelect)通過(guò)TMS信號(hào)控制JTAG狀態(tài)機(jī)的狀態(tài)。TCK:JTAG的時(shí)鐘信號(hào)TDI:數(shù)據(jù)輸入信號(hào)TDO:數(shù)據(jù)輸出信號(hào)nTRST:JTAG復(fù)位信號(hào),復(fù)位JTAG的狀態(tài)機(jī)和內(nèi)部的宏單元(Macrocell)。2/6/202344曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.4TAP控制器TAP控制器內(nèi)部有多個(gè)寄存器測(cè)試數(shù)據(jù)寄存器JTAG控制指令寄存器旁路寄存器ARM7TDMI器件識(shí)別碼(ID)寄存器掃描路徑選擇寄存器2/6/202345曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG的TAP控制器結(jié)構(gòu)2/6/202346曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院測(cè)試數(shù)據(jù)寄存器在TDI和TDO之間可以連接的測(cè)試數(shù)據(jù)寄存器有如下8個(gè):指令寄存器;旁路寄存器;ARM7TDMI的器件識(shí)別(ID)碼寄存器;掃描路徑選擇寄存器;掃描鏈0、1、2和3。2/6/202347曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG控制指令寄存器JTAG接口中指令寄存器長(zhǎng)度是4位在指令寄存器共安排10條控制指令,見(jiàn)下表。指令二進(jìn)制指令二進(jìn)制EXTEST0000HIGHZ0111SCAN_N0010CLAMPZ1001SAMPLE/PRELOAD0011INTEST1100RESTART0100IDCODE1110CLAMP0101BYPASS11112/6/202348曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG的指令寄存器在SHIFT-IR態(tài),將指令寄存器選做TDI和TDO之間串行路徑。見(jiàn)(a)在UPDATE-IR態(tài),指令寄存器的值成為當(dāng)前指令。見(jiàn)(b)在CAPTURE-IR態(tài),將b0001加載到該寄存器。該值在SHIFT-IR態(tài)移位輸出。見(jiàn)(c)復(fù)位時(shí),IDCODE(b1110)成為當(dāng)前指令。見(jiàn)(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)TDITDO2/6/202349曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院旁路寄存器功能:通過(guò)提供TDI和TDO之間的路徑,在掃描測(cè)試期間對(duì)器件旁路。長(zhǎng)度:1位操作方式:當(dāng)BYPASS指令是指令寄存器中的當(dāng)前指令時(shí),串行數(shù)據(jù)在SHIFT-DR態(tài)以1個(gè)TCK周期的延遲從TDI傳到TDO。旁路寄存器沒(méi)有并行輸出。在CAPTURE-DR態(tài),從旁路寄存器的并行輸入端裝入“0”。2/6/202350曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM7TDMI器件

識(shí)別碼(ID)寄存器識(shí)別碼用途:讀32位器件識(shí)別碼。不提供可編程的識(shí)別碼。長(zhǎng)度:32位。寄存器的格式如下圖所示。操作方式當(dāng)IDCODE指令是當(dāng)前指令時(shí),將ID寄存器選做TDI和TDO之間的串行路徑。ID寄存器沒(méi)有并行輸出。在CAPTURE-DR態(tài),32位器件識(shí)別碼從其并行輸入端加載到ID寄存器。寄存器的最低有效位首先被掃描輸出。版本4位部件編號(hào)16位制造者標(biāo)識(shí)12位03111282/6/202351曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描路徑選擇寄存器用途和長(zhǎng)度變換當(dāng)前活動(dòng)的掃描鏈,4位。操作方式僅當(dāng)執(zhí)行了一條SCAN_N指令或當(dāng)發(fā)生復(fù)位時(shí),當(dāng)前所選的掃描鏈改變。復(fù)位時(shí),將掃描鏈0選做活動(dòng)的掃描鏈。在SHIFT-DR態(tài),SCAN_N指令把掃描路徑選擇寄存器作為TDI和TDO之間的串行數(shù)據(jù)移位路徑。在CAPTURE-DR態(tài),將b1000加載到該寄存器。這個(gè)值在SHIFT-DR態(tài)加載輸出,同時(shí)裝入新值。在UPDATE-DR態(tài),由寄存器中的值選擇一個(gè)掃描鏈成為當(dāng)前活動(dòng)的掃描鏈。所有進(jìn)一步的指令(如INTEST)都應(yīng)用到該掃描鏈上。2/6/202352曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈編號(hào)分配掃描鏈編號(hào)功能0宏單元掃描測(cè)試1調(diào)試2嵌入式ICE-RT邏輯編程3外部邊界掃描(由ASIC設(shè)計(jì)者實(shí)現(xiàn))4保留8保留2/6/202353曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.5JTAG掃描鏈工作原理JTAG掃描鏈由掃描單元組成每一個(gè)被測(cè)試邏輯電路引出信號(hào)線同它的引腳之間配置一個(gè)掃描單元每一個(gè)掃描單元的內(nèi)部由兩個(gè)D觸發(fā)器和兩個(gè)多路選擇器組成分別把邏輯電路輸入輸出線同引腳之間的穿越掃描單元的電流方向成為橫向,沿掃描單元串接線運(yùn)動(dòng)的電流方向成為縱向。JTAG掃描鏈一共有四種操作:掛起、捕獲、移位和更新。2/6/202354曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG掃描單元構(gòu)造縱向縱向橫向橫向橫向四種操作:掛起,移位,俘獲,更新2/6/202355曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG掃描鏈的組成LogicPinPinPinPinLogicLogicLogicLogic縱向橫向PinPinLogic2/6/202356曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG處于掛起狀態(tài)橫向直行橫向直行如同掃描鏈不存在2/6/202357曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院捕獲JTAG狀態(tài)當(dāng)前引腳信號(hào)的快照存入掃描鏈2/6/202358曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院移位數(shù)據(jù)縱向直行此刻處理器的工作脈沖暫停2/6/202359曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院移位結(jié)束縱向直行此刻處理器的工作脈沖暫停2/6/202360曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院數(shù)據(jù)更新JTAG掃描鏈取代系統(tǒng)向處理器輸入信號(hào),并且替代處理器向系統(tǒng)輸出信號(hào)。2/6/202361曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈0ScanChain0:有113個(gè)掃描單元,包括ARM核的所有的I/O、地址數(shù)據(jù)總線和輸入輸出控制信號(hào)。這條鏈上的信號(hào)復(fù)雜,不易控制,但是包含的信息豐富,可以通過(guò)這條鏈得到ARM7TDMI內(nèi)核的所有信息。從查詢數(shù)據(jù)輸入到輸出,掃描鏈的順序?yàn)椋?1)數(shù)據(jù)總線位[0]-位[31];(2)內(nèi)核控制信號(hào);(3)地址總線位[31]-位[0];(4)嵌入式ICE-RT控制信號(hào)。嵌入式ICE-RT控制信號(hào)(特別是DBGRQI)首先被掃描輸出。2/6/202362曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈0單元編號(hào)信號(hào)類型編號(hào)信號(hào)類型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曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈0單元(續(xù)1)編號(hào)信號(hào)類型編號(hào)信號(hào)類型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曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈0單元(續(xù)2)編號(hào)信號(hào)類型編號(hào)信號(hào)類型68nEXEC輸出69ALE輸出70ABE輸入71APE輸入72TBIT輸出73nWAIT輸入74~105A[31]~A[0]輸出106~113ICE-RT信號(hào)2/6/202365曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈1掃描鏈1:有33個(gè)掃描單元,包括ARM核的數(shù)據(jù)總線和一個(gè)斷點(diǎn)控制信號(hào)。這是一條很有用的鏈,通過(guò)控制這條鏈,可以控制ARM核執(zhí)行指定的指令,從而實(shí)現(xiàn)對(duì)ARM的內(nèi)部寄存器、協(xié)處理器以及外部存儲(chǔ)器的讀寫操作。2/6/202366曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈1(續(xù))掃描鏈1的前32位用于數(shù)據(jù)值,加上在BREAKPT內(nèi)核輸入上的掃描單元。第33位有如下4個(gè)用途:在正常INTEST測(cè)試條件下,允許將已知值掃描到BREAKPT的輸入。在EXTEST測(cè)試條件下,捕獲從系統(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)。2/6/202367曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院掃描鏈2ScanChain2共有38個(gè)掃描單元,通過(guò)控制EmbeddedICE宏單元,實(shí)現(xiàn)對(duì)ARM執(zhí)行指令的斷點(diǎn)、觀察點(diǎn)的控制。從TDI到TDO的掃描鏈次序如下:讀/寫;寄存器地址位[4]-位[0];數(shù)據(jù)值位[31]-位[0]。2/6/202368曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.6嵌入式ICE-RT邏輯嵌入式ICE-RT邏輯也稱為EmbeddedICE或者EmbeddedICE-RT,其主要功能是為ARM7TDMI核提供集成的在線調(diào)試支持。ARM公司的片上測(cè)試部件。使用ARM7TDMI的TAP控制器來(lái)控制嵌入式ICE-RT邏輯的串行數(shù)據(jù)輸入。下圖給出了內(nèi)核、嵌入式ICE-RT邏輯和TAP控制器之間的關(guān)系。圖中僅顯示了有關(guān)的信號(hào)。2/6/202369曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院嵌入式ICE-RT連線結(jié)構(gòu)圖2/6/202370曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院嵌入式ICE-RT邏輯的組成嵌入式ICE-RT邏輯的組成如下:2個(gè)實(shí)時(shí)觀察點(diǎn)單元;3個(gè)獨(dú)立的寄存器:調(diào)試控制寄存器、調(diào)試狀態(tài)寄存器、中止?fàn)顟B(tài)寄存器;調(diào)試通信通道DCC(DebugCommunicationsChannel)。2/6/202371曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院嵌入式ICE-RT邏輯的組成(續(xù))調(diào)試控制寄存器和調(diào)試狀態(tài)寄存器提供嵌入式ICE-RT操作的所有控制。在選擇監(jiān)控模式時(shí)使用中止?fàn)顟B(tài)寄存器??梢跃幊?個(gè)或2個(gè)觀察點(diǎn)單元來(lái)暫停內(nèi)核程序的執(zhí)行。當(dāng)編程進(jìn)入嵌入式ICE-RT的值與當(dāng)前出現(xiàn)在地址總線、數(shù)據(jù)總線和各種控制信號(hào)的值匹配時(shí),暫停執(zhí)行。2/6/202372曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院EmbeddedICE的數(shù)據(jù)結(jié)構(gòu)EmbeddedICE是集成在ARM內(nèi)核中的嵌入式ICE仿真器。其結(jié)構(gòu)如下圖所示。通過(guò)對(duì)EmbeddedICE的控制,對(duì)EmbeddedICE中寄存器的讀取,可以獲得ARM內(nèi)核的狀態(tài),為程序設(shè)置斷點(diǎn)以及讀取Debug通訊通道。EmbeddedICE的串行數(shù)據(jù)長(zhǎng)度是38位,包括:32位數(shù)據(jù)5位的訪問(wèn)EmbeddedICE中寄存器的地址1個(gè)讀寫控制位2/6/202373曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院EmbeddedICE結(jié)構(gòu)EmbeddedICE掃描鏈共38位2/6/202374曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院EmbeddedICE的寄存器地址寬度功能地址寬度功能000006Debugcontrol011009Watchpoint0controlvalue000015Debugstatus011018Watchpoint0controlmask000101Abortstatus1000032Watchpoint1addressvalue001006Debugcommandscontrolregister1000132Watchpoint1addressmask0010132Debugcommandsdataregister100102Watchpoint1datavalue0100032Watchpoint0addressvalue1001132Watchpoint1datamask0100132Watchpoint0addressmask101009Watchpoint1controlvalue0101032Watchpoint0datavalue101018Watchpoint1controlmask0101132Watchpoint0datamask2/6/202375曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Watchpoint寄存器的使用

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

2/6/202377曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Watchpoint表達(dá)式的含義

信號(hào)說(shuō)明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的控制總線2/6/202378曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.7ARM7TDMI斷點(diǎn)的設(shè)置ARM中斷點(diǎn)的設(shè)置主要是設(shè)置EmbeddedICE中的寄存器主要包括:設(shè)置EmbeddedICE的兩個(gè)watchpoint單元的地址、數(shù)據(jù)或控制信號(hào)寄存器。當(dāng)一個(gè)(或者兩個(gè))watchpoint寄存器滿足條件的時(shí)候,ARM就從運(yùn)行狀態(tài)進(jìn)入Debug狀態(tài)。也就是與ARM中的地址(也可以包括數(shù)據(jù))和ARM所執(zhí)行的當(dāng)前的指令相同的時(shí)候2/6/202379曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院硬件斷點(diǎn)和軟件斷點(diǎn)在ARM7TDMI處理器的內(nèi)核中,有兩種斷點(diǎn)的設(shè)置方式:硬件斷點(diǎn)和軟件斷點(diǎn)硬件斷點(diǎn)通過(guò)設(shè)置EmbeddedICE中的Watchpoint寄存器中的地址相關(guān)的寄存器,來(lái)實(shí)現(xiàn)斷點(diǎn)。通過(guò)這種方式設(shè)置斷點(diǎn),斷點(diǎn)數(shù)目受EmbeddedICE中的Watchpoint數(shù)目的限制(在ARM7TDMI處理器的內(nèi)核中,只有兩組Watchpoint寄存器,最多只能設(shè)置兩個(gè)硬件斷點(diǎn))。硬件斷點(diǎn)可以在任何地方設(shè)置。不受存儲(chǔ)器類型的限制。2/6/202380曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院軟件斷點(diǎn)軟件斷點(diǎn)的實(shí)現(xiàn)比較復(fù)雜,需要如下幾個(gè)步驟:通過(guò)設(shè)置EmbeddedICE中的Watchpoint寄存器中的數(shù)據(jù)相關(guān)寄存器(datavalue和datamaskvalue)為一個(gè)特殊的32位數(shù)字—ARM的未定義指令,比如:0x06000010。替換RAM中的指令為上面所設(shè)置的那個(gè)未定的指令0x06000010,作為一個(gè)標(biāo)志。當(dāng)系統(tǒng)運(yùn)行到RAM中所設(shè)定的單元位置時(shí)候,那個(gè)事先設(shè)置的標(biāo)志數(shù)字將被當(dāng)作一個(gè)指令讀入處理器的內(nèi)核。2/6/202381曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院軟件斷點(diǎn)(續(xù))此時(shí),系統(tǒng)所讀入的指令的數(shù)據(jù)剛好和datavalue中的數(shù)字相吻合,系統(tǒng)就進(jìn)入了Debug模式。這就是軟件斷點(diǎn)的工作過(guò)程。軟件斷點(diǎn)的數(shù)目不受ARM內(nèi)核的Watchpoint數(shù)目的限制,不管系統(tǒng)設(shè)置多少個(gè)軟件斷點(diǎn),僅僅使用了ARM內(nèi)核的一個(gè)Watchpoint資源。軟件斷點(diǎn)是通過(guò)替換系統(tǒng)的斷點(diǎn)地址的指令實(shí)現(xiàn)的,所以,軟件斷點(diǎn)只能在可寫的存儲(chǔ)器的地址中設(shè)置(比如:RAM),而不能在ROM(比如:Flash)中設(shè)置。2/6/202382曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院斷點(diǎn)設(shè)置小結(jié)總之,在有兩個(gè)Watchpoint資源的ARM7TDMI的內(nèi)核中,斷點(diǎn)可以有如下情況:2個(gè)硬件斷點(diǎn),沒(méi)有軟件斷點(diǎn)1個(gè)硬件斷點(diǎn),任意多個(gè)軟件斷點(diǎn)任意多個(gè)軟件斷點(diǎn)2/6/202383曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.4.8ARM調(diào)試接口ARM7TDMI調(diào)試接口基于IEEE標(biāo)準(zhǔn)1149.1-1990以及標(biāo)準(zhǔn)測(cè)試訪問(wè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),程序重新開(kāi)始執(zhí)行。監(jiān)控模式:在斷點(diǎn)或觀察點(diǎn),形成指令中止或數(shù)據(jù)中止而不進(jìn)入調(diào)試狀態(tài)。內(nèi)核仍正常接受和服務(wù)中斷。2/6/202384曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院調(diào)試階段外部調(diào)試接口信號(hào)或嵌入式ICE-RT邏輯請(qǐng)求迫使ARM7TDMI進(jìn)入調(diào)試狀態(tài)。激活調(diào)試的事件如下:斷點(diǎn)(取指);觀察點(diǎn)(數(shù)據(jù)訪問(wèn));外部調(diào)試請(qǐng)求。使用JTAG格式的串行口檢測(cè)ARM7TDMI的內(nèi)部狀態(tài)。在暫停模式下,這可確保不使用外部數(shù)據(jù)總線即可將指令串行插入進(jìn)內(nèi)核流水線。例如,在調(diào)試狀態(tài),存儲(chǔ)多個(gè)寄存器指令(STM)可以插入指令流水線,輸出ARM7TDMI寄存器的內(nèi)容。數(shù)據(jù)可以串行移出而不影響系統(tǒng)的其它部分。在監(jiān)控狀態(tài),JTAG接口用于在調(diào)試器與運(yùn)行在ARM7TDMI核上簡(jiǎn)單的監(jiān)控程序之間傳送數(shù)據(jù)。2/6/202385曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院時(shí)鐘

ARM7TDMI核有如下2個(gè)時(shí)鐘:MCLK是存儲(chǔ)器時(shí)鐘;DCLK是內(nèi)部調(diào)試時(shí)鐘,由測(cè)試時(shí)鐘TCK生成。在正常工作期間,內(nèi)核由MCLK時(shí)鐘驅(qū)動(dòng),內(nèi)部邏輯保持DCLK為低電平。當(dāng)ARM7TDMI在暫停模式時(shí),在TAP狀態(tài)機(jī)控制下,內(nèi)核由DCLK供給時(shí)鐘,MCLK自由運(yùn)行。選擇的時(shí)鐘在信號(hào)線ECLK上輸出以便由外部系統(tǒng)使用。2/6/202386曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院調(diào)試接口信號(hào)與調(diào)試接口有關(guān)的外部信號(hào)主要有如下3個(gè):BREAKPT和DBGRQ是處理器進(jìn)入調(diào)試狀態(tài)的系統(tǒng)請(qǐng)求信號(hào);DBGACK是指示內(nèi)核處于調(diào)試狀態(tài)的信號(hào)。進(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)試請(qǐng)求進(jìn)入調(diào)試狀態(tài)2/6/202387曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院調(diào)試接口信號(hào)(續(xù))調(diào)試狀態(tài)下ARM7TDMI的動(dòng)作在暫停模式下,除nMREQ和SEQ外,所有存儲(chǔ)器接口輸出發(fā)生與存儲(chǔ)器系統(tǒng)異步的改變。在監(jiān)控模式下,ARM7TDMI繼續(xù)執(zhí)行指令,存儲(chǔ)器接口的行為正常。2/6/202388曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM處理器的實(shí)時(shí)JTAG仿真器

與開(kāi)發(fā)板的連線圖2/6/202389曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院英蓓特公司的ARM仿真器照片JTAG實(shí)時(shí)在線協(xié)議轉(zhuǎn)換器通常稱為JTAG調(diào)試器(或JTAG仿真器),由于ARM處理器廣泛使用,通常也把ARM處理器的JTAG實(shí)時(shí)在線協(xié)議轉(zhuǎn)換器稱為ARM仿真器。右面給出了深圳市英蓓特公司的ARM仿真器照片。2/6/202390曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG仿真器連接JTAG仿真器連接比較方便,通過(guò)現(xiàn)有的JTAG邊界掃描口與ARMCPU核通信,屬于完全非插入式(即不使用片上資源)調(diào)試,它無(wú)需目標(biāo)存儲(chǔ)器,不占用目標(biāo)系統(tǒng)的任何端口,而這些是駐留監(jiān)控軟件所必需的。另外,由于JTAG調(diào)試的目標(biāo)程序是在目標(biāo)板上執(zhí)行,仿真更接近于目標(biāo)硬件,因此,許多接口問(wèn)題,如高頻操作限制、AC和DC參數(shù)不匹配,電線長(zhǎng)度的限制等被最小化了。使用集成開(kāi)發(fā)環(huán)境配合JTAG仿真器進(jìn)行開(kāi)發(fā)是目前采用最多的一種調(diào)試方式。可用于開(kāi)發(fā)和調(diào)試包含JTAG接口的ARM電路板。2/6/202391曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ARM處理器的實(shí)時(shí)JTAG仿真器

與開(kāi)發(fā)板的連線圖2/6/202392曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院實(shí)時(shí)在線仿真(ICE)與JTAG的區(qū)別實(shí)時(shí)在線仿真系統(tǒng)的硬件主體是在線仿真器(ICE)。在8位單片機(jī)調(diào)試過(guò)程中,可以用這種ICE仿真器完全取代目標(biāo)板上的MCU。因而目標(biāo)系統(tǒng)對(duì)開(kāi)發(fā)者來(lái)說(shuō)完全是透明的、可控的。對(duì)16和32位的單片機(jī)還不能做到完全取代。JTAG調(diào)試在內(nèi)嵌了IEEE1149標(biāo)準(zhǔn)電路的CPU上進(jìn)行,調(diào)試時(shí)不需要更換CPU。適用于8、16、32位的CPU。2/6/202393曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院Angel與JTAG的關(guān)系JTAG調(diào)試:協(xié)議轉(zhuǎn)換器解釋上位機(jī)傳送過(guò)來(lái)的命令,通過(guò)JTAG控制ARM執(zhí)行。Angel調(diào)試:協(xié)議轉(zhuǎn)換器可以直接作為目標(biāo)板的Firmware的一部分,直接執(zhí)行從宿主機(jī)傳送過(guò)來(lái)的調(diào)試命令;并回送相應(yīng)的數(shù)據(jù)。Angel可以節(jié)省專門的JTAG仿真器,但是,它需要軟件,或者是嵌入式操作系統(tǒng)的支持,做不到完全的實(shí)時(shí)仿真,而JTAG仿真是通過(guò)硬件和控制ARM的EmbeddedICE實(shí)現(xiàn)的,可以做到實(shí)時(shí)仿真。2/6/202394曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院英蓓特ARM仿真器的主要特征下載速度達(dá)25KB/S;支持主流開(kāi)發(fā)環(huán)境ADS、EmbestIDE、SDT;支持各種ARM系列處理器;支持標(biāo)準(zhǔn)的14/20針JTAG接口;支持最多兩個(gè)硬件斷點(diǎn)/兩個(gè)數(shù)據(jù)斷點(diǎn)/不限數(shù)目的軟件斷點(diǎn);支持匯編級(jí)調(diào)試,支持ARM、THUMB及指令集交叉調(diào)試;支持標(biāo)準(zhǔn)C語(yǔ)言程序調(diào)試;支持Flash在線編程;通過(guò)軟件升級(jí)方式支持更高版本的ARM核處理器。2/6/202395曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院3.3.7嵌入追蹤宏單元ETM跟蹤追蹤宏單元ETM也稱為跟蹤調(diào)試接口ARM公司開(kāi)發(fā)的一種高級(jí)實(shí)時(shí)軟件開(kāi)發(fā)調(diào)試工具,是ARM片上系統(tǒng)的一個(gè)組件。在CPU運(yùn)行過(guò)程中把現(xiàn)場(chǎng)信息捕捉壓縮后輸出,然后在PC端就可以對(duì)這些數(shù)據(jù)進(jìn)行解壓分析。2/6/202396曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院ETM—嵌入跟蹤宏單元本質(zhì)上ETM相當(dāng)于一個(gè)嵌入芯片的邏輯分析儀2/6/202397曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院JTAG仿真器和ETM的功能區(qū)別基于JTAG的仿真器debug方法是利用芯片內(nèi)部的EmbeddedICE模塊來(lái)控制內(nèi)核,達(dá)到單步/斷點(diǎn)等調(diào)試目的,這種方法的特點(diǎn)是需要把目標(biāo)CPU停住后才能觀察現(xiàn)場(chǎng)情況。在真正的實(shí)時(shí)系統(tǒng)中,停止CPU運(yùn)行往往導(dǎo)致現(xiàn)場(chǎng)失真,ETM就能夠在CPU運(yùn)行過(guò)程中把現(xiàn)場(chǎng)信息捕捉壓縮

溫馨提示

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

評(píng)論

0/150

提交評(píng)論