国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

數字信號處理(DSP )系統測試和調試

發布時間:2010-11-25 22:47    發布者:designer
在軟件開發領域,最關鍵但也是最無法預料的階段是調試階段。在軟件調試的過程中有很多要素都舉足輕重,而其中最重要的則是時間。設置和調試軟件所需的時間對于軟件的上市時間以及是否滿足客戶期望都有著巨大的影響,同時還影響著一個在市場取得成功的優秀產品的銷售業績。一個應用的集成必須經過一個由構建、加載、調試/調諧到更改等多個階段構成的過程,如圖1 所示。






圖1:集成和調試周期。我們的目的是要將這一周期的次數以及在每個部分花費

嵌入式實時系統的調試既是一門藝術,又是一門科學。用于調試和集成這些系統的工具和技術對于在調試、集成和測試階段上所需時間的長度有著重要影響。對運行中的系統越了解,我們就能越快發現并修正缺陷。

要了解系統有一個最傳統也是最簡單的方法,即在軟件中的某些點添加消息,以便輸出有關系統狀態的信息。這些消息可以是輸出到顯示器的“打印”指令,也可以通過LED 或者LED 組閃爍的形式來系統狀態和健康度。每個功能或任務都可以通過輸出一個狀態信息來開始指示是系統將之安排到程序中的某個點。如果系統在某個點出現故障,對于這一輸出信息的診斷就可以幫助工程師了解到系統最后一次正常狀態點的所在,從而確認問題所在。當然,這種方式會導致系統過載,進而影響系統性能。因此,工程師必須在測試完系統后清除這些數據并在銷售之前對系統重新驗證,或者將系統和系統中測得的代碼一起銷售。他們必須確保所工程師可以利用更先進的調試方法來減少集成和測試階段的時間。其中一個方法就是利用“調試監視器(debug monitor)”。調試監視器是一種嵌入到目標應用或集成到微控制器或DSP 內核的相對較小的代碼,通過一個串行接口和主機進行通信。調試監視器可以下載代碼、讀寫DSP 存儲器和計數器、設置簡單和復雜的斷點、單步執行程序并繪制源代碼概圖。

另一種名為ROM 仿真器(ROM emulator)的調試監視器則常被用于帶有基于ROM的軟件程序的系統中。ROM 仿真器是一個用來代替目標系統ROM 設備的插件。這一插件和主機相連(通過串行、并行、以太網等連接方式),讓工程師可以縮短調試過程的周期時間。工程師不需要在每次軟件迭代時都通過ROM 編程程序對ROM 設備進行重新編程,而是可以將這個代碼下載到ROM 仿真器的快速RAM 上。

接著,系統就會以代碼脫離ROM 設備運行的狀態運行。

調試監視器和ROM 監視器對嵌入式系統調試階段無疑能帶來很大的益處,但是,隨著嵌入式處理器變得越來越快,而且系統不斷轉向單片系統方案,處理器的透明度就形成了更大的挑戰,要求更加尖端的調試方案。

集成和調試復雜的數碼系統也需要簡短而復雜的調試工具,如邏輯分析儀等。系統集成商可以通過邏輯分析儀來捕捉數字信號,并以位、字節和文字格式顯示出來,還能分析以下設備的活動:

數字計數器
復雜狀態機
緩沖器和FIFO
系統總線

另外,邏輯分析儀還可以分析FPGA、ASIC 和標準單元執行等其它片上系統功能。它不需要太大的學習曲線,但要求較高的初始投資(取決于對于它的能力的要求以及需要什么樣的時鐘率)。系統集成商可以在邏輯分析儀中采取觸發機制,來將數據捕捉到大型緩沖器中。這種數據可以是預觸發數據或后觸發數據,也可以是二者的結合體。數據軌道可以被保存并打印出來,數據也可以通過各種不同方式進行過濾。

應用邏輯分析儀的一個主要缺點在于,它雖然可以用來進行軟件調試,本身卻是復雜的硬件調試工具。對邏輯分析儀的運用是否成功,取決于系統集成商對于硬件的了解程度,因為這一工具是基于硬件調試的,而且需要通過復雜的設置和配置才能獲得正確的信息以進行調試。

邏輯分析儀的另一個缺點,則是信號的可見性。邏輯分析儀需要連接到DSP 設備的管腳上,才能深入了解系統,而這會受到DSP 管腳的類型的限制。隨著DSP設備被越來越多地集成到片上系統中,設備內部的運行情況的可視性也不斷減弱。

日益降低的可視性
1988 年,由于設計時間壓力的增大,而且嵌入式設備上有了用于片上仿真的新空間,嵌入式系統行業經歷了一場從傳統的在線仿真到掃描式仿真的變革。目前業界普遍認為掃描式仿真(即JTAG)要好于更古老而且更昂貴的“在線仿真”(即ICE 技術)。

DSP 在調試上的問題

有數個源自業界的因素在不斷改變著DSP 系統的開發:

系統級集成;由于應用復雜性的增加和片上系統面積的縮小,系統元件的可視性也降低了。(圖2)嵌入式系統總線會帶來測量上的難題,而系統總線過寬則會導致系統帶寬問題。在這些情況下要控制程序是很難的。






 圖2:系統級集成導致系統可視性降低

為了保持可視性,DSP 廠商采取了多項措施:

片上測量( On-chip instrumentation):由于系統集成度越來越高,工程師無法了解到設備的工作情況(圖3)。工程師于是把總線監視邏輯分析儀功能加到片上邏輯中,比如,通過觸發邏輯來他們想要了解的事件、整理線索并導出邏輯,以便可以瀏覽事件,并使DSP 內核上每個管腳輸出的帶寬都最大化。調試控制則是通過1 個仿真器來進行的,可以進行信息抽取。





 圖3 日益降低的可視性要求先進的片上調試邏輯

片外數據采集:一旦數據被從DSP 內核中導出,就必須被以適當的方式存儲、處理、過濾并格式化,以使測試工程師能夠準確地理解這些數據。

數據可視性:DSP 的集成能力包括能夠很輕易以不同的配置瀏覽數據。圖4 展示了整個關系鏈。其中邏輯分析儀的功能已經被集成到片上,控制和測量數據采集主要通過仿真控制器來進行,而數據則顯示在主機上的一個可視容器中。這樣一來,恰當地配置系統,在正確的時間采集正確的數據以恰當地發現問題,就成了主要挑戰。








圖4:DSP 工具被用來顯示抽取自DSP 的調試數據

應用空間差異:DSP 應用越來越多,給DSP 測試和集成工程師帶來了困難。應用不同,調試的成本就不同:DSP 基站應用要求高帶寬高頻率調試。

VoIP 應用要求較高的MIPS 密度,并需要每塊板上有多個同類處理器。
手機和其它無線應用則需要不同類的多處理器以及極高的系統級集成。
汽車DSP 應用只需低成本的調試方案,其中DSP 芯片管腳非常重要。
用戶開發環境;DSP 開發商的開發環境在改變,而DSP 調試技術也在改進,以適應這些新的開發環境。DSP 工程師正在將調試平臺從臺式電腦系統向筆記本電腦系統過渡,以便能帶到現場在客戶的場所下進行調試。便攜式遠程應用要求便攜式DSP 調試環境。

時鐘率不斷升高:隨著DSP 內核時鐘速率的升高,調試所需的數據量也不斷擴大。
實際上,這個數據量是直接和DSP 內核時鐘率成比例的。工程師需要增加DSP管腳,并擴大每個管腳的數據量,以確保能夠了解到設備的運行情況。

各種級別的DSP 調試在集成過程中提供了各種作用。用戶的體驗使之能夠盡快地提高生產力。基本的調試讓DSP 開發人員可以配置好應用并使之運行,實時捕捉高帶寬數據等高端調試讓開發人員能使應用實時運行,而基本調整則幫助開發人員調整代碼大小和性能。

片上和片外仿真的結合則能帶來很多好處。實時執行控制可以帶來移動、運行、斷點(程序計數器)和數據觀察點等標準功能。更高端的事件觸發可帶來設備可視性,并控制程序員模式。實時數據采集可通過調節一個穩定的程序來提供算法的實時可視性。而追蹤功能則讓工程師可以在整個調試不穩定程序過程中實時了解程序裝況。

本系列的第二章將討論JTAG (IEEE 1149.1)邊界掃描技術的工作原理,并詳細說明了與JTAG 端口相關的10 個測試管腳和測試過程。

注:在線仿真技術以一種作用類似于或者說“仿真”原始設備的設備來取代目標處理器,但帶有額外的管腳來使總線等設備上的內部結構可以被看到。ICE 模塊可允許完全接入處理器的程序員模式。這些設備也允許硬件斷點、執行控制、跟蹤等調試功能。

JTAG 技術簡介

收縮技術(shrinking technology)的一個劣勢在于,測試小型器件的復雜程度急劇升高。當電路板面積較大時,板的測試是通過采用釘床等技術來進行的。這種技術采用小型彈簧式測試探針來和板底部的焊盤進行連接。這種測試方案是定制的,不僅成本太高,而且效率低下,而且在設計完成之前很多測試都無法進行。

隨著電路板面積的縮小,以及表面貼裝技術的改進,釘床測試的問題不斷增多。

而且,如果一塊電路板兩面都安插了器件,根本無法留下任何可使電路板安放到測試器件上的依附點。

邊界掃描(Boundary scan)

1985 年,一個歐洲電子公司組織聯合起來,試圖尋找能夠解決這些問題的方案。該組織名為聯合測試行動組,制定了一個用于在集成電路級別上進行邊界掃描硬件測試的規范。1990 年,IEEE 將該規范制定為IEEE 1149.1 標準,在其中說明了通過一個JTAG 端口接入任何芯片的詳情。

邊界掃描技術可以通過少數的專用測試管腳在嵌入式系統上進行大量調試和診斷。信號被連續掃描進出器件的I/O 單元,以在各種情況下控制其輸入并測試輸出。如今,邊界掃描技術幾乎成為業界最為流行并通用的可測性設計技術。

測試管腳

系統中的器件是通過一組I/O 管腳來和外界通信的。如果只靠這些管腳本身,我們無法詳細了解器件內部的情況。但是,支持邊界掃描的器件中有一種位移寄存器,器件的每個信號管腳都有一個。如圖5 所示,這些寄存器以一個特別的路徑連接在器件的邊界上(邊界掃描因此而得名)。這樣就將每個普通輸入端口都包圍起來,并直接控制器件及輸出端上的可視性。






圖5 一個采用了JTAG 邊界掃描的標準集成電路

在測試中,器件的I/O 信號通過邊界掃描單元進出芯片。經過配置,邊界掃描單元可以支持外部測試,以測試芯片間的互聯,也可以支持內部測試,測試芯片內部的邏輯。

為了提供邊界掃描功能,IC 廠商必須在他們的器件上添加邏輯,包括每個信號管腳上的掃描寄存器、一個連接這些寄存器的專用掃描路徑、4 個(需要時可添加5 個)額外的管腳以及額外的控制電路。

添加這個邏輯并不會產生太多的負載,而且為了實現板級的高效測試能力,這樣的成本也是值得的。這些邊界掃描控制信號被統稱為測試接入端口(TAP),定義了一個用于掃描式器件的串行協議:

TCK/時鐘- 同步內部狀態機操作。
TMS/模式選擇- 在TCK 的上升沿被采樣,以決定下一個狀態。
TDI/數據進入- 當內部狀態機處于正確狀態時,這個信號在TCK 的上升沿被采樣,被轉移到器件的測試或編程邏輯。
TDO/數據輸出- 當內部狀態機處于正確狀態時,這個信號表示數據被從器件的測試或編程邏輯轉移出去,并在TCK 的下降沿有效。
TRST/重置(可選功能)- 當TCK 下降至很低時,內部狀態機會自動重置。
TCK、TMS 和TRST 輸入管腳驅動著一個有16 種狀態的TAP 控制器狀態機。TAP控制器控制著數據和指令的交換。它根據每個TCK 上升沿的TMS 信號數值來進入下一個狀態。只要接線方式無誤,就可以對多個IC 或電路板進行同步測試。邊界掃描描述語言文件定義了各個器件的邊界掃描邏輯的功能。

測試過程

通過邊界掃描技術驗證一個器件(或電路板)的標準測試過程如下:

測試人員將測試或診斷數據加到器件的輸入管腳上。
邊界掃描單元在監控輸入管腳的邊界掃描寄存器中捕捉數據。
數據通過TDO 管腳掃描出器件,用于驗證。
數據可通過TDI 管腳掃描進器件。
測試人員在器件的輸出管腳上驗證數據。

簡單的測試可以發現一些制造缺陷,例如器件管腳斷開、器件缺失、電路板上的器件位置不正確或者方向倒反等情況,甚至能檢測到有故障的或者無法工作的器件。

邊界掃描技術的主要優勢在于它能夠獨立于應用邏輯來觀察器件輸入上的數據,并控制輸出的數據。另一個關鍵優勢是它可以降低接入設備所需測試點的總數量。有了邊界掃描,就不再需要物理測試點,從而降低電路板制造成本,并提高封裝密度。

邊界掃描的診斷功能要好于其它測試方法。傳統的技術是將測試矢量(測試模式)加到器件的輸入,并監控輸出。如果測試中發生問題,需要很長的時間才能隔離問題,并且需要進行重新測試。而在邊界掃描技術中,邊界掃描單元可以通過監控器件的輸入管腳來觀察器件響應,從而輕松隔離各種測試故障,比如管腳和電路板不接觸的問題。

邊界掃描可以用于各種級別的功能測試和調試,從內部IC 測試到板級測試,甚至能用于硬件/軟件測試中。

有些測試設備和ASIC 單元供應商就給自己的產品增加了JTAG 功能來執行軟件調試功能。通于內置到目標CPU 中的功能支持,這個接口可以用下載代碼、執行代碼并檢查寄存器和內存值。這些功能已經囊括了一個標準調試器的大部分低級別功能。另外,還可以在工作站或者電腦上運行一個成本不高的遠程調試器,來軟件調試提供支持。

邊界掃描技術還被用來仿真。通過控制掃描信息在目標和調試器窗口之間的傳輸,仿真器的前端可以行使掃描管理器的功能。當然,當有一個主機來控制JTAG掃描信息時,必須讓連接到這一掃描鏈中的其它器件也獲知這一點。

JTAG 還讓設備的內部組件都可以被掃描(例如CPU)。這使得JTAG 可以接入所有能通過CPU 接入的設備,因而可用來調試嵌入式設備,同時還能全速進行測試。

這已經成為了硅廠商使用的一個標準仿真調試方法。JTAG 還可進行系統級調試。

如果給設備添加額外的管腳,就能實現額外的系統集成功能,包括基準化、繪制概圖和系統級斷點等。

設計周期時間壓力是由以下幾個因素造成的:

集成等級的提高- 更多功能被集成到一個設備中,而不是添加離散器件。

時鐘率提高- 外部支持邏輯導致的電氣干擾。

更精密的封裝- 這產生了外部調試連接性問題。

如今,這些同樣的因素交織在一起,給為當前復雜的、更高時鐘率的高集成設計提供所需的系統調試能力的掃描類仿真器形成了極大的挑戰,F在的系統正在變得越來越小、越來越快而且越來越便宜。它們的面積密度越來越大,性能越來越高。系統發展的這些積極趨勢,卻給對系統活動的觀察產生了反作用,而系統可視性卻正是快速部署的關鍵因素。這個效應就叫做“日益下降的可視性”。

片上系統(SoC)模式將一個完整系統所有的功能都集成到了一張硅芯片中,包括處理器、存儲設備、邏輯元件、通信外圍設備和模擬設備。這個方法的優勢在于通過在單芯片上集成所有這些組件而縮小了組件之間的物理間隔,使設備變得更小,并進而能夠運行得更快,制造起來也更簡單。這些優勢使得系統的可靠性得以提高,總體成本也降低了。

應用開發人員更喜歡圖6 中顯示的理想化可視性級別,因為它不僅提供了可視性,還能控制各種相關的系統活動。隨著集成等級和時鐘速率的穩步上升,可視性和控制級別則不斷下降。這些就造成了一個可視性和控制間隙,即期望的可視性和控制級別和現實級別之間的差距。這個間隙會隨著時間的推移而不斷擴大。

應用開發工具供應商正在努力延緩這一間隙的擴大。開發工具、軟件和相關硬件組件必須以更少而且不同的方式來執行更多的功能,降低由于這些因素而導致的使用難度。高端的仿真技術可以提供人們期望的程序活動和執行的可視性,而由于以上提到的各種原因,DSP 類系統正需要這樣的可視性。







圖6:可視性和控制間隙

下一章將解釋仿真器如何通過斷點和單步執行等功能來控制DSP 上的程序。

仿真的基本原理

仿真是一種被用在嵌入式系統開發領域的技術。它可以給系統開發者帶來集成硬件和軟件所需的可控制性和可視性,有效地模仿DSP 處理器的電氣特征和性能,同時讓工程師更清晰地了解處理器的活動并加以控制。

仿真器包含了硬件和軟件技術。仿真硬件方面由DSP 芯片上的功能構成,它可以采集數據。該數據提供了有關系統活動狀態和其它可視性的信息。硬件還需要從DSP 設備上高速獲取此類信息,并將數據格式化。仿真器軟件則提供了更高級別的控制,以及一個和主機相連的接口- 一般是一個調試器。調試器讓開發工程師可以輕松地從編輯過程(編譯、匯編并為某個應用建立鏈接)過渡到執行環境。

它從編輯過程中輸出數據,并將圖象導入到目標系統中。接下來,工程師可以通過調試器和仿真器互動,來控制并執行應用,同時找到并解決問題。這些問題可能是硬件問題,也可能會是軟件上的問題。仿真器被設計成一個完整的集成和測試環境。

仿真器系統組件
所有的仿真器系統都是由以下三個部分構成的:
片上調試裝置
仿真控制器
運行在主機上的調試器應用程序





圖7:一個基本的仿真系統

圖7 展示了這三部分的連接。其中主機和一個仿真控制器相連,仿真控制器也連接到目標系統。用戶通過IDE 中的調試器來控制目標應用。

從處理器、仿真器到主機平臺的整個開發環境,都會使用DSP 仿真技術。

在DSP 設備本身,要實現更高的時鐘率,就要求仿真邏輯必須是在芯片上,這樣它才能夠全速運行,并跟上處理器的速率。集成度更高的芯片,總線會被隱藏起來,讓工程師無法通過管腳看到。這也使得仿真邏輯必須在芯片上,這樣才能接入到系統總線。為此,DSP 廠商都一直在積極地將高端仿真功能集成到它們的DSP產品上。

下一個組件是仿真器,它用來將目標板連接到主機平臺上,并在主機和目標處理器之間傳輸數據。

第三個組件也是最后一個組件是調試器和仿真軟件。該軟件可以自動配置以匹配DSP 設備,并作為用戶接口,讓片上系統(SoC)設備的調試變得盡可能簡單。

這些IDE 還支持“插入式”應用的開發,此類應用不僅能控制處理器,還能通過一個高速數據接口顯示來自處理器的仿真數據。

調試器運行的主機可以是一臺電腦,也可以是一個工作站。該主機可以通過各種方式來和仿真器相連,包括以太網、通用串行總線(USB)、Firewire (IEEE 1394)和并行接口等。

主機可以決定設備到主機之間的數據帶寬。主機和仿真器之間的通信決定著數據傳輸協議的最大持續數據帶寬。比如,在某些仿真應用下,仿真器清空接收數據緩沖器的速度必須和這些緩沖器被裝滿數據的速度一樣快。第二,產生數據的主機和接收數據的客戶端必須擁有足夠的MIP 和/或磁盤帶寬,來準備、傳輸、處理和/或存儲來自DSP 的數據。此處必須注意的一點是,一個功能強大的電腦或者一個工作站會對整個仿真系統的性能產生影響。

仿真器的物理特征

大多數仿真控制器都位于主機外部。仿真器分為通信和仿真兩個部分。通信部分負責和主機通信,而仿真部分則和目標連接,控制目標調試功能和設備調試端口。

仿真器/目標通信

仿真控制器通過連接線和目標相連。調試、跟蹤、觸發和實時傳輸可以通過同一根目標連接線來完成,有時也可以采用同樣的設備管腳。當一根連接線無法滿足目標系統的跟蹤帶寬時,就需要多根連接線。所有跟蹤、實時數據傳輸和調試通信可以通過這個鏈路來完成。仿真器允許目標和仿真器之間可以至少分開2 英尺,以方便DSP 開發者能在各種環境下應用。

片上仿真

由于當前精密的DSP 處理器的可視性日益下降,調試功能也被集成到了芯片上-即我們常說的片上調試。片上調試實際上硬件和軟件的結合。位于DSP 上的功能是硬件實現資源。這些資源包括終端用戶代碼可利用的功能,例如斷點寄存器和其它專用硬件。要在芯片和調試器之間進行通信,DSP 上必須有額外的管腳。這些管腳可以是JTAG 接口管腳,也可以是一些專門用于控制或數據的額外管腳。要進行片上調試,還要求主系統必須和調試部分以及數據抽取通信并對之加以控制。主軟件運行調試器軟件,并通過專用接口頭信息與片上調試寄存器連接。主調試器以圖畫形式顯示源代碼、處理器資源、存儲器位置和外圍設備狀態等。

片上調試的一些主要功能包括:

-中斷或插入程序和/或數據存儲地址上的調試模式
-中斷或插入外圍設備上的調試模式
-通過1 個DSP 微處理器指令進入調試模式
-讀/寫DSP 內核寄存器
-讀/寫外圍存儲器映射的寄存器
-讀/寫程序或數據存儲器
-執行1 個或多個指令
-跟蹤1 個或多個指令
-讀實時指令跟蹤緩沖器




圖8:DSP 上的仿真邏輯可以實現有效系統集成所需的可視性

圖8 展示了一個高性能DSP 上的仿真硬件。該邏輯位于DSP 上,可以執行以下功
能:

觀測-采用總線事件探測器來觀測系統中的事件。用戶可以通過調試器界面編程選擇需要觀測的特定事件或情況。
保存-采用計數器和狀態機來保存系統中發生的事件。
導向和控制-采用觸發器來發送計數器和狀態機獲取的有用數據。
導出-采用導出功能從系統導出數據。例如,以跟蹤邏輯來導出原始程序寄存器和數據跟蹤信息。
加速-采用本地振蕩器來提高以高時鐘速率運行的設備的數據傳輸率。
導入-以導入邏輯來從主機導入數據,讓開發者可以輸入用來調試和集成系統的數據文件。

這個仿真系統里還包括一個主通信控制器(host communications controller)。
 
它可以連接到控制整個過程的主調試器。調試器可以位于電腦上或者工作站中,也可以集成到一個集成度更高的開發環境中,或者獨立運行。電腦或工作站中構建的代碼通過一個通信鏈路導入到目標中。

仿真控制器(以及調試器)是一種帶有兩組不同功能特征的調試工具。其中的一組特征可以提供簡單的運行控制,讓DSP 開發者能控制DSP 處理器的運行。運行控制的例子有啟動、暫停、步進和運行至斷點。

另一組特征則用來捕捉和記錄DSP 處理器的活動,正如處理器總線所顯示的那樣。開發者可以通過一個觸發系統來限定控制捕捉這一跟蹤信息的條件。該跟蹤系統將DSP 處理器總線的活動記錄在系統內部或外部的高速RAM 中。

調試器是在主系統上執行的一個軟件組件。它可以監控和控制整個仿真過程,有以下一些常見功能:
啟動/運行(Go/Run)- 這個命令將啟動目標CPU 的執行。執行是從當前程序計數器的位置和寄存器數值開始的。
停止/暫停(Stop/Halt)- 這一命令用來通知仿真器停止目標CPU 并暫停執行。當執行這一命令時,目標CPU 和寄存器的當前上下文會被保存,以便當處理器再次開始運行時,執行可以繼續從原停止點處繼續進行。
單步執行(Single-Step)- 這一命令是啟動或運行指令的一個特殊形式,但在下一個指令處有一個斷點組。它讓用戶可以連續步進。在每一步,用戶都可以觀察寄存器、執行堆棧和其它關于系統狀態的重要信息。這可能是尋找軟件或固件模塊的問題時應用最為普遍的命令。
步過/步進(Step-Over/Step Through)- 這個命令和單步執行很相似,但有一個很大的不同。當步過一個子程序調用時,該命令會執行子程序但不會進入子程序。而當采用單步執行命令時,調試器會進入子程序并以一次一條指令的方式執行子程序。如果用戶不需要看到子程序或庫函數中的每條指令,這一命令可以讓用戶繞過。
運行至(Run To)- 這個命令可以在程序某個被認為有用的地方設置一個斷點,然后運行直到達到該斷點。它可以讓用戶不必多次單步執行便可達到同樣的位置。

DSP 仿真器可以提供DSP 處理器、寄存器和應用軟件的可視性,讓軟件工程師可以了解到應用執行中處理器內部發生的變化。軟件工程師可以基于應用內部的硬件信號值和軟件位置在應用中設置斷點。在這些斷點上,用戶可以了解到處理器和數據的狀態,并確定其應用是否仍在正常運行,還可以在仿真器上執行應用軟件的基準化(時序分析)和繪制概圖(CPU 加載)。多處理器調試可以讓用戶同時在多個處理器上調試軟件,并依照設置在某個處理器中的條件停止一個或多個處理器,讓用戶能夠在有疑問時捕捉到整個系統的狀態。DSP 調試器中的這些功能可以極大地縮短軟件開發周期中的調試時間。

仿真器是直接和DSP 處理器連接的。電氣信號被發送到仿真器,仿真器可以接入到處理器,而標準軟件調試器則不能。工程師可以瀏覽并更改寄存器-這是標準軟件調試器所沒有的。硬件信號發送還可以帶來更好的實時控制。仿真器還能實時記錄處理器的活動,如果發生問題,開發者就可以有一個系統活動的歷史記錄來進行分析。

仿真器相比于標準軟件調試器的另一個優勢在于它可以調試系統的啟動代碼。標準軟件調試器一般需要目標操作系統來接入系統和通信接口。在系統初始化過程中,這是不能實現的。而仿真器可以提供自己的通信接口(一般是JTAG),能接入到系統的任何部分,達到和CPU 一樣的可視性。

仿真器的另一個優勢是可以調試已經損壞的系統。如果目標系統因為某個原因而被損壞,它的操作系統一般會停止運行。此時軟件調試器根本排不上用場。而仿真器則不會受到系統損壞的影響。仿真器可以保留重要的跟蹤信息和寄存器數值等DSP 處理器狀態信息,并對該數據進行分析,以確定導致系統損壞的原因。

基本仿真組件

當采用一個DSP 調試器來在硬件平臺上進行軟件調試時,必須執行一些設置程序,以確保目標處理器能夠和調試器兼容。仿真的設置包含了兩個工具:一個是仿真器本身(例如TI XDS510 或XDS560)-它控制到達目標和來自目標的信息流,另一個是調試器-它是這一信息的用戶接口。在仿真設置之后是目標處理器。

大多數DSP 處理器中的仿真邏輯都采用聯合測試行動組(JTAG)標準連接方法來從處理器內部獲取調試信息。

硬件的調試是通過停止DSP 內核來進行的,這樣才可以使信息通過JTAG 信息頭被掃描進設備并從設備中掃描出來。該信息是通過符合IEEE 1149.1 JTAG 規格的JTAG 接口來串行傳輸的。必須注意的是,這個調試方法接近于實時調試,但它是插入式的,因為它需要停止內核來掃描信息。盡管和JTAG 頭之間的連接可能是一樣的,但用于仿真的掃描鏈和用于邊界掃描的掃描鏈是不同的。在處理器內部有多種可以掃描信息進出的串行掃描鏈。掃描鏈的選擇以及每個掃描鏈所包含的信息由一個微處理器來控制。這個“掃描管理器”的任務是在信息被掃描進出各種處理器的過程中控制該信息,并將之引導在各個調試器窗口之間。

仿真器主機可以作為掃描管理器,因為它控制著掃描信息在目標和調試器窗口之間的傳輸。比如,操作系統可以是一臺電腦,而JTAG 連接則通過一張ISA 卡(圖7)來完成,其它配置也可以實現。當主CPU 或一個獨立的處理器控制JTAG 掃描信息時,主機需要有關掃描鏈中包含的設備的信息。

仿真功能

仿真可以提供一套用于集成和調試階段的標準操作。它的一些主要功能如下:

斷點(Breakpoints)

仿真技術的一個普通功能就是支持斷點。斷點可以中斷DSP,并讓開發者可以檢測目標系統上的數據或寄存器。斷點功能是由仿真器來控制的。仿真器執行協議來在執行流盡可能早的地方停止CPU,并讓開發者在需要時從當前點繼續執行。

由于從運行狀態轉向暫停狀態可以在瞬時發生,大部分斷點都是同步的。

軟件斷點是同步斷點的一種形式。它可以在特定斷點處保存指令,并以能創建出一個例外條件的不同指令取而代之。這樣一來,控制功能就被轉移到了可保存重要DSP 狀態寄存器上下文的控制器上。當由主調試器來進行控制時,開發者就可以在CPU 暫停時在寄存器上“查看并修改”。如果反過來,就可以讓CPU 從當前位置繼續執行。這種類型的斷點可用于包含RAM 的目標系統,以編寫并更換指令。

斷點的另一種形式叫做硬件斷點。這種斷點是通過采用目標設備上的自定義硬件來實現的。它適用于有復雜取指序列的DSP 設備,并可在不能用軟件斷點來替換指令的帶ROM 的系統中設置斷點。這一硬件邏輯是用來監控設備上的一組地址和狀態信號,并當指令拾取在某個特定地點進行時停止設備執行。

事件檢測器(Event Detectors)

圖9 中的事件探測器提供了更好的目標可視性和執行中斷。圖4 中的總線事件和輔助事件檢測邏輯可以檢測到系統中發生的一系列復雜事件并進行仿真斷開。除了硬件和軟件斷點提供的代碼執行斷點,事件檢測器也可以在數據訪問、其它地址和數據的結合以及其它系統狀態下斷點。圖9 中的事件檢測器包含了一套比較儀和其它邏輯。用戶可以通過調試器界面對這些比較儀進行編程以找到系統中事件的一個特定樣式。比較儀會觸發其它事件邏輯執行相關任務,例如停止執行,增加一個計數器來跟蹤某個特定事件的發生,或者在一個可被其它設備所用的管腳上產生一個信號以進行其它操作。



圖9:開發人員可以通過用戶界面設置事件計數器和比較儀,并能編程復雜事件,只受到設備上邏輯數量的限制。

開發人員完成編程后,總線和輔助事件系統邏輯就將依照邏輯中設定的條件對運行的系統進行監控。一旦檢測到情況,就會作出預先設定的響應。它可能會給仿真器發出一個指令,讓它停止執行,也可能會設置一個輸出管腳來告知其它器件或測試設備。這種片上邏輯的一個優勢就在于它能“看”到設備內部發生的情況,而采用外部管腳時則只能看到管腳所代表的信號或情況。DSP 廠商已經通過提供可實現DSP 可視性的片上邏輯改進了這方面的功能。這一點是非常關鍵的,因為DSP 和其它嵌入式處理器都在向片上系統結構過渡,而這種系統恰恰會限制設備可視性的程度。

由于這些事件觸發功能都是直接創建到DSP 處理器中的,它們不會占據過多的CPU 周期或存儲器空間。因此,當被通過用戶控制啟動時,事件觸發設備邏輯能以非侵入形式檢測到所有事件,而不需停止CPU。這樣可以讓系統保持實時運行,并縮短調試時間,因為開發人員不必在每個單獨事件上設置斷點,并能夠重復執行,知道下一個復雜事件發生。

跟蹤(Trace)

圖8 中的跟蹤采集區塊是DSP 仿真功能的擴展。它讓開發人員能以全時鐘速度從設備中抽取程序計數器、時序信息和原始數據訪問信息。該數據被保存在一個外部大型存儲器上并被格式化。通過這一數據,開發人員可以極其詳細地了解處理器的活動情況。這有利于調試各種目標系統上的間歇性硬件和軟件問題。跟蹤功能可以由事件邏輯來控制,僅當系統發生一系列特定情況時才啟動,例如計數器達到了某個預設值,某個特殊模塊被執行,或者接入到了某個特定變量。程序計數器和/或數據訪問信息一般都帶有時間戳標記,可幫助開發人員確定訪問次數、中斷潛伏、模塊執行次數和其它有用數據。



圖8:DSP 設備上的仿真邏輯能帶來有效系統集成所需的可視性

連續執行可視性(Continuous Execution Visibility)

有些DSP 應用要求在繼續服務中斷時停止處理器。這對于硬盤應用等控制應用來說尤其重要,因為此時DSP 在控制著磁頭的位置。在連續執行可視化模式中,當發生了一個物理中斷時,調試器會停止控制,并讓應用執行硬件中斷。接著,從硬件中斷服務程序(ISR)中恢復后,處理器又會被暫停。在這些系統中,DSP是用來控制伺服系統以避免通信時發生磁頭撞擊。但是,在系統調試過程中,開發人員必須保持和通信系統的同步。這要求DSP 在調試系統時繼續服務中斷。此功能需要特殊DSP 仿真邏輯才能實現。這只是DSP 仿真如何定制以便用于一些由應用域來決定所需仿真功能類型的DSP 系列的例子之一。

源級調試(Source Level Debugging)

源級調試讓開發人員可以在一個更高的抽象層集成系統。開發人員可以將從系統抽取的數據連接到高級源代碼(程序就是以該代碼編寫而成的),并采用來自源代碼的符號名或數據所在的原始存儲器地址來接入到系統變量和其它程序的位置。源代碼一般可以和匯編代碼一起顯示,這樣可以讓開發人員看到編譯器生成了什么匯編代碼。當優化編譯器來生成代碼時,這一點是非常重要的。DSP 編譯器具有多個級別的高性能優化能力。當采用代碼優化切換時,每個高等級語言語句匯編代碼的可視性都非常重要。根據創建系統時所選擇的調試選項,開發人員可以通過一組由編譯器和連接器生成的符號來接入各種程序變量、結構和片段。

這些符號信息會在每個調試過程之前被導入到仿真器。

仿真功能的另一個有用之處在于可實現被執行匯編語言的可視性。由于在編輯過程中創建的目標文件是一個二進制文件,二進制目標代碼(機器代碼)必須轉換成匯編指令。這個轉換過程被稱為“反匯編”。反匯編功能將二進制數導入到存儲器并將之反匯編,讓用戶可以查看產生機器語言代碼的實際匯編語言流。

跟蹤功能還需要反匯編操作。跟蹤反匯編必須選取跟蹤幀,并反匯編從該原始跟蹤數據執行的代碼。該數據對于開發人員來說是非常有幫助的。它可以準確顯示數據采集期間系統中發生的情況。利用數據跟蹤,用戶不僅能夠查看實際被執行的指令(不是應該被執行的指令),還能查看這些指令所進行的數據訪問。
本文地址:http://m.qingdxww.cn/thread-41829-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人全部免费观看1314色 | 亚洲手机在线手机观看高清hd | 韩国一级特黄清高免费大片 | 天堂在线xw | 亚洲欧美日本国产综合在线 | 日韩免费视频网站 | 成年色黄大色黄大片 视频 成年日韩片av在线网站 | 一级毛片免费全部播放完整 | 亚洲影视一区二区 | 国产精品福利社 | 成人5252色| 日韩精品中文字幕视频一区 | 99热国产这里只有精品99 | 善良的妻子在线 | 视频在线a | 亚洲视频在线网 | 四虎影院在线观看免费 | 美国免费视频 | 99在线观看精品免费99 | 91在线播放网站 | 日韩在线一区视频 | 精品久久久久久国产免费了 | 国产日韩视频在线观看 | 免费lulu网站 | aaa毛片视频免费观看 | 精品色| 一级黄色片在线看 | 两个人免费观看视频高清视频 | 国产欧美精品区一区二区三区 | 99re热精品视频国产免费 | 398av视频在线播放 | 无限看动漫片的视频高清免费 | 青青伊人精品 | 精品国产综合成人亚洲区 | 99国内精品久久久久久久黑人 | 欧美成人全部视频 | 自拍偷拍图区 | 色综合久久天天综合 | 国产日产韩产麻豆1区 | 日本高清在线免费观看 | 99久热只有精品视频免费看 |