<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)字信號(hào)處理(DSP )系統(tǒng)測(cè)試和調(diào)試4

          數(shù)字信號(hào)處理(DSP )系統(tǒng)測(cè)試和調(diào)試4

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

            仿真功能

            仿真可以提供一套用于集成和調(diào)試階段的標(biāo)準(zhǔn)操作。它的一些主要功能如下:

            (Breakpoints)

            仿真技術(shù)的一個(gè)普通功能就是支持可以中斷DSP,并讓開發(fā)者可以檢測(cè)目標(biāo)系統(tǒng)上的數(shù)據(jù)或寄存器。斷點(diǎn)功能是由仿真器來的。仿真器協(xié)議來在流盡可能早的地方停止CPU,并讓開發(fā)者在需要時(shí)從當(dāng)前點(diǎn)繼續(xù)。

            由于從運(yùn)行狀態(tài)轉(zhuǎn)向暫停狀態(tài)可以在瞬時(shí)發(fā)生,大部分?jǐn)帱c(diǎn)都是的。

            軟件斷點(diǎn)是斷點(diǎn)的一種形式。它可以在特定斷點(diǎn)處保存,并以能創(chuàng)建出一個(gè)例外條件的不同取而代之。這樣一來,功能就被轉(zhuǎn)移到了可保存重要DSP 狀態(tài)寄存器上下文的器上。當(dāng)由主調(diào)試器來進(jìn)行控制時(shí),開發(fā)者就可以在CPU 暫停時(shí)在寄存器上“查看并修改”。如果反過來,就可以讓CPU 從當(dāng)前位置繼續(xù)執(zhí)行。這種類型的斷點(diǎn)可用于包含RAM 的目標(biāo)系統(tǒng),以編寫并更換

            斷點(diǎn)的另一種形式叫做斷點(diǎn)。這種斷點(diǎn)是通過采用目標(biāo)設(shè)備上的自定義來實(shí)現(xiàn)的。它適用于有復(fù)雜取指序列的DSP 設(shè)備,并可在不能用軟件斷點(diǎn)來替換指令的帶ROM 的系統(tǒng)中設(shè)置斷點(diǎn)。這一邏輯是用來監(jiān)控設(shè)備上的一組和狀態(tài)信號(hào),并當(dāng)指令拾取在某個(gè)特定地點(diǎn)進(jìn)行時(shí)停止設(shè)備執(zhí)行。

            事件檢測(cè)器(Event Detectors)

            圖9 中的事件探測(cè)器提供了更好的目標(biāo)可視性和執(zhí)行中斷。圖4 中的總線事件和輔助事件檢測(cè)邏輯可以檢測(cè)到系統(tǒng)中發(fā)生的一系列復(fù)雜事件并進(jìn)行仿真斷開。除了硬件和軟件斷點(diǎn)提供的代碼執(zhí)行斷點(diǎn),事件檢測(cè)器也可以在數(shù)據(jù)訪問、其它和數(shù)據(jù)的結(jié)合以及其它系統(tǒng)狀態(tài)下斷點(diǎn)。圖9 中的事件檢測(cè)器包含了一套比較儀和其它邏輯。用戶可以通過調(diào)試器界面對(duì)這些比較儀進(jìn)行編程以找到系統(tǒng)中事件的一個(gè)特定樣式。比較儀會(huì)觸發(fā)其它事件邏輯執(zhí)行相關(guān)任務(wù),例如停止執(zhí)行,增加一個(gè)計(jì)數(shù)器來跟蹤某個(gè)特定事件的發(fā)生,或者在一個(gè)可被其它設(shè)備所用的管腳上產(chǎn)生一個(gè)信號(hào)以進(jìn)行其它操作。

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

            開發(fā)人員完成編程后,總線和輔助事件系統(tǒng)邏輯就將依照邏輯中設(shè)定的條件對(duì)運(yùn)行的系統(tǒng)進(jìn)行監(jiān)控。一旦檢測(cè)到情況,就會(huì)作出預(yù)先設(shè)定的響應(yīng)。它可能會(huì)給仿真器發(fā)出一個(gè)指令,讓它停止執(zhí)行,也可能會(huì)設(shè)置一個(gè)輸出管腳來告知其它器件或測(cè)試設(shè)備。這種片上邏輯的一個(gè)優(yōu)勢(shì)就在于它能“看”到設(shè)備內(nèi)部發(fā)生的情況,而采用外部管腳時(shí)則只能看到管腳所代表的信號(hào)或情況。DSP 廠商已經(jīng)通過提供可實(shí)現(xiàn)DSP 可視性的片上邏輯改進(jìn)了這方面的功能。這一點(diǎn)是非常關(guān)鍵的,因?yàn)镈SP 和其它嵌入式處理器都在向片上系統(tǒng)結(jié)構(gòu)過渡,而這種系統(tǒng)恰恰會(huì)限制設(shè)備可視性的程度。

            由于這些事件觸發(fā)功能都是直接創(chuàng)建到DSP 處理器中的,它們不會(huì)占據(jù)過多的CPU 周期或存儲(chǔ)器空間。因此,當(dāng)被通過用戶控制啟動(dòng)時(shí),事件觸發(fā)設(shè)備邏輯能以非侵入形式檢測(cè)到所有事件,而不需停止CPU。這樣可以讓系統(tǒng)保持實(shí)時(shí)運(yùn)行,并縮短調(diào)試時(shí)間,因?yàn)殚_發(fā)人員不必在每個(gè)單獨(dú)事件上設(shè)置斷點(diǎn),并能夠重復(fù)執(zhí)行,知道下一個(gè)復(fù)雜事件發(fā)生。

            跟蹤(Trace)

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


                 圖8:DSP 設(shè)備上的仿真邏輯能帶來有效系統(tǒng)集成所需的可視性

            連續(xù)執(zhí)行可視性(Continuous Execution Visibility)

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

            源級(jí)調(diào)試(Source Level Debugging)

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

            這些符號(hào)信息會(huì)在每個(gè)調(diào)試過程之前被導(dǎo)入到仿真器。

            仿真功能的另一個(gè)有用之處在于可實(shí)現(xiàn)被執(zhí)行匯編語(yǔ)言的可視性。由于在編輯過程中創(chuàng)建的目標(biāo)文件是一個(gè)二進(jìn)制文件,二進(jìn)制目標(biāo)代碼(機(jī)器代碼)必須轉(zhuǎn)換成匯編指令。這個(gè)轉(zhuǎn)換過程被稱為“反匯編”。反匯編功能將二進(jìn)制數(shù)導(dǎo)入到存儲(chǔ)器并將之反匯編,讓用戶可以查看產(chǎn)生機(jī)器語(yǔ)言代碼的實(shí)際匯編語(yǔ)言流。

            跟蹤功能還需要反匯編操作。跟蹤反匯編必須選取跟蹤幀,并反匯編從該原始跟蹤數(shù)據(jù)執(zhí)行的代碼。該數(shù)據(jù)對(duì)于開發(fā)人員來說是非常有幫助的。它可以準(zhǔn)確顯示數(shù)據(jù)采集期間系統(tǒng)中發(fā)生的情況。利用數(shù)據(jù)跟蹤,用戶不僅能夠查看實(shí)際被執(zhí)行的指令(不是應(yīng)該被執(zhí)行的指令),還能查看這些指令所進(jìn)行的數(shù)據(jù)訪問。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();