【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論_第1頁
【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論_第2頁
【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論_第3頁
【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論_第4頁
【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

【畢業(yè)學(xué)位論文】基于DCC和JTAG的ARM硬件仿真調(diào)試器的研究與實現(xiàn)-計算機軟件與理論.pdf 免費下載

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

文檔簡介

成都理工大學(xué)碩士學(xué)位論文基于志剛申請學(xué)位級別:碩士專業(yè):計算機軟件與理論指導(dǎo)教師:洪志全20080501摘要基于志剛,男,1982年10月生,師從成都理工大學(xué)洪志全教授,2008年6月畢業(yè)于成都理工大學(xué)計算機軟件與理論專業(yè),獲得工學(xué)碩士學(xué)位。摘要嵌入式系統(tǒng)開發(fā)是當今計算機軟件發(fā)展的一個熱點。嵌入式系統(tǒng)調(diào)試器是進行嵌入式開發(fā)的關(guān)鍵工具,常用于對嵌入式軟件的調(diào)試和測試。嵌入式系統(tǒng)調(diào)試器由交叉調(diào)試器和調(diào)試代理組成,其特點在于交叉調(diào)試器和調(diào)試目標的運行環(huán)境相互分離,依賴調(diào)試代理來實現(xiàn)其調(diào)試會話。隨著嵌入式硬件技術(shù)的發(fā)展,嵌入式應(yīng)用的不斷增長以及嵌入式系統(tǒng)復(fù)雜性不斷提高,要求嵌入式軟件的規(guī)模和復(fù)雜性也不斷提高,嵌入式軟件的質(zhì)量和開發(fā)周期對產(chǎn)品的最終質(zhì)量和上市時間起到?jīng)Q定性的影響,嵌入式軟件調(diào)試工具的效率成為了人們關(guān)注的重點。 本文詳細介紹了基于硬件仿真調(diào)試器除了具有下載、斷點、單步運行、連續(xù)運行、讀寫內(nèi)存區(qū)域和對寄存器操作等基本調(diào)試功能外,還有通過使能進行快速對目標機內(nèi)存讀寫的功能。因為讀寫內(nèi)存是調(diào)試過程中最常用的功能,這樣就大大地提高了調(diào)試的效率。文中,首先對嵌入式系統(tǒng)開發(fā)和嵌入式調(diào)試器進行了全面的介紹。然后對當前嵌入式調(diào)試中應(yīng)用最為廣泛的著對刪片上調(diào)試原理進行了深入分析。最后,深入闡述了現(xiàn)和測試過程。本硬件仿真器在設(shè)計過程中有兩大特色:一是在進行大量數(shù)據(jù)的內(nèi)存讀寫時,采用了樣大大提高了調(diào)試器的內(nèi)存讀寫速度;二是在保護或恢復(fù)上下文時(內(nèi)核寄存器),采用了批量數(shù)據(jù)存儲指令,這樣極大地加快了停止和恢復(fù)運行的時間。關(guān)鍵詞:硬件仿真; 調(diào)試器; 刪;!蘭! 一一M G of 982,e 1111008is a hl me of s a ls to 鋤ot a on me on of of of me on r ,s吡ms me CC 7Iof so on,by CC me in is me 1AG is me of t 耐ms fe we of s of ve of 1野僻G;我所知,除了文中特別加以標注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得盛壑堡王盔堂或其他教育機構(gòu)的學(xué)位或證書而使用過的材料。與我一同工作的同志對本研究所做的任何貢獻均已在論文中作了明確的說明并表示謝意。靴做儲鸛川拇 用學(xué)位論文的規(guī)定,有權(quán)保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和磁盤,允許論文被查閱和借閱。本人授權(quán)盛壑堡王太堂可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存、匯編學(xué)位論文。(保密的學(xué)位論文在解密后適用本授權(quán)書)學(xué)位論文作者簽名:哩匆學(xué)位論文作者導(dǎo)師簽名: 月 夕口日第1章引言11嵌入式系統(tǒng)概述第1章引 言隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計算機技術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當前研究和應(yīng)用的熱點。通信、計算機、消費電子技術(shù)(3C)合一的趨勢正在逐步形成,無所不在的網(wǎng)絡(luò)和無所不在的計算(在將人類帶入一個嶄新的信息社會。111嵌入式系統(tǒng)嵌入式系統(tǒng)是現(xiàn)代科學(xué)的多學(xué)科互相融合的以應(yīng)用技術(shù)產(chǎn)品為核心,以計算機技術(shù)為基礎(chǔ),以通信技術(shù)為載體,以消費類產(chǎn)品為對象,引入各類傳感器加入,進入適應(yīng)應(yīng)用環(huán)境的專用系統(tǒng)。嵌入式系統(tǒng)最典型的特點是與人們的日常生活緊密相關(guān),任何一個普通人都可能擁有各類形形色色運用了嵌入式技術(shù)的電子產(chǎn)品,小到到信息家電、智能電器、車載種新型嵌入式設(shè)備在數(shù)量上已經(jīng)遠遠超過了通用計算機。一般認為,嵌入式系統(tǒng)的體系結(jié)構(gòu)可以分為四部分:嵌入式處理器、嵌入式外圍設(shè)備、嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件。1111嵌入式處理器嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器,它將通用而有利于嵌入式系統(tǒng)在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。嵌入式處理器的體系結(jié)構(gòu)經(jīng)歷了從數(shù)則由4位、8位、16位、32位逐步發(fā)展到64位。目前常用的嵌入式處理器可分為低端的嵌入式微控制器(111中高端的嵌入式微處理器(用于計算機通信領(lǐng)域的嵌入式高度集成的嵌入式片上系統(tǒng)(on 目前幾乎每個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,并且越來越多的公司開始擁有自主的處理器設(shè)計部門,據(jù)不完全統(tǒng)計,全世界嵌入式處理器已經(jīng)超過1000多種,流行的體系結(jié)構(gòu)有30多個系列,其中以刪、都理工大學(xué)碩士學(xué)位論文112嵌入式外圍設(shè)備在嵌入系統(tǒng)硬件系統(tǒng)中,除了中心控制部件(外,用于完成存儲、通信、調(diào)試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設(shè)備。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲設(shè)備(如通信設(shè)備(如32接口、顯示設(shè)備(如類。1113嵌入式操作系統(tǒng)為了使嵌入式系統(tǒng)的開發(fā)更加方便和快捷,需要有專門負責管理存儲器分配、中斷處理、任務(wù)調(diào)度等功能的軟件模塊,這就是嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)是用來支持嵌入式應(yīng)用的系統(tǒng)軟件,是嵌入式系統(tǒng)極為重要的組成部分。嵌入式操作系統(tǒng)根據(jù)應(yīng)用場合可以分為兩大類:一類是面向消費電子產(chǎn)品的非實時系統(tǒng),這類設(shè)備包括個人數(shù)字助理(移動電話、機頂盒(;另一類則是面向控制、通信、醫(yī)療等領(lǐng)域的實時操作系統(tǒng),如晰銀京成的等。實時系統(tǒng)(一種能夠在指定或者確定時間內(nèi)完成系統(tǒng)功能,并且對外部和內(nèi)部事件在同步或者異步時間內(nèi)能做出及時響應(yīng)的系統(tǒng)。1114嵌入式應(yīng)用軟件嵌入式應(yīng)用軟件是針對特定應(yīng)用領(lǐng)域,基于某一固定的硬件平臺,用來達到用戶預(yù)期目標的計算機軟件。由于用戶任務(wù)可能有時間和精度上的要求,因此有些嵌入式應(yīng)用軟件需要特定嵌入式操作系統(tǒng)的支持。112嵌入式系統(tǒng)開發(fā)1121嵌入式系統(tǒng)開發(fā)流程在嵌入式系統(tǒng)的應(yīng)用開發(fā)中,整個系統(tǒng)的簡要開發(fā)流程如圖11。2第1章引言, 、( 開始 ) ,選擇嵌入式處理器(硬件平臺)是系統(tǒng)測試, 、( 結(jié)束 ) 圖卜1嵌入式系統(tǒng)的開發(fā)過程圖由圖11中可以看出,嵌入式系統(tǒng)的開發(fā)分為以下三個階段:(1)硬件系統(tǒng)的開發(fā),即根據(jù)需求和實際情況選擇嵌入式處理器平臺,相關(guān)外圍設(shè)備,確定系統(tǒng)硬件平臺。(2)底層系統(tǒng)開發(fā),根據(jù)需求和實際情況進行板級支持包(開發(fā)和操作系統(tǒng)的移植、以及驅(qū)動和定軟件平臺。(3)上層應(yīng)用開發(fā),如控軟件等。嵌入式系統(tǒng)發(fā)展到今天,對應(yīng)于各種微處理器的硬件平臺一般都是通用的、固定的、成熟的,這就大大減少了由硬件系統(tǒng)引入錯誤的機會。嵌入式系統(tǒng)的開發(fā)者現(xiàn)在已經(jīng)從反復(fù)進行硬件平臺設(shè)計的過程中解脫出來,從而可以將主要精力放在滿足特定的需求的嵌入式軟件的開發(fā)上。1122嵌入式系統(tǒng)軟件開發(fā)(1)底層系統(tǒng)開發(fā)對于嵌入式系統(tǒng)底層軟件的開發(fā),難度相對較大,需要了解相關(guān)的硬件平臺和底層開發(fā)的特性。底層系統(tǒng)的開發(fā)一般包括作系統(tǒng)內(nèi)核的移植或裁減和設(shè)備驅(qū)動程序的開發(fā)等等。成都理工大學(xué)碩士學(xué)位論文作為一個嵌入式軟件底層開發(fā)人員,最重要的就是要了解硬件平臺的特性。一般來說,選定的硬件平臺往往就是一個關(guān)于某個處理器平臺的成形開發(fā)板。拿到手里之后,嵌入式軟件開發(fā)人員至少要了解開發(fā)板的電路布局以及處理器等的工作特性,才可能進行操作系統(tǒng)的移植或者驅(qū)動程序的開發(fā)。在了解硬件平臺的特性后,需要弄清底層開發(fā)的特性。例如在移植要了解硬件相關(guān)的文件主要都在錄下面,每種不同的處理器和開發(fā)板都有單獨的配置文件。每一個開發(fā)板所具有的不同特性主要在于內(nèi)存芯片的類型以及在處理器看來的物理地址分配等,還有板上的外接設(shè)備的連接方式導(dǎo)致的訪問方式的不同。每一個不同的處理器,則具有更多的復(fù)雜特性,包括芯片初始化方式、中斷處理方式、引腳對應(yīng)功能等等,需要仔細研究處理器的參考手冊,才能進行內(nèi)核的移植工作。除此以外,直接編寫控制程序,或者在移植的操作系統(tǒng)上開發(fā)驅(qū)動程序或需要在了解硬件設(shè)備的工作特性的基礎(chǔ)上,根據(jù)編寫相應(yīng)底層程序的方法、框架進行開發(fā)。由于這部分工作的比較繁瑣、復(fù)雜,這種底層開發(fā)大多數(shù)都是由此開發(fā)板的供應(yīng)商來完成。實際開發(fā)中,用戶一般只需要對操作系統(tǒng)的內(nèi)核(如使用嵌入式系統(tǒng))進行配置裁減,就可得到適合的嵌入式操作系統(tǒng)。配置裁減內(nèi)核相對簡單一些,但是也要求開發(fā)人員精通內(nèi)核原理和體系結(jié)構(gòu)。(2)應(yīng)用軟件的開發(fā)嵌入式系統(tǒng)的應(yīng)用軟件開發(fā),通常是在已經(jīng)準備好的底層系統(tǒng)環(huán)境之上,開發(fā)特定的應(yīng)用軟件。假如底層系統(tǒng)是配置好了的嵌入式系統(tǒng),嵌入式應(yīng)用開發(fā)者就可以在某個嵌入式開發(fā)環(huán)境中采用用完成特定功能的實現(xiàn)。由于嵌入式屏蔽了底層硬件的復(fù)雜性,使得開發(fā)者通過操作系統(tǒng)提供的此大大簡化了開發(fā)過程,提高了系統(tǒng)的穩(wěn)定性。所以嵌入式應(yīng)用軟件的開發(fā),主要精力可以集中在應(yīng)用軟件具體的程序流程上面,而不用太過于關(guān)心開發(fā)板的底層實現(xiàn)。一般來說,應(yīng)用軟件的開發(fā)是在某個嵌入式應(yīng)用軟件開發(fā)平臺上來完成的,從而使得這個嵌入式系統(tǒng)能夠具有某種特定的功能,進而滿足市場需求。(3)嵌入式軟件開發(fā)環(huán)境無論是嵌入式底層系統(tǒng)的開發(fā),還是嵌入式應(yīng)用軟件的開發(fā),都離不開良好的嵌入式系統(tǒng)開發(fā)環(huán)境的支持。由于嵌入式系統(tǒng)受資源限制,不可能附帶龐大、復(fù)雜的開發(fā)環(huán)境,因此嵌入式系統(tǒng)軟件的開發(fā)環(huán)境和運行環(huán)境往往互相分離,采4第1章引言用宿主機目標機模式。宿主機(常是一臺通用計算機(如是嵌入式系統(tǒng)軟件的開發(fā)平臺。宿主機的軟硬件資源比較豐富,不但包括功能強大的操作系統(tǒng)(如),而且還有各種各樣優(yōu)秀的開發(fā)工具(如、銀京成的+等),能夠大大提高嵌入式應(yīng)用軟件的開發(fā)速度和效率。目標機(嵌入式系統(tǒng)的硬件平臺,嵌入式系統(tǒng)軟件在其中運行。宿主機通過串口、網(wǎng)絡(luò)接口或特殊的硬件調(diào)試接口與目標機通信,從而完成嵌入式軟件的開發(fā)過程,一般步驟如下:1)在宿主機上建立開發(fā)環(huán)境,進行程序的編碼和交叉編譯以生成目標平臺上可以運行的二進制代碼;2)下載程序到開發(fā)板(目標機)上;3)進行交叉調(diào)試;4)將程序固化到開發(fā)板中,并實際運行。其中,步驟2)和步驟3)比較復(fù)雜。對于步驟2),下載個平臺各不相同(如以通過而下載個載應(yīng)用程序的方式又是根據(jù)操作系統(tǒng)所提供的方式來實現(xiàn)的,是網(wǎng)絡(luò)方式還是串口方式,通訊協(xié)議又是哪種,都無法確定。對于步驟3)的交叉調(diào)試,將在12節(jié)中簡要介紹。12嵌入式系統(tǒng)調(diào)試器概述調(diào)試(是跟蹤程序中的錯誤并加以改正的過程。用于調(diào)試程序的工具就是調(diào)試器。許多的編程實踐,都是從描述問題邏輯和設(shè)計所需的數(shù)據(jù)結(jié)構(gòu)開始,進而是劃分和組織軟件模塊,最后才著手實現(xiàn),這樣做有助于減少錯誤和潛在的問題。這也是軟件設(shè)計與軟件工程所存在的價值,一個上百行的程序都應(yīng)該經(jīng)過仔細分析和周密設(shè)計,而不是等到這個程序?qū)⒁\行時才來修改。然而,程序員畢竟是人,編程錯誤終究難以避免,即使是經(jīng)過良好設(shè)計和良好實現(xiàn)的程序也偶爾會出錯。當程序在某處出錯而又無法斷定為什么出錯時,一個行之有效的方法就是用調(diào)試器調(diào)試代碼,運行并觀察該程序在哪里發(fā)生了錯誤。因此,調(diào)試是開發(fā)過程中必不可少的環(huán)節(jié)。成都理工大學(xué)碩士學(xué)位論文121嵌入式系統(tǒng)調(diào)試器根據(jù)調(diào)試器和被調(diào)試程序的運行環(huán)境,軟件調(diào)試可分為兩種方式:一種是本地調(diào)試(這種情況下調(diào)試器與被調(diào)試的程序往往是運行在同一臺機器、相同的操作系統(tǒng)上的兩個進程,調(diào)試器進程通過操作系統(tǒng)專門提供的調(diào)用接口控制、訪問被調(diào)試進程;另一種是交叉調(diào)試(這種情況下調(diào)試器運行在開發(fā)主機上,而被調(diào)試程序則運行在目標機上。交叉調(diào)試常常又稱為遠程調(diào)試(一般用在嵌入式系統(tǒng)的軟件開發(fā)中。用于交叉調(diào)試的調(diào)試器叫做交叉調(diào)試器。進行交叉調(diào)試時,開發(fā)主機上的交叉調(diào)試器以某種方式控制目標機上被調(diào)試程序的運行方式,并具有查看和修改目標機上內(nèi)存單元、寄存器以及被調(diào)試進程中變量值等各種調(diào)試功能。而提供這種控制功能的就是目標機中稱為調(diào)試代理的模塊,它負責與交叉調(diào)試器共同配合以完成對目標機上運行著的進程的調(diào)試。一般地,將交叉調(diào)試器和調(diào)試代理一起稱為嵌入式系統(tǒng)調(diào)試器。122嵌入式系統(tǒng)調(diào)試器的分類從調(diào)試代理的技術(shù)實現(xiàn)途徑及其應(yīng)用兩個角度,可以將嵌入式系統(tǒng)調(diào)試器分為硬件調(diào)試器、軟件調(diào)試器和模擬調(diào)試器等3類。硬件調(diào)試器與軟件調(diào)試器在很多方面存在很大的差別。硬件調(diào)試器通常適用于嵌入式底層系統(tǒng)的開發(fā)。例如,在一塊嵌入式開發(fā)板上實現(xiàn)一個將進行硬件調(diào)試時,宿主機和目標機之間一般是通過特殊的硬件調(diào)試接口來連接的。軟件調(diào)試器通常適用于嵌入式應(yīng)用軟件的開發(fā),但也可進行嵌入式底層系統(tǒng)的開發(fā)。在進行軟件調(diào)試時,一般使用串口和網(wǎng)絡(luò)接口來連接宿主機和目標機,調(diào)試會話還必須得到目標機上系統(tǒng)軟件環(huán)境的支持,包括內(nèi)核、交叉編譯器、庫程序、端仿真程序等等。1221硬件調(diào)試器(1)在線仿真器(in是功能最強大的調(diào)試器之一。代替了目標機上物理的處理器或表現(xiàn)與被代替的目標機處理器完全一樣,但是他允許用戶查看處理器內(nèi)部的數(shù)據(jù)或代碼并控制51。一個在線仿真器通常由仿真探頭和仿真器主板組成。仿真探頭通過一條電纜與仿真器主板相連,里面包含了一顆與被6第1章引言代替的是為了調(diào)試的目的經(jīng)過了特殊處理。由于戶通常要將目標機上的處理器拔出,然后將入目標機的真器主板提供了斷點、復(fù)雜斷點、觸發(fā)(實時跟蹤(重疊洲和影子通過串口(現(xiàn)在出現(xiàn)了接開發(fā)宿主機上。其中,實時跟蹤是可以在不占用運行時鐘周期的情況下獲得程序的執(zhí)行情況,具有非干擾性(特點。特別是在強實時系統(tǒng)中,由于無法使用斷點,因此實時跟蹤就成了唯一有用的調(diào)試方式。因此在實時系統(tǒng)的調(diào)試中,往往需要使用管是存在通用性不強與價格昂貴的缺陷,使得2)片上調(diào)試器(on于現(xiàn)代的處理器封裝越來越表貼化,仿真器探頭的實現(xiàn)也越來越困難。另外,根據(jù)統(tǒng)計:在大約95的調(diào)試過程中,用戶僅僅使用了簡單斷點、單步以及訪問處理器資源、內(nèi)存和外設(shè)等一些運行控制方面的基本調(diào)試手段。因此,一個很自然的發(fā)展趨勢就是將實時跟蹤和運行控制分開,將運行控制放到目標機系統(tǒng)的PU 由一個專門的調(diào)試控制邏輯模塊來實現(xiàn),并用一個專用的串行信號接口開放給用戶,用戶可以通過續(xù)訪問目標機上的各種資源。這種放棄實時跟蹤功能,但是提供了大多數(shù)是片上調(diào)試器【251。在了實現(xiàn)主機與目標機處理器的片上調(diào)試邏輯之間的連接,可以用一塊簡單的信號轉(zhuǎn)換電路板來匹配主機通信接口和目標機塊信號轉(zhuǎn)換電路板稱為“片上調(diào)試器”或“串行調(diào)試器,信號轉(zhuǎn)換只是它的一個最基本的功能,而其它高級功能的實現(xiàn)由各個廠商在其發(fā)布的片上調(diào)試器產(chǎn)品中完成。摩托羅拉公司最早認識到率先在683X)【和68試接口,并將其用于它的I、準的串行調(diào)試接口【251。與其是已成為了正1990【11。具有試數(shù)據(jù)輸入(測試數(shù)據(jù)輸出(測試時鐘(測試模式選擇引腳(有的還加了一個異步測試復(fù)位引腳(其片上調(diào)試邏輯包括3個主要模塊:測試訪問端口令寄存器、數(shù)據(jù)寄存器。雖然夠調(diào)試7成都理工大學(xué)碩士學(xué)位論文沒有外部總線的芯片,代價也非常小,但是由于度比較慢,只能進行軟件斷點級別的調(diào)試,自身還不能完成實時跟蹤和多種事件觸發(fā)等復(fù)雜調(diào)試功能。因此便有了幾種功能更為完善的增強版本。例如刪推出了采用基于時監(jiān)控、實時跟蹤(包括嵌入跟蹤微核、跟蹤分析儀、跟蹤調(diào)試軟件3個部分)3個增強的輔助片上調(diào)試硬件來完成實時調(diào)試。1222軟件調(diào)試器(1)可以在開發(fā)過程中輔助測試與調(diào)試用戶所編寫的嵌入式程序。采用主機的調(diào)試器通過遠程調(diào)試協(xié)議與目標機上的處理器復(fù)位時,執(zhí)行完一些必要的初始化后,建立調(diào)試會話。標機內(nèi)存和寄存器的讀寫、設(shè)置簡單斷點以及單步運行等功能。一些高級的系統(tǒng)分析(及設(shè)置各種非常復(fù)雜的斷點等功能。(2)調(diào)試樁和調(diào)試服務(wù)器調(diào)試樁(調(diào)試服務(wù)器(se是一小段駐留在目標機上的代碼。采用這種調(diào)試方式進行交叉調(diào)試也需要在目標機上運行調(diào)試樁(或調(diào)試服務(wù)器)和被調(diào)試程序,宿主機的調(diào)試器和目標機的調(diào)試樁(或調(diào)試服務(wù)器)也使用遠程調(diào)試協(xié)議進行連接。與oM 統(tǒng)復(fù)位時首先被執(zhí)行,然后下載被調(diào)試程序進行調(diào)試;而調(diào)試樁和調(diào)試服務(wù)器不是固化在目標機上的,需要先通過某種工具將它們下載到目標機中。由于調(diào)試樁往往是被設(shè)計用來獨立運行于目標板上的,不需要系統(tǒng)軟件環(huán)境的支持,因此它必須與被調(diào)試程序編譯、連接在一起運行,一般用于底層系統(tǒng)軟件的調(diào)試;而調(diào)試服務(wù)器通常作為目標機系統(tǒng)上的一個應(yīng)用程序運行,一般用于應(yīng)用軟件的調(diào)試。以典型的使用要使用使用要使用試樁或調(diào)試服務(wù)器的職責就是在目標機上實現(xiàn)由宿主8第1章引言機上的調(diào)試器發(fā)送過來的調(diào)試命令,如讀寫內(nèi)存、讀寫寄存器、設(shè)置斷點以及運行被調(diào)試程序,并將結(jié)果返回,以配合宿主機的調(diào)試器完成調(diào)試【37】。1223模擬調(diào)試器通常使用的它相當于在宿主機上虛擬了一臺目標機。該目標機可以是和宿主機的7】。利用指令集模擬器進行的交叉調(diào)試是一種完全軟件模擬的調(diào)試方法,根本不需要目標板的支持,就連I實際上軟件模擬的結(jié)果有時與真實板卡還是有一些差別,硬件的信號、延遲以及對資源的競爭用純軟件的方法根本無法模擬。由于指令集模擬器不需要開發(fā)板卡的支持,因此適合于嵌入式系統(tǒng)開發(fā)的初級階段,硬件板卡不是批量生產(chǎn),數(shù)量十分有限。指令集模擬器也適合于應(yīng)用程序的調(diào)試,因為應(yīng)用程序與硬件和外圍設(shè)備關(guān)系不是很大。雖然指令模擬器功能有限,但是采用的軟件模擬的方法,節(jié)省了嵌入式系統(tǒng)開發(fā)的成本。13本文研究目標在12節(jié)中,我們對目前常用的嵌入式交叉調(diào)試方式都做了簡單的介紹,對每一種方式的實現(xiàn)原理有了比較清楚的認識:軟件仿真方式使用起來簡便、靈活,對硬件依賴程度小。這樣在沒有目標機硬件的情況下也能夠開發(fā)調(diào)試嵌入式應(yīng)用軟件,實現(xiàn)了軟件和硬件同步開發(fā),能夠有效縮短產(chǎn)品開發(fā)周期。但是由于其純軟件實現(xiàn)的特點,決定了它的強項在于功能仿真,而對嵌入式軟件要求較高的實時性這點就難以保證了。所以,嵌入式軟件開發(fā)最終還是要回到真實的交叉環(huán)境中來。存儲監(jiān)控調(diào)試是最常見的也是最經(jīng)濟的一種交叉調(diào)試方式。建立交叉環(huán)境的過程很簡單,只需將一段存儲監(jiān)控程序移植到目標機,利用目標機的硬件(串口、并口、宿主機調(diào)試器通訊,就可以完成各種調(diào)試功能。但是同樣是純軟件實現(xiàn)的監(jiān)控程序存在對被調(diào)試程序的影響,最主要缺點包括占用內(nèi)存和硬件通訊設(shè)備,消耗處理器時間。在線實時仿真器他任何調(diào)試方式都是無法比擬得。但是由于其高昂的價格,在嵌入式軟件開發(fā)調(diào)試領(lǐng)域正在被后起之秀仿真調(diào)試器慢慢超越。仿真調(diào)試器可以完成和在線實時仿真器相似的調(diào)試功能,但是其成本卻低得多。加上眾多嵌入式處理器設(shè)計生產(chǎn)廠商真調(diào)試器會是今后的一個熱點。 因此,本課題研究的目標為:利用刪處理器上自帶的發(fā)一個高效的刪硬件仿真調(diào)試器。基于上述目標,本課題主要研究以下幾項內(nèi)容:(1)利用止、運行、單步、設(shè)置斷點等);(2)利用3)利用4)利用刪的存器)保護;(5)利用刪的存器)恢復(fù)。14本文章節(jié)安排第2章深入分析了3章深入分析了4章詳細描述了基于行方式、模塊間接口等部分的設(shè)計思路和實現(xiàn)方法;第5章簡單介紹了后是對本文進行的總結(jié);最后是參考文獻和致謝。隨著信息技術(shù)日新月異的發(fā)展,電子設(shè)計和嵌入式軟件開發(fā)領(lǐng)域?qū)I(yè)硬件測試標準的呼聲越來越高。在這樣的背景下,聯(lián)合測試行動組(80年代后期正是起草了邊界掃描測試(范,于1990年正式成為1491工業(yè)標準,簡稱界掃描測試技術(shù)目前已經(jīng)廣泛應(yīng)用在電子線路設(shè)計和軟件開發(fā)領(lǐng)域。目前生產(chǎn)的多數(shù)大規(guī)模集成電路(包括提供了1 1 出端口增加邊界掃描單元(獲端口信息【11。每個個數(shù)據(jù)通道用于正常的數(shù)據(jù)輸入和輸出,包括ta 另一個數(shù)據(jù)通道用于邊界掃描測試,包括data 典型的邊界掃描實現(xiàn)方式如圖21所示。圖21 入的數(shù)據(jù)從后經(jīng)過應(yīng)用邏輯處理后的結(jié)果送往輸出端接經(jīng)邊界掃描狀態(tài)下,輸入端的據(jù)經(jīng)應(yīng)用邏輯處理之后的結(jié)果送往輸出端出端的最簡單的邊界掃描形式下,測試數(shù)據(jù)連續(xù)循環(huán)地通過被測單元所有可掃描成都理工大學(xué)碩士學(xué)位論文的些成被測電路掃描鏈(一組串行連接的換句話說,基本的邊界掃描僅僅確定各邊界掃描器件是連接正確上。如果采用更復(fù)雜的邊界掃描形式,例如,將被測單元的寄存器設(shè)計成可以累計邊界掃描測試數(shù)據(jù)。累計這些數(shù)據(jù)后,被測單元根據(jù)邊界掃描控制器來的串行數(shù)據(jù)和測試命令處理這些數(shù)據(jù)。累計的數(shù)據(jù)能給被測電路提供并行激勵,被測電路的響應(yīng)再被累計,然后通過見,對正常使用的芯片邊界掃描部件是透明的,不會對芯片產(chǎn)生任何影響。在測試或者調(diào)試狀態(tài)下,通過控制時對應(yīng)用邏輯單元進行的測試操作便不會對其他單元造成影響。212 所示。試端口控制器(指令寄存器(瓜括指令譯碼器)和數(shù)據(jù)寄存器(11。括夸寄存鼉圖22邊界掃描測試的內(nèi)部電路結(jié)構(gòu)12第2章)以下5個控制信號:界掃描時鐘,來控制行邊界掃描輸入數(shù)據(jù),所有要輸入到特定寄存器的數(shù)據(jù)都是通過行邊界掃描輸出數(shù)據(jù),所有要從特定寄存器的數(shù)據(jù)都是通過始化),低電平有效,當片進入正常工作狀態(tài),四個信號在標準里是強制要求的,第五個信號在標準里是可選的,通過2)指令寄存器若執(zhí)行數(shù)據(jù)寄存器邊界掃描測試,則指令寄存器負責提供地址和控制信號去選擇某個特定的數(shù)據(jù)寄存器;也可以通過指令寄存器執(zhí)行邊界掃描測試,這時,3)數(shù)據(jù)寄存器須具有的兩個數(shù)據(jù)寄存器是邊界掃描寄存器(旁通寄存器(其它的寄存器是可選的。由指令寄存器選擇某個特定的數(shù)據(jù)寄存器作為邊界掃描測試寄存器,當一個掃描路徑選定后,其它的路徑處于高阻態(tài)。邊界掃描寄存器是由圍繞是由它來實現(xiàn)測試管腳信號的輸入,輸出。旁通寄存器只由一個掃描寄存器位組成,當選擇了旁通寄存器,際上沒有執(zhí)行邊界掃描測試,旁通寄存器的作用是為了縮短掃描路徑而對不需要進行測試的13 以選擇使用指令寄存器掃描或數(shù)據(jù)寄存器掃描,以及控制邊界掃描測試的各個狀態(tài)。刑1。所示。成都理工大學(xué)碩士學(xué)位論文圖23 所示,檢、指令寄存器掃描和數(shù)據(jù)寄存器掃描4部分,共16個狀態(tài)。(1)復(fù)位測試復(fù)位態(tài)(設(shè)備在正常工作的時候,態(tài)機就處于測試復(fù)位態(tài),這時設(shè)備需要進行邊界掃描測試時,在備在上電、2)自檢設(shè)備測試暫停態(tài)(若當前執(zhí)行自檢指令(如,設(shè)備進入此態(tài)之后進行片上系統(tǒng)自檢。該狀態(tài)的另一功能是用于各個邊界掃描操作之間的過渡。在一個邊界掃描操作完成之后,只要3)數(shù)據(jù)寄存器掃描數(shù)據(jù)寄存器選擇態(tài)(R臨時狀態(tài),決定R據(jù)寄存器捕獲態(tài)(R):臨時狀態(tài),在據(jù)可能被并行送入當前指令選擇的測試數(shù)據(jù)寄存器。若當前指令選擇的寄存器不支持數(shù)據(jù)并行輸入或者當前測試項目不需要獲得數(shù)據(jù),那么測試數(shù)據(jù)寄存器的數(shù)據(jù)將保持原有數(shù)據(jù)不變。若R。數(shù)據(jù)寄存器移位態(tài)(R):當前指令選擇的測試數(shù)據(jù)寄存器已經(jīng)放在合使用出操作完成之后,據(jù)寄存器掃描退出態(tài)1(R):臨時狀態(tài),若據(jù)寄存器暫停移位態(tài)(R):暫停數(shù)據(jù)移位操作,維持測試數(shù)據(jù)寄存器不變。若退出該狀態(tài),據(jù)寄存器掃描退出態(tài)2(E)【R):臨時狀態(tài),若據(jù)寄存器更新態(tài)(R):臨時狀態(tài),在過移位過程獲得數(shù)據(jù)被鎖存在測試數(shù)據(jù)寄存器的輸出端口。若刑R4)指令寄存器掃描指令寄存器選擇態(tài)(R臨時狀態(tài),決定e令寄存器捕獲態(tài)(R):臨時狀態(tài),在組固定數(shù)據(jù)可能被并行送入移位寄存器(若態(tài);若m。指令寄存器移位態(tài)(R):移位寄存器(經(jīng)放在合使用出操作完成之后,態(tài)。指令寄存器掃描退出態(tài)1(R):臨時狀態(tài),若令寄存器移位暫停態(tài)():暫停指令移位操作,維持移位寄存器(變。若退出該狀態(tài),令寄存器掃描退出態(tài)2(R):臨時狀態(tài),若都理工大學(xué)碩士學(xué)位論文指令寄存器更新態(tài)(R):臨時狀態(tài),在過移位過程獲得的指令被鎖存在移位寄存器的輸出端口。一旦指令被鎖定,該指令就成為當前的聊R試邏輯復(fù)位(測試等待(數(shù)據(jù)寄存器移位(R)、數(shù)據(jù)寄存器移位暫停(R)、指令寄存器移位(R)、指令寄存器移位暫停(R)。其它狀態(tài)都不是穩(wěn)態(tài),而只是暫態(tài)。在數(shù)據(jù)寄存器掃描過程中所做的操作都不會影響當前指令;同樣,在指令寄存器掃描過程中所做的操作不會影響當前數(shù)據(jù)寄存器。22刪中的試端口制器、指令寄存器(包括指令譯碼器)、數(shù)據(jù)寄存器。在本節(jié)將以刪7)完成對刪內(nèi)核的各條掃描鏈的各種操作,研究成果也可應(yīng)用到刪7和刪9系列的其他處理器上面。221 令寄存器、數(shù)據(jù)寄存器整個邏輯的切換過程可以通過態(tài)機的切換過程可以參照前一節(jié)的過狀態(tài)機的切換,可以在】:旁路寄存器;設(shè)備令寄存器;掃描鏈選擇寄存器:掃描鏈O、1、2、3 。(1)旁路寄存器目的:為提供而實現(xiàn)對設(shè)備的旁路。長度:1位。操作方法:如果B)一個此實現(xiàn)了對設(shè)備的旁路。16第2章)以讀取32位的內(nèi)核設(shè)備度:32位。操作方法:如果把設(shè)備所示。在2位的設(shè)備意,設(shè)備 小O O 1 1 ,11 小 1 1 ,11l 0 O 。I。 O o I o 1 1I一“一 、向噶i r 貓滋茹黼礦圖24 )指令寄存器目的:變換當前的度:4位。操作方法:在將固定的值值在位時,令寄存器就會在后在4)掃描鏈選擇寄存器目的:用來變換處于激活地位的掃描鏈。長度:4位。操作方法:如果

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論