<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 調試嵌入式處理器的幾種常用方法

調試嵌入式處理器的幾種常用方法

作者:(英國ARM公司供稿) 時(shí)間:2004-07-22 來(lái)源: 收藏
調試嵌入式處理器的幾種常用方法

前言
在任何產(chǎn)品設計過(guò)程中,設計人員通常要將相當長(cháng)的一部分時(shí)間,用于系統的集成性和軟硬件調試。在引擎管理、硬盤(pán)控制和調制解調器之類(lèi)的實(shí)時(shí)系統中尤其如此。
嵌入式系統中,由于微處理器嵌于A(yíng)SIC或用戶(hù)芯片的內部,系統調試變得更加困難,因為通常對處理器總線(xiàn)和信號的接入都是有限制的。在多處理器系統中(如硬盤(pán)驅動(dòng)器、尋呼機、手機中常見(jiàn)的控制器-DSP體系結構)更是如此。
本文簡(jiǎn)要回顧了幾種調試處理器系統的常見(jiàn)方法,并介紹了ARM公司新開(kāi)發(fā)的調試方法,即通過(guò)使用電路內仿真器(In Circuit Emulators)、監控程序(Monitor Programs) 和邏輯分析儀(Logic Analysers)解決存在的問(wèn)題。

電路內仿真器(In Circuit Emulators,即 ICE)
ICE由實(shí)時(shí)探測、實(shí)時(shí)追蹤和記憶仿真組成,所有這些集成在一個(gè)統一的用戶(hù)界面上。這能為軟件工程師提供一個(gè)硬件保護層。此外,ICE不需要周?chē)到y全部正常工作后才能調試,因而在軟件開(kāi)發(fā)和硬件開(kāi)發(fā)之間提供了一定程度上的平衡,有利于縮短產(chǎn)品上市時(shí)間。

標準ICE存在的問(wèn)題
●  ICE的眾多接點(diǎn)會(huì )影響目標系統的正常時(shí)序,從而降低其最快速度;
●  ICE的存在使得處理器的更換牽涉到非常復雜的接點(diǎn),更換處理器同時(shí)會(huì )改變原來(lái)的電氣特性,這樣就意味著(zhù)有可能產(chǎn)生很多不可預知的問(wèn)題; 
●  ICE的發(fā)布要落后于處理器,通常在一個(gè)新的處理器出臺后的6-9個(gè)月的時(shí)間才會(huì )有與其配合的ICE;
●  一個(gè)深度嵌入的CPU需要很多的引腳才能將內部信號傳遞到ICE;
●  考慮到ICE所需要的資源,有些處理器的用戶(hù)變量可能不被ICE所支持;
●  ICE的成本可能十分昂貴。

調試監控程序(Debug Monitors)
在目標系統中安裝調試監控程序是ICE外的另一個(gè)選擇,它能為用戶(hù)提供測試和調試軟件所需的許多功能,例如設定斷點(diǎn)、從目標存儲器中上載數據以及下載應用程序等。
這種方法的優(yōu)勢在于開(kāi)發(fā)的軟件可以在同一個(gè)處理器上運行,并且能將硬件與最終系統進(jìn)行整合。而且Debug Monitor價(jià)格低廉,能幫助節約系統開(kāi)發(fā)成本。另一方面,目標系統的ROM中必須存有一個(gè)監控程序,這是一個(gè)很大的問(wèn)題,因為它必須從最終產(chǎn)品中撤除,否則就會(huì )增加額外的開(kāi)銷(xiāo)。
另外,運行調試程序的主機和目標之間還需要一個(gè)通信通道。通常目標系統使用UART來(lái)實(shí)現。UART的驅動(dòng)程序應在監控程序之前完成與目標系統結合的移植工作。
監控程序的代碼也必須根據具體的目標系統進(jìn)行移植,這意味著(zhù)在系統硬件中,應保證主要的部分在監控程序啟動(dòng)之前能夠正常工作。

邏輯分析儀
邏輯分析儀的調試功能并不十分完備,因而常常作為以上兩種調試方法的有效補充使用。這是由于邏輯分析儀只能提供一個(gè)代碼執行過(guò)程的回顧。用戶(hù)無(wú)法改變變量或跳轉至程序的其他位置,所以,在沒(méi)有重新編譯的情況下, “假設分析”測試無(wú)法進(jìn)行。除此之外,許多邏輯分析儀只配置了一個(gè)定容量的存儲器,因此每次運行的追蹤量是受到限制的。

ARM的嵌入式ICE(EmbeddedICE)解決方案
ARM在支持這些傳統調試工具的基礎上,開(kāi)發(fā)了全新的調試方案,希望解決傳統工具無(wú)力解決的問(wèn)題。為了簡(jiǎn)化調試過(guò)程,這種新的解決方案并沒(méi)有限定于某一硬件或軟件開(kāi)發(fā),而是一種面向系統調試的整體性方案。
EmbeddedICE結構體系包括:
●  一個(gè)與EmbeddedICE兼容的ARM核(如:ARM7DI),帶有邊界掃描接口和調試功能增強;
●  一個(gè)外部EmbeddedICE接口盒,連接開(kāi)發(fā)主機和ARM內核;
●  ARM SDT2.01主機軟件開(kāi)發(fā)和調試工具。
EmbeddedICE是一個(gè)面向ARM微處理器的JTAG的調試通道。它為ARM 的Windows工具包和嵌于A(yíng)SIC中的ARM微處理器提供一個(gè)接口。
EmbeddedICE具有諸多ICE功能,例如實(shí)時(shí)尋址、斷點(diǎn)、單步、對ARM CPU的完全控制、對ASIC系統其余部分的訪(fǎng)問(wèn),以及對主機顯示器外設的訪(fǎng)問(wèn)、鍵盤(pán)輸入和磁盤(pán)存儲。后三者保證了開(kāi)發(fā)人員能夠從目標向主機發(fā)送調試信息,并顯示在主機屏幕上。
ARM EmbeddedICE解決方案的優(yōu)勢在于:
●  無(wú)需ICE 接點(diǎn)或串行接口等目標資源或特殊硬件。在目標系統中無(wú)需專(zhuān)門(mén)用于調試的RAM、ROM和特殊軟件(因此,目標系統中的軟件不必修改,可直接與ARM EmbeddedICE體系兼容);
●  邊界掃描引腳可復用,不用增加引腳數量;
●  成本低廉,不需要專(zhuān)門(mén)的ICE芯片;
●  可以在系統最高速度下進(jìn)行調試;
●  完全的主機系統訪(fǎng)問(wèn),包括屏幕、鍵盤(pán)、目標存儲等;
●  無(wú)需移動(dòng)處理器 。這解決了許多問(wèn)題,例如昂貴的接點(diǎn)、性能不穩定和電路電氣特性的改變等等;
●  調試無(wú)需另外的通信通道;
●  與任何嵌入式ARM系統兼容;
●  支持多處理器的調試。
如圖1所示,一個(gè)與EmbeddedICE兼容的ARM7DI宏單元包括一個(gè)ARM7內核、少量的內核調試邏輯、一個(gè)JTAG測試端口( TAP)控制器和EmbeddedICE宏單元。
EmbeddedICE宏單元包括斷點(diǎn)寄存器,后者能夠比較地址、數據和控制總線(xiàn)同寄存器內的設置值。若兩者匹配,會(huì )產(chǎn)生一個(gè)斷點(diǎn)信號,該信號將被傳送到處理器。舉個(gè)例子來(lái)說(shuō),當一個(gè)特定地址的指令或一個(gè)特定的數據值被加載入指定的位置,宏單元就會(huì )產(chǎn)生一個(gè)斷點(diǎn)。
如果在一條指令上設置了斷點(diǎn),當指令到達流水線(xiàn)的執行級時(shí),指令的執行將被中斷,處理器進(jìn)入調試狀態(tài)。然后,處理器和存儲系統通過(guò)TAP控制器由JTAG進(jìn)行狀態(tài)檢測。
一旦處理器進(jìn)入調試狀態(tài),它就會(huì )停止從數據總線(xiàn)讀取指令,并且與存儲系統隔離。EmbeddedICE此時(shí)就可以通過(guò)掃描鏈1將指令讀入流水線(xiàn)、驅動(dòng)處理器。寄存器和存儲內容在調試狀態(tài)下仍可以進(jìn)行訪(fǎng)問(wèn)。這個(gè)過(guò)程是可逆的,用戶(hù)可以在調試器下把代碼下載進(jìn)存儲器,避免了燒寫(xiě)EPROM的不便。

EmbeddedICE在多處理器debug中的使用
EmbeddedICE宏單元提供的調試特征使ARM處理器能夠在多處理器環(huán)境下進(jìn)行調試。當ARM處理器遇到一個(gè)斷點(diǎn)時(shí),它的執行就被中斷,控制權通過(guò)JTAG接口交由調試器。此時(shí),ARM處理器向存儲系統發(fā)出一個(gè)“調試確認”(Debug Acknowledge)信號,告知后者處理器處于調試狀態(tài)。同時(shí),它不再向存儲器發(fā)出訪(fǎng)問(wèn)請求,保證了其它處理器或者DMA通道繼續工作、繼續與存儲系統通信。在調試過(guò)程的最后,ARM處理器會(huì )發(fā)出一個(gè)“存儲請求”(memory request)信號,系統控制器將根據此信號對存儲系統作出仲裁。

EmbeddedICE 接口盒
EmbeddedICE 接口盒在A(yíng)RM軟件工具包的調試器協(xié)議和JTAG協(xié)議之間執行協(xié)議轉換?!霸谶@個(gè)地址上設立一個(gè)watchpoint”之類(lèi)的要求被轉換成JTAG TAP控制器狀態(tài)轉變序列、指令和數據序列。
協(xié)議轉換器可以根據不同的目標系統進(jìn)行配置,例如,對含有不同掃描鏈布局的ARM7DI,也可以進(jìn)行配置。
EmbeddedICE宏單元同時(shí)支持通信通道。通信通道在目標系統上提供了一個(gè)類(lèi)UART的串行端口。它與處理器緊密相連,且不需要額外的引腳,因為它復用了JTAG口的引腳。這種方法需要在目標系統上安裝軟件而不需要UART。

程序開(kāi)發(fā)過(guò)程
程序是在運行ARM WindowsTools 2.0的PC主機開(kāi)發(fā)的。這個(gè)工具包含有編碼所需的C語(yǔ)言編譯器、匯編程序和連接器。
微軟Windows平臺下的窗口調試器以及Unix和DOS下的命令行調試器一起提供了調試支持。這些工具能提供完全C源代碼或匯編語(yǔ)言級的調試。ARM的調試器既可以在指令精確模擬器(ARMulator)又可以在目標硬件上進(jìn)行代碼調試。軟件模擬與真實(shí)芯片之間的轉換只需在對話(huà)框中的輕輕一點(diǎn)即可。軟件工具界面繼續保持不變,用戶(hù)可以無(wú)阻礙地在各目標之間切換。
ARMulator經(jīng)過(guò)配置,可以為存儲器分段指定不同的速度來(lái)仿真目標硬件。設計人員可以通過(guò)使用C 的建模工具,來(lái)對存儲器配置中三個(gè)最重要的因素:速度、空間和功耗進(jìn)行優(yōu)化。
ARMsd是一個(gè)符號調試器,用戶(hù)可以用它設置斷點(diǎn)(指令讀取階段)和觀(guān)察點(diǎn)(數據加載和存儲階段)、檢測和修改處理器及存儲器的狀態(tài)。無(wú)論調試對象是芯片還是ARMulator,這個(gè)過(guò)程都能獨立完成
目標程序中的semihosting也能夠被支持。這意味著(zhù)包含ANSI C 庫函數的程序可以直接移植到目標,無(wú)法被目標支持的請求將被主機中途截取。例如:C 庫函數發(fā)出將狀態(tài)信息顯示在屏幕的請求被中途截取,這些信息將顯示在主機的屏幕上。

結語(yǔ)
調試工具多種多樣,它們各自具有不同的功能和價(jià)格。這些工具對于系統設計者來(lái)說(shuō),仍是一筆寶貴的資源,但是,隨著(zhù)系統的日漸復雜化和集成化,人們需要與之相適應的新的開(kāi)發(fā)環(huán)境。
在系統設計中,處理器內核常常是嵌入在A(yíng)SIC設計中的,傳統的調試方法已不再適用。嵌入式調試體系(例如:ARM調試體系)成為了把握當今復雜系統市場(chǎng)的關(guān)鍵。
要保證產(chǎn)品在最短的時(shí)間內完成開(kāi)發(fā),一個(gè)完整的測試和調試環(huán)境是必需的,其中包括初始產(chǎn)品測試、系統設計仿真、最終產(chǎn)品測試等一系列調試工具?!?(英國ARM公司供稿)

存儲器相關(guān)文章:存儲器原理




關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>