數字信號處理(DSP )系統(tǒng)測試和調試1
在軟件開發(fā)領域,最關鍵但也是最無法預料的階段是調試階段。在軟件調試的過程中有很多要素都舉足輕重,而其中最重要的則是時間。設置和調試軟件所需的時間對于軟件的上市時間以及是否滿足客戶期望都有著巨大的影響,同時還影響著一個在市場取得成功的優(yōu)秀產品的銷售業(yè)績。一個應用的集成必須經過一個由構建、加載、調試/調諧到更改等多個階段構成的過程,如圖1 所示。
圖1:集成和調試周期。我們的目的是要將這一周期的次數以及在每個部分花費
嵌入式實時系統(tǒng)的調試既是一門藝術,又是一門科學。用于調試和集成這些系統(tǒng)的工具和技術對于在調試、集成和測試階段上所需時間的長度有著重要影響。對運行中的系統(tǒng)越了解,我們就能越快發(fā)現并修正缺陷。
要了解系統(tǒng)有一個最傳統(tǒng)也是最簡單的方法,即在軟件中的某些點添加消息,以便輸出有關系統(tǒng)狀態(tài)的信息。這些消息可以是輸出到顯示器的“打印”指令,也可以通過LED 或者LED 組閃爍的形式來系統(tǒng)狀態(tài)和健康度。每個功能或任務都可以通過輸出一個狀態(tài)信息來開始指示是系統(tǒng)將之安排到程序中的某個點。如果系統(tǒng)在某個點出現故障,對于這一輸出信息的診斷就可以幫助工程師了解到系統(tǒng)最后一次正常狀態(tài)點的所在,從而確認問題所在。當然,這種方式會導致系統(tǒng)過載,進而影響系統(tǒng)性能。因此,工程師必須在測試完系統(tǒng)后清除這些數據并在銷售之前對系統(tǒng)重新驗證,或者將系統(tǒng)和系統(tǒng)中測得的代碼一起銷售。他們必須確保所工程師可以利用更先進的調試方法來減少集成和測試階段的時間。其中一個方法就是利用“調試監(jiān)視器(debug monitor)”。調試監(jiān)視器是一種嵌入到目標應用或集成到微控制器或DSP 內核的相對較小的代碼,通過一個串行接口和主機進行通信。調試監(jiān)視器可以下載代碼、讀寫DSP 存儲器和計數器、設置簡單和復雜的斷點、單步執(zhí)行程序并繪制源代碼概圖。
另一種名為ROM 仿真器(ROM emulator)的調試監(jiān)視器則常被用于帶有基于ROM的軟件程序的系統(tǒng)中。ROM 仿真器是一個用來代替目標系統(tǒng)ROM 設備的插件。這一插件和主機相連(通過串行、并行、以太網等連接方式),讓工程師可以縮短調試過程的周期時間。工程師不需要在每次軟件迭代時都通過ROM 編程程序對ROM 設備進行重新編程,而是可以將這個代碼下載到ROM 仿真器的快速RAM 上。
接著,系統(tǒng)就會以代碼脫離ROM 設備運行的狀態(tài)運行。
調試監(jiān)視器和ROM 監(jiān)視器對嵌入式系統(tǒng)調試階段無疑能帶來很大的益處,但是,隨著嵌入式處理器變得越來越快,而且系統(tǒng)不斷轉向單片系統(tǒng)方案,處理器的透明度就形成了更大的挑戰(zhàn),要求更加尖端的調試方案。
集成和調試復雜的數碼系統(tǒng)也需要簡短而復雜的調試工具,如邏輯分析儀等。系統(tǒng)集成商可以通過邏輯分析儀來捕捉數字信號,并以位、字節(jié)和文字格式顯示出來,還能分析以下設備的活動:
數字計數器
復雜狀態(tài)機
緩沖器和FIFO
系統(tǒng)總線
另外,邏輯分析儀還可以分析FPGA、ASIC 和標準單元執(zhí)行等其它片上系統(tǒng)功能。它不需要太大的學習曲線,但要求較高的初始投資(取決于對于它的能力的要求以及需要什么樣的時鐘率)。系統(tǒng)集成商可以在邏輯分析儀中采取觸發(fā)機制,來將數據捕捉到大型緩沖器中。這種數據可以是預觸發(fā)數據或后觸發(fā)數據,也可以是二者的結合體。數據軌道可以被保存并打印出來,數據也可以通過各種不同方式進行過濾。
應用邏輯分析儀的一個主要缺點在于,它雖然可以用來進行軟件調試,本身卻是復雜的硬件調試工具。對邏輯分析儀的運用是否成功,取決于系統(tǒng)集成商對于硬件的了解程度,因為這一工具是基于硬件調試的,而且需要通過復雜的設置和配置才能獲得正確的信息以進行調試。
邏輯分析儀的另一個缺點,則是信號的可見性。邏輯分析儀需要連接到DSP 設備的管腳上,才能深入了解系統(tǒng),而這會受到DSP 管腳的類型的限制。隨著DSP設備被越來越多地集成到片上系統(tǒng)中,設備內部的運行情況的可視性也不斷減弱。
日益降低的可視性
1988 年,由于設計時間壓力的增大,而且嵌入式設備上有了用于片上仿真的新空間,嵌入式系統(tǒng)行業(yè)經歷了一場從傳統(tǒng)的在線仿真到掃描式仿真的變革。目前業(yè)界普遍認為掃描式仿真(即JTAG)要好于更古老而且更昂貴的“在線仿真”(即ICE 技術)。
DSP 在調試上的問題
有數個源自業(yè)界的因素在不斷改變著DSP 系統(tǒng)的開發(fā):
系統(tǒng)級集成;由于應用復雜性的增加和片上系統(tǒng)面積的縮小,系統(tǒng)元件的可視性也降低了。(圖2)嵌入式系統(tǒng)總線會帶來測量上的難題,而系統(tǒng)總線過寬則會導致系統(tǒng)帶寬問題。在這些情況下要控制程序是很難的。
圖2:系統(tǒng)級集成導致系統(tǒng)可視性降低
為了保持可視性,DSP 廠商采取了多項措施:
片上測量( On-chip instrumentation):由于系統(tǒng)集成度越來越高,工程師無法了解到設備的工作情況(圖3)。工程師于是把總線監(jiān)視邏輯分析儀功能加到片上邏輯中,比如,通過觸發(fā)邏輯來他們想要了解的事件、整理線索并導出邏輯,以便可以瀏覽事件,并使DSP 內核上每個管腳輸出的帶寬都最大化。調試控制則是通過1 個仿真器來進行的,可以進行信息抽取。
圖3 日益降低的可視性要求先進的片上調試邏輯
片外數據采集:一旦數據被從DSP 內核中導出,就必須被以適當的方式存儲、處理、過濾并格式化,以使測試工程師能夠準確地理解這些數據。
數據可視性:DSP 的集成能力包括能夠很輕易以不同的配置瀏覽數據。圖4 展示了整個關系鏈。其中邏輯分析儀的功能已經被集成到片上,控制和測量數據采集主要通過仿真控制器來進行,而數據則顯示在主機上的一個可視容器中。這樣一來,恰當地配置系統(tǒng),在正確的時間采集正確的數據以恰當地發(fā)現問題,就成了主要挑戰(zhàn)。
圖4:DSP 工具被用來顯示抽取自DSP 的調試數據
應用空間差異:DSP 應用越來越多,給DSP 測試和集成工程師帶來了困難。應用不同,調試的成本就不同:DSP 基站應用要求高帶寬高頻率調試。
VoIP 應用要求較高的MIPS 密度,并需要每塊板上有多個同類處理器。
手機和其它無線應用則需要不同類的多處理器以及極高的系統(tǒng)級集成。
汽車DSP 應用只需低成本的調試方案,其中DSP 芯片管腳非常重要。
用戶開發(fā)環(huán)境;DSP 開發(fā)商的開發(fā)環(huán)境在改變,而DSP 調試技術也在改進,以適應這些新的開發(fā)環(huán)境。DSP 工程師正在將調試平臺從臺式電腦系統(tǒng)向筆記本電腦系統(tǒng)過渡,以便能帶到現場在客戶的場所下進行調試。便攜式遠程應用要求便攜式DSP 調試環(huán)境。
時鐘率不斷升高:隨著DSP 內核時鐘速率的升高,調試所需的數據量也不斷擴大。
實際上,這個數據量是直接和DSP 內核時鐘率成比例的。工程師需要增加DSP管腳,并擴大每個管腳的數據量,以確保能夠了解到設備的運行情況。
各種級別的DSP 調試在集成過程中提供了各種作用。用戶的體驗使之能夠盡快地提高生產力。基本的調試讓DSP 開發(fā)人員可以配置好應用并使之運行,實時捕捉高帶寬數據等高端調試讓開發(fā)人員能使應用實時運行,而基本調整則幫助開發(fā)人員調整代碼大小和性能。
片上和片外仿真的結合則能帶來很多好處。實時執(zhí)行控制可以帶來移動、運行、斷點(程序計數器)和數據觀察點等標準功能。更高端的事件觸發(fā)可帶來設備可視性,并控制程序員模式。實時數據采集可通過調節(jié)一個穩(wěn)定的程序來提供算法的實時可視性。而追蹤功能則讓工程師可以在整個調試不穩(wěn)定程序過程中實時了解程序裝況。
本系列的第二章將討論JTAG (IEEE 1149.1)邊界掃描技術的工作原理,并詳細說明了與JTAG 端口相關的10 個測試管腳和測試過程。
注:在線仿真技術以一種作用類似于或者說“仿真”原始設備的設備來取代目標處理器,但帶有額外的管腳來使總線等設備上的內部結構可以被看到。ICE 模塊可允許完全接入處理器的程序員模式。這些設備也允許硬件斷點、執(zhí)行控制、跟蹤等調試功能。
評論