<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è) > 嵌入式系統 > 設計應用 > 數字信號處理(DSP )系統測試和調試3

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

作者: 時(shí)間:2008-07-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  仿真的基本原理

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

  仿真器包含了硬件和軟件技術(shù)。仿真硬件方面由DSP 芯片上的功能構成,它可以數據。該數據提供了有關(guān)系統活動(dòng)狀態(tài)和其它可視性的信息。硬件還需要從DSP 設備上高速獲取此類(lèi)信息,并將數據。仿真器軟件則提供了更高級別的控制,以及一個(gè)和主機相連的- 一般是一個(gè)器。器讓開(kāi)發(fā)工程師可以輕松地從編輯過(guò)程(、并為某個(gè)應用建立鏈接)過(guò)渡到執行環(huán)境。

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

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

                  圖7:一個(gè)基本的仿真系統

圖7 展示了這三部分的連接。其中主機和一個(gè)仿真控制器相連,仿真控制器也連接到目標系統。用戶(hù)通過(guò)IDE 中的調試器來(lái)控制目標應用。

  從處理器、仿真器到主機平臺的整個(gè)開(kāi)發(fā)環(huán)境,都會(huì )使用DSP 仿真技術(shù)。

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

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

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

  這些IDE 還支持“插入式”應用的開(kāi)發(fā),此類(lèi)應用不僅能控制處理器,還能通過(guò)一個(gè)高速數據顯示來(lái)自處理器的仿真數據。

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

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

  仿真器的物理特征

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

  仿真器/目標通信

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

  片上仿真

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

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

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


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

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

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

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

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

  另一組特征則用來(lái)捕捉和記錄DSP 處理器的活動(dòng),正如處理器總線(xiàn)所顯示的那樣。開(kāi)發(fā)者可以通過(guò)一個(gè)觸發(fā)系統來(lái)限定控制捕捉這一跟蹤信息的條件。該跟蹤系統將DSP 處理器總線(xiàn)的活動(dòng)記錄在系統內部或外部的高速RAM 中。

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

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

  仿真器是直接和DSP 處理器連接的。電氣信號被發(fā)送到仿真器,仿真器可以接入到處理器,而標準軟件調試器則不能。工程師可以瀏覽并更改寄存器-這是標準軟件調試器所沒(méi)有的。硬件信號發(fā)送還可以帶來(lái)更好的實(shí)時(shí)控制。仿真器還能實(shí)時(shí)記錄處理器的活動(dòng),如果發(fā)生問(wèn)題,開(kāi)發(fā)者就可以有一個(gè)系統活動(dòng)的歷史記錄來(lái)進(jìn)行分析。

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

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

  基本仿真組件

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

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

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

  仿真器主機可以作為掃描管理器,因為它控制著(zhù)掃描信息在目標和調試器窗口之間的傳輸。比如,操作系統可以是一臺電腦,而JTAG 連接則通過(guò)一張ISA 卡(圖7)來(lái)完成,其它配置也可以實(shí)現。當主CPU 或一個(gè)獨立的處理器控制JTAG 掃描信息時(shí),主機需要有關(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>