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