




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第三講嵌入式系統(tǒng)調(diào)試方法3.1基于主機的調(diào)試3.2遠程調(diào)試3.3ROM仿真器3.4在線仿真ICE3.5BDM3.6JTAG3.7軟件仿真器調(diào)試是嵌入式系統(tǒng)開發(fā)過程中必不可少的重要環(huán)節(jié),通常計算機應用系統(tǒng)與嵌入式系統(tǒng)的調(diào)試環(huán)境存在明顯差異:◎通用計算機一般采用桌面操作系統(tǒng),調(diào)試器與被調(diào)試的程序常常位于同一臺計算機上,OS也相同,調(diào)試器進程通過OS提供的調(diào)用接口(API)來控制被調(diào)試的進程;◎嵌入式應用程序通常采用嵌入式操作系統(tǒng),運行在嵌入式系統(tǒng)上,開發(fā)主機常采用通用計算機,開發(fā)機和目標機處于不同的機器中,程序在開發(fā)主機上開發(fā)(編輯、交叉編譯、連接定位等),然后下裝到目標機(嵌入式系統(tǒng))進行運行和調(diào)試(遠程調(diào)試)。由于這種差異,導出如下問題:·不同OS之上的調(diào)試器與被調(diào)試程序之間如何通信;·被調(diào)試程序出現(xiàn)異常如何告知調(diào)試器;·調(diào)試器如何控制及訪問被調(diào)試程序等。目前采用兩種調(diào)試方法解決上述問題:monitor方式和片上調(diào)試方式。(1)monitor方式monitor方式是在目標OS與調(diào)試器內(nèi)分別內(nèi)置專用功能模塊,用于相互通信從而實現(xiàn)調(diào)試功能。兩者應通過指定的通信端口并依據(jù)相同的遠程調(diào)試協(xié)議來實現(xiàn)通信。目標OS的所有異常處理最終都必須轉向通信模塊,通知調(diào)試器此時的異常號,調(diào)試器再依據(jù)該異常號向用戶顯示被調(diào)試程序發(fā)生了哪一類型的異?,F(xiàn)象。調(diào)試器控制及訪問被調(diào)試程序的請求都將被轉換為對調(diào)試程序的地址空間或目標平臺的某些寄存器的訪問,目標OS接收到此類請求時可直接進行處理。采用monitor方式,目標OS必須提供支持遠程調(diào)試協(xié)議的通信模塊和多任務調(diào)試接口,此外還需改寫異常處理的有關部分。目標OS需要定義一個設置斷點的函數(shù)。(2)片上調(diào)試方式片上調(diào)試方式是在CPU內(nèi)部嵌入額外的硬件控制模塊,當滿足了特定的觸發(fā)條件時進入某種特殊狀態(tài)。在該狀態(tài)下,被調(diào)試程序停止運行,主機的調(diào)試器可以通過CPU外部特設的通信接口來訪問系統(tǒng)資源并執(zhí)行指令。主機通信端口與目標板調(diào)試通信接口通過一塊簡單的信號轉換電路板連接。內(nèi)嵌的控制模塊以監(jiān)控器或純硬件資源的形式存在,包括一些提供給用戶的接口,如JTAG方式和BDM方式。3.1基于主機的調(diào)試指沒有目標機或目標機是通用計算機平臺(如PC104)的一種調(diào)試?;贑語言可移植性原理,有許多程序模塊完全可以在主機上開發(fā)和調(diào)試,這些模塊應該用標準C語言編寫,與硬件無關,如各種算法程序。對于匯編語言代碼,可以在主機上使用指令模擬器(InstructionSetSimulator,ISS)運行它們,直到需要測試代碼與目標系統(tǒng)特殊硬件之間的實時交互操作為止。基于主機的調(diào)試主要存在兩大問題,一是目標系統(tǒng)外設無法交互,二是兩種計算機體系結構特征——字長與字節(jié)排序問題。字長問題可以通過定義可移植的數(shù)據(jù)類型來解決。字節(jié)排序問題主要是大小端問題。如果主機不支持大小端配置,那么需要在軟件移植到目標系統(tǒng)上之后,調(diào)試大小端問題,或者將目標機的大小端配置成與主機的大小端配置相同?;谥鳈C的調(diào)試方法的例子如基于uC/OS-II操作系統(tǒng)的應用開發(fā)。基于uC/OS-II的應用開發(fā)可以通過計算機進行,該OS提供了可移植的數(shù)據(jù)類型定義,兼顧了大小端問題,開發(fā)完成后,只需要修改少量的移植代碼,就可以把應用移植到目標系統(tǒng)中。基于主機的調(diào)試方法的另一個例子是ATI公司的MNT,NucleusPlus是ATI公司的一個商用嵌入式實時多任務操作系統(tǒng),支持眾多的處理器。MNT是一個仿真開發(fā)平臺,利用MNT,用戶可以在基于Windows操作系統(tǒng)的計算機上,開發(fā)和調(diào)試基于NucleusPlus的應用程序,等目標硬件調(diào)試完成后,直接移植到目標機上運行,實現(xiàn)嵌入式軟件和硬件的并行開發(fā)。3.2遠程調(diào)試器與調(diào)試內(nèi)核嵌入式目標系統(tǒng)平臺一般缺少支持具有完整特性的調(diào)試器所需的資源,嵌入式系統(tǒng)調(diào)試器通過分離自身來避開這種限制。調(diào)試器的大部分駐留在主機中,余下部分駐留在目標機中,留在目標系統(tǒng)中的主要是調(diào)試代理,即monitor。調(diào)試器的兩部分(主機部分和目標機部分)通過串口/并口/以太網(wǎng)等端口相互通信。典型調(diào)試體系結構如下圖所示。主機桌面操作系統(tǒng)編譯器連接器編輯器調(diào)試器(前端)(指令)模擬器目標機嵌入式操作系統(tǒng)調(diào)試代理BootLoader文件系統(tǒng)TCP/IPBSPJVMGUI通信端口調(diào)試器一般具有以下功能:設置斷點;從主機中加載程序;顯示或修改內(nèi)存與處理器的寄存器;從某地址開始運行;單步執(zhí)行;多任務調(diào)試;資源查看(包括多任務信箱、信號量、隊列、任務狀態(tài)等);遠程調(diào)試內(nèi)核功能與調(diào)試器前端的用戶界面緊密配合。調(diào)試代理需要兩種目標系統(tǒng)資源:一是中斷向量,二是軟件中斷。調(diào)試代理以中斷服務程序ISR的方式提供,中斷源一般設置成高優(yōu)先級中斷,有時與NMI的中斷優(yōu)先級一樣高,通常來自于串口/并口/以太網(wǎng)等設備,由主機控制中斷發(fā)生與否,以保證調(diào)試器訪問中斷總能被處理到,否則如果某個應用程序關閉了所有中斷,那么調(diào)試器就再也不能恢復對系統(tǒng)的控制了。當主機發(fā)送命令給目標機,目標機就會立即停止應用軟件代碼的執(zhí)行并進入調(diào)試代理ISR,保存當前CPU的上下文,然后調(diào)試器就控制了目標系統(tǒng)。
3.3ROM仿真器3.3.1ROM仿真器概述
ROM仿真器就是仿真ROM,是用RAM以及附加電路制成。ROM仿真器是一個有2個電纜的盒子:一端連接到主機串口,下載新的程序到ROM仿真器;另一端插在目標系統(tǒng)的ROM插座上,目標平臺認為它在訪問ROM,而它實際訪問的是ROM仿真器的RAM,該RAM中含有用戶所下載的用于測試的程序。如下圖所示。ROM仿真器的用途是為程序開發(fā)過程(編輯、編譯、下載、調(diào)試)節(jié)省時間,不用頻繁為EPROM進行插拔、擦除、燒寫、校驗等重復性耗時操作。使用ROM仿真器,可將生成程序用ROM仿真器下載到目標系統(tǒng),運行它,并根據(jù)運行結果對主機程序進行修改,再下載,再運行,以至循環(huán)。主機ROM仿真器目標系統(tǒng)用于代替系統(tǒng)ROM簡單嵌入式接頭串/并/LAN3.3.2ROM仿真器的組成
ROM仿真器包括以下元件:用于匹配目標系統(tǒng)ROM芯片接口的電纜和插座;用于代替目標系統(tǒng)中ROM的快速RAM;本地控制處理器;連接到主機的通信端口;附加特性,如跟蹤存儲器、閃存編程算法等。3.3.3ROM仿真器的功能(1)縮短調(diào)試周期。燒寫一個大的EPROM芯片有時長達幾個小時。(2)靈活設置斷點。EPROM中的程序往往是“干凈”的程序,不含調(diào)試信息,ROM仿真器實際上是RAM,可以在其中嵌入調(diào)試信息,從而輕松設置斷點。(3)仿真多種接口。有時目標機的通信端口不夠用,ROM仿真器通過建立到主機的虛擬UART端口解決問題。注意:ROM仿真器不是開發(fā)嵌入式系統(tǒng)必需的設備,如果目標系統(tǒng)有JTAG/BDM端口,或目標系統(tǒng)的調(diào)試采用monitor方式,則不需要。3.4在線仿真ICE3.4.1概述在線仿真是最直接的仿真調(diào)試方法。ICE提供自己的CPU和MEM,不再依賴目標系統(tǒng)的CPU和MEM。電纜或特殊的連接器使ICE的CPU能代替目標系統(tǒng)的CPU。ICE的CPU一般與目標CPU相同。ICE和目標系統(tǒng)通過連接器組合在一起,這個系統(tǒng)在調(diào)試時使用ICE的CPU和MEM、目標板上的I/O接口。完成調(diào)試之后,再使用目標板上的CPU和MEM實時運行應用程序。目標系統(tǒng)程序駐留在目標內(nèi)存中,而調(diào)試代理存放在ICE的MEM中。當處于正常運行狀態(tài)時,ICE處理器從目標內(nèi)存讀取指令。當調(diào)試代理控制目標系統(tǒng)時,ICE從自己的本地MEM中讀取指令。這種設計確保ICE始終保持對系統(tǒng)運行的控制,甚至在目標系統(tǒng)崩潰后也是如此,保護調(diào)試代理不受目標系統(tǒng)錯誤的破壞。3.4.2實時跟蹤功能當仿真器連接到目標系統(tǒng)上后,得到實時跟蹤信息是一件很容易的事。只需將仿真器連接到所需處理器的三總線(地址總線、數(shù)據(jù)總線、控制/狀態(tài)總線)上即可。3.4.3連接方法
ICE的連接器與目標系統(tǒng)的處理器引腳完全對應,ICE與目標系統(tǒng)完成連接后,ICE中的處理器代替了目標系統(tǒng)的處理器,因此,ICE的控制電路必須要插入到CPU引腳與目標系統(tǒng)之間,連接如下:(1)直接連接(適用于ICE的插座能很容易地插入目標系統(tǒng))如常用的MCS-51單片機的開發(fā)模式。其插座引腳設計與微處理器的引腳設計相匹配,實現(xiàn)輕松替換,方法是將目標系統(tǒng)上的CPU拔掉,插上ICE的仿真頭。(2)間接連接(適用于ICE的插座不能很輕易地插入目標系統(tǒng))其原理就是不拔走目標系統(tǒng)的CPU,但使其所有引腳變成開路狀態(tài)(三態(tài))。某些處理器具有專用輸入引腳,能使其進入關閉狀態(tài)。調(diào)試人員就可以把帶有仿真器信號的連接器作為覆蓋物插入到目標系統(tǒng)中。3.4.4優(yōu)缺點優(yōu)點是具有實時跟蹤能力,缺點是價格較高,特別是高速CPU在線仿真器。一般用于中低速系統(tǒng)中,如單片機仿真器。3.5BDMBDM(BackgroundDebugModel,背景調(diào)試模式)是Motorola公司的專有調(diào)試接口,該公司是第一個把具有CPU調(diào)試功能的特殊硬件放在CPU核心中的嵌入式微處理器廠商,BDM開創(chuàng)了片上集成調(diào)試資源的趨勢。硬件設計僅僅需要把CPU的調(diào)試引腳連接到專用連接器(n-wire或Wiggler)與調(diào)試工具上。n-wire優(yōu)點:機械連接較簡單,與目標系統(tǒng)上的CPU一起運行,與CPU的變化無關,簡化設計工具,低成本、可重用、簡單;n-wire缺點:大多數(shù)只提供運行控制,特性受限于芯片廠商,非常慢,不支持覆蓋內(nèi)存,不能訪問其它總線。BDM首先在Motorola公司的683XX系統(tǒng)上實現(xiàn),使用在ColdFire系列處理器中。它包括一個安裝在目標處理器板上的26針連接器。BDM調(diào)試接口的引腳輸出表如圖。RESERVED12BREAKPOINTGND34DSCLKGND56RESERVEDRESET78DSI+5V910DSOGND1112PST3PST21314PST1PST01516DDATA3DDATA21718DDATA1DDATA01920GNDRESERVED2122RESERVEDGND2324CLK_CPUVcc_CPU2526TEABDM同時支持處理器控制和定時跟蹤監(jiān)視方式。4個二進制位DDATA0~DDATA3用于輸入調(diào)試數(shù)據(jù)和控制命令;4個二進制位PST0~PST3用于在處理器運行時輸出處理器狀態(tài);通過分析來自BDM接口的信息流可以為開發(fā)人員提供關于處理器核心運行狀態(tài)的重要信息。BDM中的命令是BDM直接發(fā)送到CPU,并且其操作獨立于任何用戶想要執(zhí)行的代碼(處理器指令系統(tǒng)中的代碼)。以下是BDM命令集。
注: 終止——為執(zhí)行此命令,CPU必須終止運行; 周期竊取——命令產(chǎn)生一個總線周期,把它插入到CPU訪問周期中; 并行——命令與CPU活動并行執(zhí)行。命令助記符描述對CPU影響ReadA/DRegisterRAREG/RDREG讀選擇的處理器并通過串行BDM接口返回結果終止WriteA/DRegisterWAREG/WDREG通過串行BDM接口把操作數(shù)寫到特殊地址或數(shù)據(jù)寄存器終止ReadMemoryLocationREAD在長地址指定的內(nèi)存地址讀指定字長的數(shù)據(jù)周期竊取WriteMemoryLocationWRITE在長地址指定的內(nèi)存地址寫指定字長的數(shù)據(jù)周期竊取DumpMemoryBlockDUMP結合READ命令,轉儲大塊內(nèi)存周期竊取FillMemoryBlockFILL結合WRITE命令,填充大塊內(nèi)存周期竊取ResumeExecutionGO在恢復程序計數(shù)器當前值對應的指令前刷新并填充指令流周期竊取NoOperationNOP執(zhí)行空操作并行ReadControlRegisterRCREG讀控制寄存器終止WriteControlRegisterWCREG寫控制寄存器終止WriteDebugModuleRegisterWDMREG寫調(diào)試模塊寄存器終止3.6JTAG從使用上看,JTAG(JointTestActionGroup,聯(lián)合測試行動小組)與BDM類似,支持JTAG調(diào)試的處理器上集成了符合JTAG協(xié)議的硬件調(diào)試接口。JTAG仿真器包括硬件和軟件兩部分。硬件有兩個接口,一個接口連接到計算機上,有串口、并口、網(wǎng)絡口、USB口等;另一個接口與目標處理器的JTAG引腳相連。軟件把調(diào)試命令和數(shù)據(jù)通過仿真器發(fā)送到目標處理器中,然后接收目標處理器的狀態(tài)信息。通過分析狀態(tài)信息,可以了解目標處理器的工作情況;通過JTAG命令,用戶可以控制目標處理器的運行(單步、斷點、寄存器檢查等)。與BDM數(shù)據(jù)傳輸?shù)牟⑿蟹绞讲煌?,JTAG采用串行方式傳輸數(shù)據(jù),占用較少的引腳。JTAG是一種國際標準測試協(xié)議(IEEE1149.1兼容),不同于BDM,JTAG接口是一個開放標準?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。JTAG最初是用來對芯片進行測試的,基本原理是在器件內(nèi)部定義一個TAP(TestAccessPort,測試訪問口),通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試?,F(xiàn)在,JTAG接口還常用于實現(xiàn)ISP(In-SystemProgrammable,在線編程),對FLASH等器件進行編程。JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進行預編程再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZTSS 0002-2024 同山燒酒評價規(guī)范
- T-ZJSEIA 007-2024 產(chǎn)品碳足跡評價技術規(guī)范光伏組件
- 二零二五年度健康產(chǎn)業(yè)商家入駐戰(zhàn)略合作協(xié)議
- 2025年度離婚財產(chǎn)分割與子女財產(chǎn)繼承協(xié)議
- 二零二五年度個人之間房產(chǎn)交易保密協(xié)議
- 二零二五年度按揭房屋借款協(xié)議書(公積金貸款)
- 2025年度籃球運動員轉會合同解除條件
- 二零二五年度超市租賃合同書:超市租賃及綠色環(huán)保產(chǎn)品合作協(xié)議
- 二零二五年度智能交通投資暗股協(xié)議
- 2025年度職業(yè)電競選手私教訓練協(xié)議
- 2024年天津市專業(yè)技術人員繼續(xù)教育網(wǎng)公需課答案
- 重度哮喘診斷與處理中國專家共識(2024版)解讀
- 社會變革中的民事訴訟讀書筆記
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀課件
- 2024年全國體育單招英語考卷和答案
- 河北省邯鄲市磁縣2024屆中考數(shù)學模試卷含解析
- 2024上海市高三英語一模各區(qū)《完形填空》分類匯編
- 2020-2024年安徽省初中學業(yè)水平考試中考歷史試卷(5年真題+答案解析)
- 企業(yè)解散清算公告模板
- 2024年江蘇農(nóng)牧科技職業(yè)學院單招職業(yè)適應性測試題庫帶答案
- GB/T 43977-2024電子氣體八氟環(huán)丁烷
評論
0/150
提交評論