版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗一 DSP 編程與Visual DSP+入門一 實驗目的:熟悉VisualDSP+集成開發(fā)環(huán)境,掌握工程文件的創(chuàng)建、構造和調試的方法和技巧。二 實驗內容:針對ADSP-21161 SHARC DSP,利用幾個用C、C+和匯編語言寫成的簡單例子來描述VisualDSP+編程環(huán)境和調試器(debugger)的主要特征和功能。對于運行在其它類型SHARC處理器的程序只需對其鏈接描述文件(.LDF)做一些修改,就可用于其它芯片或者ADSP-21161 的硬件仿真。在目錄21kldf 下有每種處理器類型的鏈接描述文件,可供參考。實驗一包括四個基本練習:練習一:啟動VisualDSP+,建立一個用C源
2、代碼的工程(Project),同時用調試器來評估用C語言所編寫代碼的性能;練習二:創(chuàng)立一個新的工程,修改源碼來調用一個匯編(asm)程序,重新編譯工程,用調試器來評估用匯編語言所寫程序的性能;練習三:利用調試器的繪圖(plot)功能來圖形顯示一個卷積算法中的有關數(shù)據(jù)的波形;練習四:利用調試器的性能統(tǒng)計功能(Statistical profile 統(tǒng)計剖析)來檢查練習三中卷積算法的效率。利用所收集到的性能統(tǒng)計數(shù)據(jù)就能看出算法中最耗時的地方。三 實驗步驟練習一:1) 進入VisualDSP+集成開發(fā)環(huán)境,并打開一個工程(Project)進入VisualDSP+ , 顯示VisualDSP+ 的集成
3、開發(fā)和調試環(huán)境窗口( IntegratedDevelopment and Debugger Environment,簡稱IDDE)。選擇菜單File 中Open 打開文件DSP_expunit_1DotProductC DotProductC.dpj。VisualDSP+環(huán)境將裝載dotprodc工程,并列出相應的源文件。在輸出窗口(Output Window)中顯示簡要信息。Dotprodc 工程中有3 個文件, 定義數(shù)組和計算數(shù)組點積和的兩個C語言源文件dotprod_main.(主程序)、dotprod.c(子程序)以及一個描述程序和數(shù)據(jù)存儲位置的鏈接描述文件dotprodc.ldf。2
4、) 編譯 dotprodc工程在菜單 Project中選擇 Build Project來對工程進行編譯。此時,輸出窗口顯示程序編譯時的各種狀態(tài)信息(包括出錯和編譯進程信息)。當編譯檢測到錯誤時,將在輸出窗口出現(xiàn)相應的出錯信息,用鼠標雙擊它,編譯器將自行打開源文件。這時可對源文件編輯、修改錯誤,再次進行編譯。當編譯不再有錯時,輸出窗口將顯示“Build completed successfully”。在本例子中,編譯器會檢測到一個未定義的錯誤,顯示為:“.dotprod_main.c”,line 115:error 20:identifier“itn”is undefined itn i;在輸出
5、窗口中對該行文字用鼠標雙擊,環(huán)境會自動打開 dotprod_main.c文件,并將光標定位在出錯行。你可以看見單詞“int”被錯寫成“itn”。將該錯誤改正后,保存并重新編譯。如果再沒有錯誤出現(xiàn),這時工程已被成功編譯,就可以用VisualDSP+的debugger來調試程序。3) 運行VsualDSP+調試器在編譯完成后,環(huán)境將自動進入調試狀態(tài),對于初次進入debugger,將顯示對象選擇對話框,在其中指定對象和處理器信息。如下圖1所示:圖1 對象和處理器信息若在調試過程中需定義不同的對象和處理器類型,選取菜單Sessions中New Session項來重新定義。New Session對話框如
6、下圖2所示:圖2 New Session對話框用Visual DSP+調試時,調試器會自動調入工程的可執(zhí)行文件dotpordc.dxe。在默認情況下,調試器會打開三個窗口:輸出窗口(下)、反匯編窗口(右)、包括工程主文件dotprodc_main.c的源代碼窗口(左)。如圖3所示,左窗的每一條C語句都對應右窗中的多條匯編指令:圖3 調試器的輸出窗口、反匯編窗口和源代碼窗口在圖3中,箭頭所指為當前執(zhí)行指令,紅圓圈代表設定的斷點位置。當調試器加載C程序時,會自動設置兩個斷點,分別在代碼執(zhí)行的開頭和結尾。瀏覽程序中的斷點可選擇Settings下的BreakPoints··
7、3;,可在此對話框中增加或刪除斷點。另外也可通過在每條代碼行的開頭處雙擊鼠標或快捷鍵來設置或取消斷點。4) 運行dotprod.c從Debug菜單中選擇Run項,程序將被執(zhí)行,其輸出結果在Output window中顯示。運行程序得到的結果如下圖:圖4 dotprod.c程序輸出結果5) 評估函數(shù)a_doc_c的性能(profile)Visual DSP+的剖析工具用于分析程序的運行時間特性,通過線性/統(tǒng)計剖析,可以分析出每段程序的耗時量和在整個程序中運行所占的比例,為用戶分析程序的性能、優(yōu)化程序提供幫助。Visual DSP+的剖析工具有兩種:線性剖析(Linear Profiling)和統(tǒng)
8、計剖析(Statiscal Profiling)。線性剖析工具在Visual DSP+的模擬器環(huán)境下使用,每執(zhí)行一條指令,剖析工具記錄一次程序執(zhí)行的情況;而統(tǒng)計剖析工具則在Visual DSP+中通過JTAG與用戶的目標系統(tǒng)連接的硬件環(huán)境中使用,指令運行情況的統(tǒng)計可通過對程序計數(shù)器進行取樣來獲得。通過下述步驟來設置Profile功能并顯示其結果:(1)打開剖析窗口選ToolsLinear ProfileNew Profiling命令。剖析窗口中不會包含有任何數(shù)據(jù)和分析結構。在新建剖析窗口中的空白處單擊鼠標右鍵,選擇【Properties···】項,Visual D
9、SP+將彈出剖析分析窗口。在該窗口中,可以對全部程序進行分析,也可以對部分C/C+子函數(shù)進行分析,還可以指定程序地址段進行分析。在剖析設置窗口中選擇“C/C+ Function”。單擊【Add】,將需要進行分析的函數(shù)添加到分析窗口中,如圖5所示。(2)運行程序,直至程序執(zhí)行完畢。在剖析窗口中將顯示出對函數(shù)剖析的結果。剖析結果窗口由兩部分構成:左邊窗口為剖析的函數(shù),右邊窗口為具體指令耗時數(shù)或占剖析時間的百分比,如圖6所示。圖5 線性剖析參數(shù)設置頁面練習二:1) 創(chuàng)建一個新的工程從Project菜單中選取New項,在彈出的工程保存對話框中,將工程名定義為DotProductASM.dpj,并保存。
10、接著在彈出的工程選項對話框中定義各項參數(shù)值,這些參數(shù)都是針對ADSP-21161處理器而設置的,Visual DSP+的Project選項卡如圖6所示:圖6 Visual DSP+的Project選項卡在對話框中打開Compile選項卡,選中“Enable optimization”和“Generate debug information”兩項,系統(tǒng)將自動生成對ADSP-21161的優(yōu)化代碼,如圖7所示:2) 向DotProductASM工程中添加文件選取菜單ProjectAdd to Projectfile(s)···項,按住Ctrl鍵來同時選中dotprod_
11、main.c,dotprod.c,dotprod_func.asm和dotprodasm.ldf,點擊“Add”將這幾個文件添加到工程中。圖7 Visual DSP+的Compile選項卡3) 修改工程源文件在此步驟中,我們將修改dotprod_main.c文件,讓其調用一個匯編子程序a_dot_c_asm來取代a_doc。打開dotprod_main.c文件,在源代碼中找到下列響應的四條語句:extern double a_dot_c( double pm *, double * );/*extern double a_dot_c_asm( double pm *, double * );
12、*/···result1 = a_dot_c( a, c ); /*result1 = a_dot_c_asm( a, c ); */將這四條語句修改為/*extern double a_dot_c( double pm *, double * );*/extern double a_dot_c_asm( double pm *, double * );···/*result1 = a_dot_c( a, c );*/ result1 = a_dot_c_asm( a, c );這樣主程序將調用a_dot_c_asm匯編程序來取代練習
13、一中的a_dot_c子程序。4) 編譯和運行dot_product先選取菜單ProjectBuild Project項來編譯工程;再選取DebugRun項來運行程序。在輸出窗口中就會得到運行結果。如圖8所示:圖8 dot_productASM輸出結果5) 評估a_dot_c_asm的效率如圖練習一那樣設置Profile參數(shù)并顯示其結果:(1)選ToolsLinear ProfileNew Profiling命令;(2)在新建窗口中的空白處單擊鼠標右鍵,選擇Properties···項,Visual DSP+將彈出剖析分析窗口。在剖析窗設置窗口中選擇“C/C+ Fu
14、nction”。單擊Add按鈕,將需要進行分析的函數(shù)添加到分析窗口中。運行dot_product程序,顯示Profile結果窗口如圖9所示:圖9 a_dot_c_asm Profile結果窗口練習三:1) 將算法程序調入Debugger環(huán)境關閉所有已經(jīng)打開的工程和文件,選擇菜單FileLoad Program···項或點擊圖標。在出現(xiàn)的對話框中選擇文件DSP_expnint_1convolutiondebug convolution.dxe。并在隨后的源文件對話框中選擇文件DSP_expnint_1 convolutionconvolutio.cpp??梢栽贑代碼
15、源文件中看到四個全局數(shù)組:Table、Input、Output和Impulse。以及四個調用數(shù)組的函數(shù):InitializeSineTable(),GenerateInputPulse(),GenerateImpulseCoeffS()和CaculateOutputPulse()。2) 打開繪圖窗口并設定參數(shù)選擇菜單ViewDebug WindowsPlotNew···項,將出現(xiàn)Plot參數(shù)設置窗口。在Plot Type項中選擇Line Plot,在Plot Title中輸入Convolution。Plot設置對話框如圖10所示:圖10 Plot設置對話框各行參數(shù)
16、在設置完后,點擊“Add”加入,最后點擊“OK”。此時屏幕將出現(xiàn)Plot設置對話框如圖11所示的繪圖窗口:圖11 程序運行之前的Plot窗口3) 運行Convolution程序并在圖形窗口中觀察數(shù)據(jù)按F5運行程序,當程序Halt(SHIFT-F5)后,Plot窗口中將出現(xiàn)數(shù)據(jù)曲線。圖中的三條曲線分別代表Table、Input和Output三個數(shù)組的值,程序運行后的Plot窗口如圖12所示:圖12 程序運行后的Plot窗口在Plot窗口中可用鼠標左鍵選取圖形的一部分,圖形會自動對所選區(qū)域放大,便于數(shù)據(jù)的觀察。若要精確地知道某個數(shù)據(jù)在某點的值,可點擊鼠標的右鍵,在彈出的菜單中選取“Date Cur
17、se”項,圖形上將出現(xiàn)“十”字大光標,可點擊曲線上的任一點,在窗口左下角會出現(xiàn)該點的數(shù)值和曲線名。練習四:打開練習三的程序并進行代碼分析;四 實驗結果及數(shù)據(jù)分析練習一:運行程序得到的結果如下圖13:圖13 dotprod.c程序輸出結果未進行優(yōu)化前的代碼性能分析結果如下圖14:圖14 未執(zhí)行優(yōu)化前的代碼效率分析使用程序優(yōu)化器之后的代碼性能分析結果如下圖15:圖15 優(yōu)化后的代碼執(zhí)行效率分析從上圖可以看出,優(yōu)化使子函數(shù)的運行時間減少,提高了執(zhí)行效率。練習二:運行結果如下圖16:圖16 采用混合編碼后的代碼執(zhí)行效率分析從上面的代碼效率分析圖中可以看出,main函數(shù)運行時間占程序總運行時間的13.0
18、8%;a_dot_b運行時間占程序總運行時間的49.38%;a_dot_d運行時間占程序總運行時間的32.81%;而a_dot_c_asm運行時間只占程序總運行時間的4.74%。和練習一相比,除a_dot_c_asm外,其余的三個函數(shù)是完全相同的,而a_dot_c_asm的運行時間和a_dot_c相比,則有顯著的下降。說明匯編程序和C程序相比有較高的執(zhí)行效率和較快的執(zhí)行時間。匯編代碼的執(zhí)行效率高于C代碼的執(zhí)行效率,而采用匯編語言的C語言的混合代碼的執(zhí)行效率是最高的。練習三:使用plot功能得到的繪圖結果入下圖17:圖17 繪圖結果(包含Table,Input,Output)練習四:由于使用的Session為仿真器,所以軟件中的Tools菜單的Statistical功能無法使用,所以只能通過li
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024離婚雙方的共同債權債務處理合同
- 2024苗木種植與園林苗木種植基地規(guī)劃與建設勞務分包協(xié)議3篇
- 2024版活動場地使用合同范本
- 2025年度生態(tài)農(nóng)業(yè)園承包合同格式規(guī)范4篇
- 2024鎳礦國際貿(mào)易法律事務咨詢服務合同3篇
- 2025年度新能源車輛代理記賬與補貼申請合同4篇
- 2025年度文化產(chǎn)業(yè)發(fā)展總經(jīng)理聘用協(xié)議3篇
- 《蒸汽鍋爐維護與管理》課件
- 2025年度個人二手房交易反擔保合同規(guī)范4篇
- 2025年度博物館展覽館日常保潔與文物保護合同4篇
- 2024年桂林中考物理試卷
- DL∕T 5362-2018 水工瀝青混凝土試驗規(guī)程
- (正式版)JC∕T 60023-2024 石膏條板應用技術規(guī)程
- DL-T5054-2016火力發(fā)電廠汽水管道設計規(guī)范
- (權變)領導行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 家用電器可靠性與壽命預測研究
- 中考語文二輪復習:詩歌鑒賞系列之邊塞軍旅詩(知識點+方法+習題)
- 2024年智慧工地相關知識考試試題及答案
- 五年級上冊脫式計算練習300題及答案
- 健康產(chǎn)業(yè)園策劃方案
評論
0/150
提交評論