ARM調(diào)試方案--某科技公司arm培訓(xùn)_第1頁
ARM調(diào)試方案--某科技公司arm培訓(xùn)_第2頁
ARM調(diào)試方案--某科技公司arm培訓(xùn)_第3頁
ARM調(diào)試方案--某科技公司arm培訓(xùn)_第4頁
ARM調(diào)試方案--某科技公司arm培訓(xùn)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1TMT H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L DARM 調(diào)試方案調(diào)試方案2TM2122v01 ARM Debug Solutions議程議程n基本的調(diào)試需求基本的調(diào)試需求n你需要什么樣的功能?nARM公司的調(diào)試和開發(fā)工具。n嵌入式核的調(diào)試嵌入式核的調(diào)試n實現(xiàn)和利用JTAG的調(diào)試方案n停止模式和監(jiān)控模式n嵌入式跟蹤嵌入式跟蹤n使用ETMnARM 開發(fā)板開發(fā)板3TM3122v01 ARM Debug Solutions?基本的調(diào)試需求基本的調(diào)試需求n運行控制運行控制n設(shè)置數(shù)據(jù)訪問斷點n設(shè)置指令斷點n代碼的單步執(zhí)

2、行n狀態(tài)控制狀態(tài)控制n處理器狀態(tài)n讀寫寄存器值n系統(tǒng)狀態(tài)n系統(tǒng)內(nèi)存訪問n下載代碼n執(zhí)行歷史執(zhí)行歷史n執(zhí)行跟蹤信息n內(nèi)存訪問歷史4TM4122v01 ARM Debug SolutionsARM 調(diào)試系統(tǒng)組件調(diào)試系統(tǒng)組件執(zhí)行AXD調(diào)試器的主機 (ADS的一部分)和 Multi-ICE server協(xié)議轉(zhuǎn)換器(Multi-ICE)跟蹤接口單元(MultiTrace)開發(fā)板(Integrator Core Module)Trace PortJTAG Port并口串口l/以太網(wǎng)5TM5122v01 ARM Debug Solutions議程議程n基本的調(diào)試需求基本的調(diào)試需求n你需要什么樣的功能?nAR

3、M公司的調(diào)試和開發(fā)組成工具。 n嵌入式核調(diào)試嵌入式核調(diào)試n實現(xiàn)和利用JTAG的調(diào)試方案n停止模式和監(jiān)控模式n嵌入式跟蹤嵌入式跟蹤n整體化和利用ETMnARM 開發(fā)板開發(fā)板6TM6122v01 ARM Debug Solutions嵌入式核調(diào)試嵌入式核調(diào)試5 線JTAGn被調(diào)試的系統(tǒng)可以是最終的系統(tǒng)!n也可以用第三方的協(xié)議轉(zhuǎn)換工具:DataAddressControlBREAKPTCPUARM調(diào)試器和Multi-ICE server (可以運行在不同的機器上)TAPEmbeddedICELogic-RT7TM7122v01 ARM Debug Solutions嵌入式嵌入式ICE邏輯邏輯n兩個觀

4、察點單元兩個觀察點單元n可以通過監(jiān)控地址總線,數(shù)據(jù)總線和控制信號來探測觀察點(watchpoint)和斷點。n每個單元可以用來提供n1 觀察點, 或n1個 ROM或RAM里的硬件斷點,或nRAM里的多個軟件斷點n調(diào)試控制和狀態(tài)寄存器調(diào)試控制和狀態(tài)寄存器n調(diào)試通訊通道調(diào)試通訊通道n注意:注意:ARM10nARM10家族的調(diào)試結(jié)構(gòu)是不同的,雖然原理是一樣的。n一共包括8個觀察點單元n6 個在指令地址總線上n2個在數(shù)據(jù)地址總線上 n這個將在另外一個課題中講解8TM8122v01 ARM Debug Solutions觀察點觀察點ControlAddrValueDataValueControlValu

5、eAddrMaskDataMaskControlMaskA31:0ComparatorWatchpointD31:00 xF0000 x00 xffffffffData write0 xF000MemoryLocation to be watched一個觀察點觀察點就是一個斷點,這個斷點在當(dāng)以某種方式訪問特定內(nèi)存區(qū)域時被觸發(fā)這個例子里,當(dāng)向地址0 xF000 寫時,將觸發(fā)這個觀察點每一個觀察點單元可以設(shè)置成一個觀察點觀察點,而且只能設(shè)置一個9TM9122v01 ARM Debug Solutions硬件斷點硬件斷點0 x8000ARM - 0 x3Thumb - 0 x10 xffffffff

6、Opcode fetch0 x8000MemoryBreakpoint to be set hereControlAddrValueDataValueControlValueAddrMaskDataMaskControlMaskA31:0ComparatorBreakpointD31:0當(dāng)內(nèi)核試圖執(zhí)行內(nèi)存里一個特定地址的指令時,將會觸發(fā)一個硬件斷硬件斷點點這個例子里,當(dāng)要執(zhí)行從地址0 x8000索取的指令時,將會觸發(fā)一個硬硬件斷點件斷點硬件斷點硬件斷點可以在RAM或ROM里設(shè)置每個觀察點單元可以被用來設(shè)置一個硬件斷點硬件斷點,而且只能一個10TM10122v01 ARM Debug Solut

7、ions軟件斷點軟件斷點Memory0 xffffffff0 xeeeeeeee0 x0Opcode fetchControlAddrValueDataValueControlValueAddrMaskDataMaskControlMaskA31:0ComparatorBreakpointD31:01. Read and store opcode2. Write “special” value一個軟件斷點軟件斷點是當(dāng)一個特定的指令從任何地址被預(yù)取時觸發(fā)的一個斷點這個例子表明了觀察點單元的配置 這對所有的軟件斷點都是一樣的為了設(shè)置一個斷點,可以使用Multi-ICE在特定的地方寫一個特別的指令這

8、些只能在RAM里在操作每一個觀察點單元可以用來設(shè)置無數(shù)的軟件斷點軟件斷點.(The “special” value)11TM11122v01 ARM Debug Solutions命中一個斷點命中一個斷點n停止模式調(diào)試停止模式調(diào)試n由標(biāo)準(zhǔn)的 EmbeddedICE & EmbeddedICE-RT支持n內(nèi)核進入調(diào)試狀態(tài)和停止?fàn)顟B(tài)n內(nèi)核與系統(tǒng)的其余部分分離n發(fā)出DBGACK信號 ( 調(diào)試器通過JTAG而檢測到)n沒有中斷處理,除非調(diào)試器重新啟動執(zhí)行代碼n處理器和系統(tǒng)的狀態(tài)可以通過掃描內(nèi)核的指令來察看和修改,緊接著執(zhí)行它們n監(jiān)控模式調(diào)試監(jiān)控模式調(diào)試n只由增強功能的 EmbeddedICE-

9、RT支持n在ARM9E, ARM10 和稍后的ARM7TDMI版本上有n內(nèi)核通過一個異常中斷而進入常駐軟件監(jiān)控程序n可以連續(xù)處理中斷n處理器和系統(tǒng)的狀態(tài)可以通過監(jiān)控程序的調(diào)試命令來察看和修改12TM12122v01 ARM Debug Solutions讀系統(tǒng)狀態(tài)讀系統(tǒng)狀態(tài)(在停止模式在停止模式)從地址0 x8000 向后讀 10 個字MOV r0, #0 x8000LDMIA r0!, r1-r10 - system speedSTMIA r0, r1-r10 - debug speedTDITCKDatabusARMxDTCKregistersDebugspeedDatabusARMxDT

10、DOr1-r1013MCLKregistersSystemspeedDatabusARMxD2F DE13TM13122v01 ARM Debug SolutionsDebuggerRMHost(RealMonitor.dll)主機主機RMTargetApplicationCode + Data目標(biāo)板目標(biāo)板經(jīng)過經(jīng)過DCC傳送的傳送的實時監(jiān)控協(xié)議實時監(jiān)控協(xié)議監(jiān)控模式調(diào)試監(jiān)控模式調(diào)試n主機 - 在AXD 和 Multi-ICE之間的控制器n實時監(jiān)控協(xié)議 n非常簡單的協(xié)議n快速 沒有出錯檢查n允許后臺命令n實際目標(biāo)板n小的調(diào)試監(jiān)控程序 (2k 代碼字節(jié))n集成在目標(biāo)里n以目標(biāo)代碼和原代碼的形式提供1

11、4TM14122v01 ARM Debug Solutions調(diào)試通訊通道調(diào)試通訊通道n在ARM和主機調(diào)試器之間通過JTAG的通訊信息是由簡單串行通訊口來實現(xiàn)的n不進入調(diào)試模式和停止程序執(zhí)行nARM上運行的應(yīng)用代碼經(jīng)過協(xié)處理器14來訪問n三個寄存器n通訊數(shù)據(jù)讀寄存器(Comms Data Read Register)n主機到ARM的通訊n通訊數(shù)據(jù)寫寄存器( Comms Data Write Register)nARM到主機的通訊n通訊數(shù)據(jù)控制寄存器(Comms Data Control Register)n提供在ARM和主機之間同步的握手信號n位 1 寫位 - 當(dāng)ARM寫入新數(shù)據(jù)時清掉n位 0

12、 讀位 當(dāng)ARM有新數(shù)據(jù)讀時設(shè)置15TM15122v01 ARM Debug SolutionsDCC 查詢模式通訊查詢模式通訊Write RegisterRW10Control Register Scan chain 2 ; 拷貝 DCC 控制寄存器到 r2MRC p14,0,r2,c0,c0,0; 檢查DCC 控制寄存器的位1TST r2,#0 x2; 如果位1清掉了,拷貝數(shù)據(jù)從r1到 DCC 寫寄存器 MCREQ p14,0,r1,c1,c0,0; 拷貝 DCC 控制寄存器到 r2MRC p14,0,r2,c0,c0,0;檢查DCC 控制寄存器的位0TST r2,#0 x1; 如果位0設(shè)

13、置,拷貝數(shù)據(jù)從DCC 寫寄存器 到r3 MRCNE p14,0,r3,c1,c0,0調(diào)試器查詢控制寄存器利用掃描鏈2來察看什么時候?qū)懳槐辉O(shè)置,讀位被清掉接著數(shù)據(jù)可以被掃描進入或者輸出r1 r3 Read Register16TM16122v01 ARM Debug Solutions ARMDCC 利用中斷進行通訊利用中斷進行通訊RCOMMRXInterruptControllerCOMMTXnIRQWOther interrupt sources通過通過Multi ICE連接的調(diào)試器連接的調(diào)試器17TM17122v01 ARM Debug Solutions向量捕獲向量捕獲n允許沒有處理軟件

14、的異常機制的捕獲n在ARM7TDMI 上執(zhí)行利用斷點n當(dāng)從ROM 地址 0 x0 調(diào)試時關(guān)閉n在ARM9TDMI/ARM10和后來的版本上執(zhí)行利用專門的硬件n只對硬件異常敏感n到向量表里的跳轉(zhuǎn)將不被捕獲n留下觀察點單元作為一般使用n一旦有你自己的處理,則關(guān)掉向量捕獲nAXD : spp vector_catch 0%RUsPDaifFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionReset0 x1C0 x180 x140 x100 x0C0 x080 x040 x0018TM18122

15、v01 ARM Debug SolutionsnARM 目標(biāo)上運行的庫代碼, 但是任何需要的底層的I/O是由主機提供的 nSWI 機制提供的主機訪問.nSWI 接口是ARMulator, Angel 和 Multi-ICE通用的組成部分nSemihosted 程序?qū)⑦\行在所有的ARM目標(biāo)板上,而不需要 移植n需要連接的調(diào)試工具提供這些功能Semihosting:printf(“hellon”);:應(yīng)用代碼:SWI:庫代碼SWI 服務(wù)程序與主機上運行的調(diào)試器通訊hello19TM19122v01 ARM Debug Solutions通過通過JTAG 的的Semihostingnspp semi

16、hosting_vector 0 x8nspp semihosting_enabled 1n關(guān)掉:spp semihosting_enabled 0Breakpoint0 x1080 x1040 x100.SWI ,.pc = 0 x8lr = 0 x108MOVS pc, lrMulti-ICE仿真的SWI服務(wù)程序0 x000 x1C0 x180 x140 x100 x0C0 x080 x04ResetUndefinedSoftware InterruptPrefetch AbortData AbortReservedIRQFIQ20TM20122v01 ARM Debug Solution

17、sSemihosting 加上用戶加上用戶SWIsnspp semihosting_enabled 1nspp semihosting_vector 0 x450Breakpoint0 x1080 x1040 x100.SWI ,.lr = 0 x108MOVS pc, lrSWI HandlerSemiSWISTMFD sp!,regsLoad SWI numberB if semiSWIDeal with SWI:LDMFD sp!,regsMOVS pc, lr0 x4500 x000 x1C0 x180 x140 x100 x0C0 x080 x04ResetUndefinedSoft

18、ware InterruptPrefetch AbortData AbortReservedIRQFIQ21TM21122v01 ARM Debug Solutionsnspp semihosting_dcchandler_address 0 x70000nspp semihosting_vector 0 x8nspp semihosting_enabled 20 x000 x1C0 x180 x140 x100 x0C0 x080 x040 x1080 x1040 x100.SWI ,.pc = 0 x8lr = 0 x108MOVS pc, lrDCC Semihosting0 x7000

19、0DCCDCCSemihosting HandlerCode ResetUndefinedSoftware InterruptPrefetch AbortData AbortReservedIRQFIQ22TM22122v01 ARM Debug Solutions直接對直接對EmbeddedICE訪問訪問nAXD 允許直接對EmbeddedICE 邏輯寄存器訪問n可以直接通過 GUI或如下的命令行察看REGisters ”EICE Watch 0”在地址0 x4000寫時設(shè)置一個觀察點:sreg EICE Watch 0|Address Value 0 x00004000sreg EICE

20、Watch 0|Address Mask 0 sreg EICE Watch 0|Data Value 0sreg EICE Watch 0|Data Mask 0 xFFFFFFFF sreg EICE Watch 0|Control Value 0 x10Dsreg EICE Watch 0|Control Mask 0 x0F8n注釋: ARM調(diào)試器優(yōu)先與 ADS1.1 通過協(xié)處理器0訪問EmbeddedICE 邏輯寄存器.23TM23122v01 ARM Debug Solutions利用利用Multi-ICE調(diào)試設(shè)計調(diào)試設(shè)計n確信確信 DBGEN 是接高電平!是接高電平!nThumb

21、 代碼上的軟件斷點需要半字訪問代碼上的軟件斷點需要半字訪問RAMn必須總是字/半字/字節(jié)訪問內(nèi)存nMulti-ICE可以在可以在1.0V V時調(diào)試系統(tǒng)時調(diào)試系統(tǒng)n自適應(yīng)到目標(biāo)邏輯電壓n目標(biāo)板可以在時工作目標(biāo)板可以在時工作n在時,啟動電流是400mA , 一般操作時是 120mAnMulti-ICE 2.1 出售時跟隨一個適當(dāng)?shù)碾娫磏Multi-ICE用用20-針針 連接器連接器n多個接地點n靈活的時鐘配置n可以與不同的時鐘速度設(shè)備同步n 長 JTAG 電纜n也可以僅僅利用5 個信號來調(diào)試n請小心停止系統(tǒng)時鐘請小心停止系統(tǒng)時鐘n復(fù)位考慮復(fù)位考慮.24TM24122v01 ARM Debug So

22、lutionsTCK, TDI, TMS, TDO協(xié)議轉(zhuǎn)換接口TCK, .nTRSTnRESETARMReset Circuit復(fù)位復(fù)位nSRSTnTRSTnnTRST 和 nSRST 必須通過一個上拉電阻來連接nMulti-ICE 在 nTRST 有開放的連接25TM25122v01 ARM Debug Solutions測驗測驗1) EmbeddedICE 邏輯一共包括多少個觀察點單元?2) ROM上可以設(shè)置多少個斷點?3) 利用DCC semihosting比一般的 semihosting有什么優(yōu)勢?4) 為了激活A(yù)RM的調(diào)試功能,DBGEN 的信號應(yīng)該怎么連接?5) 為什么Multi-

23、ICE需要半字訪問內(nèi)存?6) EmbeddedICE-RT 提供了哪些額外的調(diào)試功能?26TM26122v01 ARM Debug Solutions議程議程n基本調(diào)試需求基本調(diào)試需求n你需要什么樣的功能?nARM公司的調(diào)試和開發(fā)集成工具。 n嵌入式核調(diào)試嵌入式核調(diào)試n實現(xiàn)和利用JTAG的調(diào)試方案n停止模式和監(jiān)控模式n嵌入式跟蹤嵌入式跟蹤n整體化和利用ETMnARM 開發(fā)板開發(fā)板27TM27122v01 ARM Debug SolutionsETM的機制的機制(嵌入式跟蹤宏單元嵌入式跟蹤宏單元)n為什么需要實時跟蹤功能?為什么需要實時跟蹤功能? n實時系統(tǒng)不允許停止!n傳統(tǒng)的調(diào)試 (斷點和單步

24、執(zhí)行) 不能滿足n必須利用捕獲的實際代碼運行來調(diào)試n為什么不用其它的調(diào)試工具而用為什么不用其它的調(diào)試工具而用ETM?nEmbeddedICE-RT為調(diào)試通訊通道提供了低的帶寬n只適用于程序狀態(tài)信息n外部的指令需要寫到通訊通道里n獨立的處理器比嵌入式處理器容易調(diào)試獨立的處理器比嵌入式處理器容易調(diào)試n一個獨立的處理器,或者:n用外部的ICE單元代替處理器,或者n用邏輯分析儀探測處理器的信號n當(dāng)用嵌入式ARM內(nèi)核時兩個都不可能時怎么辦???28TM28122v01 ARM Debug Solutions16 bit wideRAM8 bit wideROM20 bit Address16 bit Da

25、ta帶嵌入式處理器的典型帶嵌入式處理器的典型ASICSerialPortsARMDataAddressDisplayControlTimer32 bit wideInternalMemoryExternalBusInterface29TM29122v01 ARM Debug Solutions問題問題n沒有外部可見的片上沒有外部可見的片上ASIC 總線總線n帶緩存的處理器 (例如, ARM920T) 帶有與設(shè)備內(nèi)部相連的核/緩存總線nICE 版本必須在全速系統(tǒng)速度下運行版本必須在全速系統(tǒng)速度下運行n隨著處理器速度的增加,ICE越來越難n同時必須提供ICE 工具 (例如,觸發(fā)器)n實時跟蹤需要確

26、定的實時跟蹤需要確定的高帶寬的接口高帶寬的接口 n需要地址總線,數(shù)據(jù)總線和控制信號n對于 ARM7TDMI ,有80多個 引腳n很多很多 ASICs 使用相同的處理器核使用相同的處理器核nICE必須為每一個 ASIC定做30TM30122v01 ARM Debug SolutionsARM 實時跟蹤實時跟蹤n嵌入式跟蹤單元 (ETM)n實時指令跟蹤n實時數(shù)據(jù)訪問跟蹤n包含 ICE功能 (觸發(fā)和過濾邏輯)nMultiTrace 跟蹤端口分析器 (TPA)n深度緩沖器捕獲跟蹤n跟蹤調(diào)試工具n通過JTAG/Multi-ICE 配置ETM跟蹤n從ETM/MultiTrace里接收壓縮的跟蹤數(shù)據(jù)n利用拷

27、貝原代碼映象來對ETM跟蹤5ARMcoreETMRAMROMTAPcontrollerTraceTrigger /Filter9,13,21 線 跟蹤接口5 線 JTAG 接口串口/以太網(wǎng)口并口運行跟蹤調(diào)試工具的主機(ADS的附件)31TM31122v01 ARM Debug SolutionsETM 結(jié)構(gòu)結(jié)構(gòu)TRACECLK3 (ETM v1)4 (ETM v2)PIPESTAT 2:0 (ETM v1)PIPESTAT 3:0 (ETM v2)ARM Core到和來自ARM的數(shù)據(jù)可綜合的可綜合的 ETM 塊塊n = 4, 8 or 16跟蹤端口(9, 13 or 21引腳)nETM 監(jiān)控器

28、和簡要的監(jiān)控器和簡要的ARM 總線信號總線信號JTAG 接口Trigger & Filter LogicPipelineStatusGenerationTracePacketCapturenTRACEPKTn-1:0TRACESYNC (ETMv1 only)FIFOTAP Controller5到ARM的控制來自ARM的控制來自ARM的地址確定的ETM-ARM 接口 (只在ETM v2)32TM32122v01 ARM Debug Solutions跟蹤端口說明跟蹤端口說明nTRACECLK: 與處理器時鐘有相同的頻率與處理器時鐘有相同的頻率nPIPESTAT (流水線狀態(tài)流水線狀態(tài)

29、) 表明表明:n程序流n是否有一個相關(guān)聯(lián)的TRACEPKTnETM 狀態(tài)nTRACEPKT (跟蹤包跟蹤包) 可能包含以下一個或多個特征:n數(shù)據(jù)地址n數(shù)據(jù)值n指令地址nTRACESYNC (只在只在ETM v1有有):n用來在ETM和TPA之間進行同步* 可以參考可以參考ETM規(guī)范得到更多的信息規(guī)范得到更多的信息n = 4, 8 or 16跟蹤端口(9, 13 or 21 引腳)TRACECLKPIPESTAT 2:0 (ETM v1)PIPESTAT 3:0 (ETM v2)TRACEPKTn-1:0TRACESYNC (ETMv1 only)33TM33122v01 ARM Debug S

30、olutions指令跟蹤指令跟蹤n與指令跟蹤有關(guān)的跟蹤端口部分與指令跟蹤有關(guān)的跟蹤端口部分:nPIPESTAT 表明內(nèi)核的流水線狀態(tài) (例如,一個指令是否被執(zhí)行)nTRACEPKT 當(dāng)需要時,包含一個跳轉(zhuǎn)目標(biāo)地址n以上兩條和代碼映象相結(jié)合,就可以進行調(diào)試了n指令跟蹤能夠被高度壓縮指令跟蹤能夠被高度壓縮 n典型地,一個 9-位的跟蹤端口可以處理只有指令的跟蹤nETM v1 最好的情形: 3位的跟蹤信息來跟蹤32位的代碼nETM v2 最好的情形: 4位的跟蹤信息來跟蹤64位的代碼n可以用過濾和觸發(fā)器:可以用過濾和觸發(fā)器:n只對內(nèi)存地址和/或區(qū)域進行跟蹤n只有在特定的ETM順序狀態(tài),計數(shù)器等才進行

31、跟蹤n技術(shù)注解:技術(shù)注解:TraceEnable (一個一個 ETM 內(nèi)部信號內(nèi)部信號) 可以激發(fā)指令跟蹤。它是由觸發(fā)可以激發(fā)指令跟蹤。它是由觸發(fā)器器/過濾器事件和資源控制的。過濾器事件和資源控制的。34TM34122v01 ARM Debug Solutions數(shù)據(jù)跟蹤數(shù)據(jù)跟蹤n與數(shù)據(jù)跟蹤有關(guān)的跟蹤端口部分與數(shù)據(jù)跟蹤有關(guān)的跟蹤端口部分:nTRACEPKT 包含數(shù)據(jù)地址或數(shù)據(jù)值n只有數(shù)據(jù)地址改變的位被廣播 (目的是節(jié)省帶寬)n每一次跟蹤運行都可以配置每一次跟蹤運行都可以配置 ETM:n數(shù)據(jù)地址或數(shù)據(jù)值(或兩個都有)n讀或?qū)懀ɑ騼蓚€都有)n需要一個高的帶寬跟蹤所有數(shù)據(jù)需要一個高的帶寬跟蹤所有數(shù)據(jù)

32、(有程序相關(guān)有程序相關(guān))n一個帶有45個字節(jié)FIFO的13-位跟蹤端口可以跟蹤大部分?jǐn)?shù)據(jù)傳輸n如果想跟蹤更多數(shù)據(jù)訪問則需要一個21-位的跟蹤端口n過濾器和觸發(fā)器對保持跟蹤數(shù)據(jù)的管理很重要過濾器和觸發(fā)器對保持跟蹤數(shù)據(jù)的管理很重要n如果在跟蹤信息里有一個 FIFO 溢出標(biāo)記,那么就表示有部分的跟蹤信息被丟掉n推薦使用可編程的過濾器和觸發(fā)邏輯n技術(shù)注解:技術(shù)注解:ViewData (一個一個ETM的內(nèi)部信號的內(nèi)部信號) 激發(fā)了數(shù)據(jù)跟蹤激發(fā)了數(shù)據(jù)跟蹤(如果如果TraceEnable是假時被忽略掉是假時被忽略掉). 它是由觸發(fā)器它是由觸發(fā)器/過濾事件和資源控制的。過濾事件和資源控制的。35TM35122

33、v01 ARM Debug Solutions跟蹤例子跟蹤例子0 x1010 MOV r0, #30 x1014 SUBS r0, r0, #10 x1018 BNE 0 x10140 x101C LDR r1, #0 x4000.0 x4000 0 x4321 dataIEIEIEr0=2IEIEIEINID.r0=1r0=00 x101C LDR r1, #0 x4000r1ID0 x1018 BNE 0 x10140 x1010 SUBS r0, r0, #10 x1018 BNE 0 x10140 x1014 SUBS r0, r0, #10 x1018 BNE 0 x10140 x1

34、014 SUBS r0, r0, #10 x1010 MOV r0, #3Corresponding InstructionnonenonenonenonenonenonenoneTRACEPKTbranch not takenINCommentPIPESTATr0=0IEdirect branch takenIEr0=1IEdirect branch takenIEr0=2IEr0=3IE 假設(shè)數(shù)據(jù)跟蹤是激活的(ViewData 被聲明了)n基本指令和直接跳轉(zhuǎn)的基本指令和直接跳轉(zhuǎn)的ETM跟蹤跟蹤由PIPESTAT=IE 或 IN來解碼直接跳轉(zhuǎn)直接跳轉(zhuǎn)36TM36122v01 ARM Debu

35、g Solutions指令跟蹤局限指令跟蹤局限n調(diào)試器需要一個代碼的拷貝來做參考調(diào)試器需要一個代碼的拷貝來做參考n自動修改代碼部分將不能和ETM一起工作n調(diào)試器必須知道代碼映象的地址映射調(diào)試器必須知道代碼映象的地址映射n代碼必須在連接時的地址執(zhí)行n帶有固定代碼地址的虛擬內(nèi)存配置是可以的n現(xiàn)在不支持動態(tài)重定位代碼n請注意請注意“覆蓋覆蓋” (例如:把代碼調(diào)入片上例如:把代碼調(diào)入片上RAM)n如果有很多代碼段運行在相同的地址,跟蹤不能區(qū)分哪一部分在運行。這個例子里,跟蹤解壓是不可能的。n解決辦法是給內(nèi)存區(qū)域命名 (見下一頁)37TM37122v01 ARM Debug Solutions重疊和命名

36、重疊和命名n硬件的命名將每一個段都映射到相同的實際存儲器上n用不同的“別名”連接每一個重疊的段執(zhí)行nPC值標(biāo)識了哪一個段在執(zhí)行AAAAAAABCBBBBABCCCCCABC外部外部ROM片上片上RAM(命名的命名的)注意: 必須用命名的方法設(shè)計存儲器系統(tǒng)AAA16K 片上RAM016K32K48K64K16K RAMA13:0A14A15ARMDecoderA31:16SELIGNORED38TM38122v01 ARM Debug Solutions控制跟蹤控制跟蹤nETM里的資源是可以被過濾和控制的:里的資源是可以被過濾和控制的:n要跟蹤的指令n要跟蹤的數(shù)據(jù)訪問n外部跟蹤端口分析器的觸發(fā)n

37、ETM的資源由以下部分組成:的資源由以下部分組成:n8 個數(shù)據(jù)比較器n8 對全范圍地址比較器n16個地址解碼器n4 個16-位計數(shù)器n1 個3-狀態(tài)序列器n對于ASIC: 最多 4用戶輸入,4個用戶輸出n一個事件可以由任何兩個資源邏輯組成:例如一個事件可以由任何兩個資源邏輯組成:例如“within address range 1 AND data value equals 0 xFFFFFFFF”n不同的不同的ETM 實現(xiàn)有不同數(shù)量的觸發(fā)資源實現(xiàn)有不同數(shù)量的觸發(fā)資源n可以看技術(shù)文檔得到更詳細(xì)的資料39TM39122v01 ARM Debug Solutions哪一個哪一個ETM?n根據(jù)你的AR

38、M內(nèi)核來選擇 ETM7, ETM9, 或者 ETM10n選擇小的,中等的或大的模式n選擇跟蹤端口的寬度 (4/8/16)n如果高的吞吐率(數(shù)據(jù)跟蹤)很重要的時候,可以選擇更寬的端口n可以考慮與其它引腳的多路復(fù)用技術(shù)(例如GPIO)n調(diào)試時可以使用大的寬的,產(chǎn)品時可以使用簡單的,窄的ETMn使用ATPG 和插入掃描來對產(chǎn)品進行測試nETM 提供了驗證環(huán)境套件n下一頁將總結(jié)配置和數(shù)據(jù)的大小40TM40122v01 ARM Debug SolutionsETM 配置配置4 / 8 /164 / 8 /164 / 8Port width4518 or 209 or 10FIFO Depth60k35k

39、25kGate count大的大的中等的中等的小的小的ETM v1 (ETM7,9)603015FIFO Depth4 / 8 /164 / 8 /164 / 8 /16Port width75k50k35kGate count大的大的中等的中等的小的小的ETM v2 (ETM10)16848411682Addr Comparators大的大的中等的中等的小的小的功能功能Range ComparatorsAddr DecodersCountersExt. Outputs124014820Data ComparatorsSequencers011Ext. Inputs24441TM41122v0

40、1 ARM Debug Solutions實現(xiàn)跟蹤實現(xiàn)跟蹤 (1)n所有需要的信號連接到所有需要的信號連接到ARM 核核n沒有緩存的內(nèi)核與地址/數(shù)據(jù)總線和控制信號相連n有緩存的內(nèi)核輸出內(nèi)核信號到宏單元邊緣(例如: ARM920T 版本1)nASIC上提供跟蹤端口上提供跟蹤端口n經(jīng)過基座上輸出的最高頻率是多少?nASIC上要支持多個ARM內(nèi)核嗎?n考慮跟蹤端口與別的引腳多路復(fù)用嗎?n最終產(chǎn)品中去除以減少引腳數(shù)量嗎?nARM 跟蹤捕獲和跟蹤捕獲和JTAG的標(biāo)準(zhǔn)連接器的標(biāo)準(zhǔn)連接器n38-路的 AMP MICTOR 連接器 (高密度)ARM7TDMIARM7TDMI-SARM720T rev3ARM7

41、EJARM9TDMIARM9E-S/9EJ-SARM920T rev1/922TARM966E-SARM946E-SARM926EJ-SETM7ETM9ARM1020EETM1042TM42122v01 ARM Debug Solutions實現(xiàn)跟蹤實現(xiàn)跟蹤 (2)n對對 ARM7 和和 ARM9 內(nèi)核內(nèi)核:nCPU 時鐘應(yīng)該自由運行 (利用 nWAIT, 而不是時鐘延長), 但不是至關(guān)重要的nFIFO FULL 信號可以被用來停止處理器信號可以被用來停止處理器n但是如果FIFO 滿了時,將影響實時性能nETM設(shè)計的目標(biāo)不是低功耗設(shè)計的目標(biāo)不是低功耗n在正常運行操作(沒有跟蹤)模式下,ETM不

42、應(yīng)該被時鐘驅(qū)動ETMCLKPWRDOWN(通過JTAG控制)ARMCLKJTAGn更多更詳細(xì)的信息請看:更多更詳細(xì)的信息請看:ETM 規(guī)范ETM7/9/10 技術(shù)參考手冊 (TRMs)ETMEN43TM43122v01 ARM Debug Solutions跟蹤捕獲跟蹤捕獲n需要一個外部的跟蹤端口分析儀需要一個外部的跟蹤端口分析儀(TPA)來捕獲來捕獲 ETM 的輸出的輸出nTPAs 可以在觸發(fā)事件之前,發(fā)生時或之后來跟蹤nTPAs 帶有很深的跟蹤捕獲緩沖器nTPA 的緩沖器通過很高速度的上行連接(通常是以太網(wǎng))來把數(shù)據(jù)返回給主機 PCn當(dāng)前可選擇的當(dāng)前可選擇的TPA :nMulti-Trac

43、e*nAgilent 邏輯分析儀 (需要 Multi-ICE 或者 Agilent JTAG 探測器)nAgilent ARM(E5904B)的跟蹤端口分析儀 nTektronix 邏輯分析儀* 需要需要 Multi-ICE 2.0 或或 更新的更新的nLauterbach 也提供跟蹤工具、仿真器、調(diào)試器也提供跟蹤工具、仿真器、調(diào)試器44TM44122v01 ARM Debug SolutionsARM MultiTracen與與 Multi-ICE (2.0+)連接一起工作連接一起工作n通過以太網(wǎng)跟蹤,通過JTAG口控制運行n支持 9, 13 和 21 引腳的跟蹤端口,頻率可高達(dá) 200 MHzn目標(biāo)電壓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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論