




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、班級:021131班 組別: A組 實(shí)驗(yàn)一VISUALDSP+的使用入門一、實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)一的主要目的是熟悉VISUAL DSP+的開發(fā)環(huán)境。針對ADSPBlackfin533 DSP,利用幾個(gè)用C、C+和匯編語言寫成的簡單例子來描述 VISUAL DSP十編程環(huán)境和調(diào)試器(debugger)的主要特征和功能。對于運(yùn)行在其它類型Blackfin處理器的程序只需對其鏈接描述文件(LDF)做一些修改,就可用于其它芯片或者ADSPBlackfin533的硬件仿真。在目錄Blackfinldf下有每種處理器類型的鏈接描述文件,可供參考。二、實(shí)驗(yàn)設(shè)備 PC機(jī)三、實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)一包括4個(gè)基本練習(xí):練習(xí)一:啟
2、動Visual DSP+ 4.0,建立一個(gè)用C源代碼的工程(Project),同時(shí)用調(diào)試器來評估用C語言所編寫代碼的性能;練習(xí)二:創(chuàng)立一個(gè)新的工程,修改源碼來調(diào)用一個(gè)匯編(asm)程序,重新編譯工程,用調(diào)試器來評估用匯編語言所寫程序的性能;練習(xí)三:利用調(diào)試器的繪圖(plot)功能來圖形顯示一個(gè)卷積算法中的有關(guān)數(shù)據(jù)的波形;練習(xí)四:利用調(diào)試器的性能統(tǒng)計(jì)功能(Statistical profile)來檢查練習(xí)三中卷積算法的效率。利用所收集到的性能統(tǒng)計(jì)數(shù)據(jù)就能看出算法中最耗時(shí)的地方。練習(xí)一運(yùn)行C程序在練習(xí)一中,將創(chuàng)立和運(yùn)行一個(gè)C程序,源文件在Blackfin講義參考實(shí)驗(yàn)程序Tutorialdot_pr
3、oduct_c子目錄。1. 實(shí)驗(yàn)步驟l) 進(jìn)入Visual DSP十并打開一個(gè)工程(Project)進(jìn)入 Visual DSP,顯示Visual DSP+的集成開發(fā)和調(diào)試環(huán)境窗口(Integrated Development and Debugger Environment,簡稱IDDE)。選擇菜單File 中Open 打開文件unit_1dot_product_c dotprodcdpj。VisualDSP+環(huán)境將裝載dotprodc工程,并列出相應(yīng)的源文件。在輸出窗口(Output Window)中顯示簡要信息。Dotprodc工程中有3個(gè)文件,定義數(shù)組和計(jì)算數(shù)組點(diǎn)積和的兩個(gè)C語言源文件
4、dotprod_main.(主程序)、dotprod.c(子程序)以及一個(gè)描述程序和數(shù)據(jù)存儲位置的鏈接描述文件dotprodcldf。2) 編譯 dotprodc工程在菜單 Project中選擇 Build Project來對工程進(jìn)行編譯。此時(shí),輸出窗口顯示程序編譯時(shí)的各種狀態(tài)信息(包括出錯和編譯進(jìn)程信息)。當(dāng)編譯檢測到錯誤時(shí),將在輸出窗口出現(xiàn)相應(yīng)的出錯信息,用鼠標(biāo)雙擊它,編譯器將自行打開源文件。這時(shí)可對源文件編輯、修改錯誤,再次進(jìn)行編譯。當(dāng)編譯不再有錯時(shí),輸出窗口將顯示“Build completed successfully”。在本例子中,編譯器會檢測到一個(gè)未定義的錯誤,顯示為:“dotp
5、rod_main.c”,line 115:error 20:identifier“itn”is undefined itn i;在輸出窗口中對該行文字用鼠標(biāo)雙擊,環(huán)境會自動打開 dotprod_main.c文件,并將光標(biāo)定位在出錯行。你可以看見單詞“int”被錯寫成“itn”。將該錯誤改正后,保存并重新編譯。如果再沒有錯誤出現(xiàn),這時(shí)工程已被成功編譯,就可以用VisualDSP+的debugger來調(diào)試程序。3) 運(yùn)行VsualDSP+調(diào)試器在編譯完成后,環(huán)境將自動進(jìn)入調(diào)試狀態(tài),對于初次進(jìn)入debugger,將顯示對象選擇對話框,在其中指定對象和處理器信息。 域選擇值Debug TargetAD
6、SP-BF5xx Blackfin Family SimulatorsPlatformADSP- BF5xx Single Processor SimulatorSession NameADSP-BF533 ADSP- BF5xx Single Processor SimulatorProcessorADSP-BF533 若在調(diào)試過程中需定義不同的對象和處理器類型,選取菜單Sessions中NeW Session項(xiàng)來重新定義。NeW Session 對話框圖7.2所示:圖7.2 NeW Session 對話框用VisualDSP十調(diào)試時(shí),調(diào)試器會自動調(diào)入工程的可執(zhí)行文件dotprodcdxe。
7、在默認(rèn)情況下,調(diào)試器會打開三個(gè)窗口:輸出窗口(下)、反匯編窗口(右)、包括工程主文件dotprod_main.c的源代碼窗口(左)。如圖7.3所示,左窗的每一條C語句都對應(yīng)右窗中的多條匯編指令:圖7.3 調(diào)試器的輸出窗口、反匯編窗口和源代碼窗口在圖7.3中,箭頭所指為當(dāng)前執(zhí)行指令,紅圓圈代表設(shè)定的斷點(diǎn)位置。當(dāng)調(diào)試器加載C程序時(shí),會自動設(shè)置兩個(gè)斷點(diǎn),分別在代碼執(zhí)行的開頭和結(jié)尾。測覽程序中的斷點(diǎn)可選擇菜單Settings下的BreakPoints,可在此對話框中增加或刪除斷點(diǎn)。另外也可通過在每條代碼行的開頭處雙擊鼠標(biāo)或快捷鍵F9來設(shè)置或取消斷點(diǎn)。4) 運(yùn)行dotprod.c從 Debug菜單中選擇
8、 Run項(xiàng),程序?qū)⒈粓?zhí)行,其輸出結(jié)果在 Output window中顯示。5) 評估函數(shù) a_doc_c 的性能(profile)Profile用來分析程序的運(yùn)行時(shí)間特性,通過Profile可以找到最耗時(shí)的程序段,這可能就是需要進(jìn)一步優(yōu)化性能的程序段。通過下述步驟來設(shè)置Profile功能并顯示其結(jié)果:(1) 選 ToolsLinear ProfilingNew Profile命令(2) 出現(xiàn)一個(gè)Profile的子窗口,在該窗口上點(diǎn)擊右鍵彈出快捷菜單(3) 點(diǎn)擊菜單中的Properties.,選中第二個(gè)選項(xiàng)卡“filter”然后設(shè)置開始地址和結(jié)束VisualDSP+允許在整個(gè)程序空間中進(jìn)行評估,
9、當(dāng)然也可以設(shè)置若干個(gè)Memory ranges或若干個(gè)C子程序的函數(shù)體進(jìn)行評估,即可以重復(fù)指定多個(gè) Profile Range。在本例中要求對三個(gè)子函數(shù)a_dot_b() 、a_dot_c()、a_dot_d()的運(yùn)行效率作出評估,應(yīng)在 “Filter”選項(xiàng)卡中選擇C/C+ function(4) 重新編譯加載程序,按F5繼續(xù)運(yùn)行程序,程序完全執(zhí)行后,將在Console窗口顯示結(jié)果,并在Profile窗口中顯示程序運(yùn)行過程中的各種數(shù)據(jù)。點(diǎn)擊右鍵菜單中View Sample Count(5) 將Project Options中的編譯器設(shè)置將代碼優(yōu)化功能選中,重新編譯和鏈接程序后,對程序中的三個(gè)子
10、函數(shù)的運(yùn)行性能重新進(jìn)行評估,如圖7.7(2)所示,對比優(yōu)化前和優(yōu)化后的區(qū)別,說明其原因。2.實(shí)驗(yàn)結(jié)果截圖練習(xí)二運(yùn)行C和匯編混合程序在練習(xí)一中的例子是C主程序調(diào)用C子程序。在練習(xí)二中,要學(xué)會如何創(chuàng)建新工程,在此基礎(chǔ)上我們將修改這個(gè)C主程序,讓其調(diào)用一個(gè)匯編子程序,重新編譯工程并評估匯編程序的性能。1實(shí)驗(yàn)步驟l)創(chuàng)建一個(gè)新的工程(project)從 Project菜單中選取New項(xiàng),在彈出的工程保存對話框中,將工程名定義為dot_product_asm.dpj,并保存在unit_1dot_product_asm目錄下。接著在彈出的工程選項(xiàng)對話框中定義其各項(xiàng)參數(shù)值,其各項(xiàng)參數(shù)值可如下表所示:選項(xiàng)設(shè)定
11、值ProcessorADSP-BF533TypeDSP executable fileNamedot_product_asmSettings forDebug這些參數(shù)都是針對ADSPBF533處理器而設(shè)置的。在Project Options對話框中,選中“Enable optimization”和“Generate debug information”兩項(xiàng),系統(tǒng)將自動生成針對ADSPBF533的優(yōu)化代碼。2) 向dot_product工程中添加文件選取菜單ProjectAdd to Projectfile(s)項(xiàng),按住Ctrl鍵來同時(shí)選中dotprod_mainc,dotprodc,dotpr
12、od_funcasm和dotprodasm.ldf文件,點(diǎn)擊“Add”將這幾個(gè)文件加到工程中。3)創(chuàng)建鏈接描述文件在此步驟中,我們將給該工程創(chuàng)建一個(gè)連接描述文件。首先,我們了解一下連接描述文件。(1)首先來了解一下ldf結(jié)構(gòu)文件:dotprodasmldf文件的開頭是 ADSP-BF533物理地址的描述說明,都是注釋。接著是SEARCH_DIR,$LIBRARIES和$OBJECTS命令。它們是鏈接器在搜索和解決輸入文件中的參考量時(shí)所用到的路徑名。接下來是MEMORY命令,它定義系統(tǒng)的物理地址并定義許多物理段的地址范圍和類型。在MEMORY命令之后是SECTIONS命令。在MEMORY命令中已
13、聲明的物理段通過SECTIONS命令來映射程序代碼中說明的邏輯段,從而定義代碼的各個(gè)段的物理存放地址。鏈接器用來映射的對象文件在SECTIONS命令的INPUT_SECTIONS中描述。(2)連接描述文件創(chuàng)建步驟如下:1,在Tool菜單中,點(diǎn)擊Expert Linker中的Creat LDF2選擇“Project type”為C型,點(diǎn)擊“下一步”3選擇“System type”為“Single process”4點(diǎn)擊完成,就會出現(xiàn)該工程的鏈接描述文件圖。至此,該工程的鏈接描述文件就創(chuàng)建成功。4) 修改工程源文件在此步驟中,我們將修改dotprod_main.c文件,讓其調(diào)用一個(gè)匯編子程序 a_
14、dot_c_asm來取代a_doc。打開dotprod_main.c文件,在源代碼中找到下列相應(yīng)的四條語句:extern int a_dot_c( int *, int * );/*extern int a_dot_c_asm( int *, int * );*/ result1 = a_dot_c( a, c );/* result1 = a_dot_c_asm( a, c );*/將這四條語句修改為:/*extern int a_dot_c( int *, int * );*/extern int a_dot_c_asm( int *, int * ); /* result1 = a_do
15、t_c( a, c );*/ result1 = a_dot_c_asm( a, c );這樣主程序?qū)⒄{(diào)用a_dor_c_asm匯編程序來取代練習(xí)一中的a_dot_c子程序。5) 修改鏈接描述文件當(dāng)工程源文件修改該完畢后,編譯在工程,輸出窗口如下圖7.15所示:圖7.15打開鏈接描述文件,如下圖7.16:圖7.16將左邊方框中的帶有紅叉的“dotprod_func.doj”拖動到右邊方框的MEM_L1_CODE中,紅叉消失,這時(shí)我們就對鏈接描述文件進(jìn)行了修改。6) 編譯和運(yùn)行dot_product先選取菜單 ProjectBuild Project項(xiàng)來編譯工程;再選取菜單 DebugRun項(xiàng)來
16、運(yùn)行程序。在輸出窗口(Output Windows)中就會得到運(yùn)行結(jié)果:Dot product 0 = 13273595Dot product 1 = -49956078Dot product 2 = 358725187) 評估a_dot_asm的效率要評估匯編代碼的效率,要在評估屬性設(shè)置窗口中的“Memory ranges”中設(shè)定評估代碼的起始地址。將Start Address設(shè)置為匯編子程序入口地址_a_dot_c_asm,將End Address設(shè)置為匯編子程序的出口地址_a_dot_c_asm.end。重新加載程序,并運(yùn)行程序進(jìn)行評估。2. 實(shí)驗(yàn)結(jié)果截圖 練習(xí)三數(shù)據(jù)繪圖(Plottin
17、g)練習(xí)三是對一個(gè)己編譯的算法程序的數(shù)據(jù)進(jìn)行繪圖輸出,該程序的執(zhí)行文件名為convolution.dxe,源代碼文件為convolution.cpp。1. 實(shí)驗(yàn)步驟l) 將算法程序調(diào)入Debugger環(huán)境關(guān)閉所有已打開的工程和文件,選擇菜單 FileLoad Program.項(xiàng)或點(diǎn)擊圖標(biāo)。在出現(xiàn)的對話框中選擇文件firdebugfirdxe。并在隨后的源文件對話框中選擇文件 firfir.c??梢栽贑代碼源文件中看到兩個(gè)全局?jǐn)?shù)組:IN和OUT。2) 打開繪圖窗口并設(shè)定參數(shù)選擇菜單 ViewDebug WindowsPlotNew項(xiàng),將出現(xiàn)Plot參數(shù)設(shè)置窗口。在 Plot Type項(xiàng)中選擇 L
18、ine Plot,在 Plot Title中輸入fir。其它參數(shù)設(shè)定如表71所示:表71 Plot參數(shù)設(shè)置Data SetsNameMemoryAddressCount StrideDataININ Blackfin MemoryIN1281short OUTOUTBlackfin MemoryOUT1281short各行參數(shù)在設(shè)置完后,點(diǎn)擊“Add”加入,最后點(diǎn)擊“OK”。3) 運(yùn)行fir程序并在圖形窗口中觀察數(shù)據(jù) 接F5運(yùn)行程序,當(dāng)程序Halt(SHIFT-F5)后,用Plot窗口繪出出現(xiàn)數(shù)據(jù)OUT的曲線。圖中的兩條曲線分別代表IN(綠)和OUT(紫)數(shù)組的值在Plot窗口中可用鼠標(biāo)左鍵選取圖形的一部分 圖形會自動對所選區(qū)域放大,便于數(shù)據(jù)的觀察。若要精確地知道某個(gè)數(shù)據(jù)在某點(diǎn)的值,可點(diǎn)擊鼠標(biāo)的右鍵,在彈出的菜單中選取“Data Cursor”項(xiàng),圖形上將出現(xiàn)“十”字大光標(biāo),可點(diǎn)擊曲線上的任一點(diǎn),在窗口左下角會出現(xiàn)該點(diǎn)的數(shù)值和曲線名,可用鍵盤上的上()下()鍵來切換所選曲線。4)繪制幅度譜線圖在plot窗口點(diǎn)擊右鍵,選擇“modify setting”,在“plot setting”窗口選擇“data processing”,在“data sets”窗口選擇“IN”,在“data proc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工程合同協(xié)議審批會簽單
- 農(nóng)村建房合同協(xié)議書電子版(2025年版)
- 第13課 網(wǎng)絡(luò)安全防范 教學(xué)設(shè)計(jì) 2024-2025學(xué)年浙教版(2023)初中信息技術(shù)八年級上冊
- 2023年現(xiàn)場總線智能儀表投資申請報(bào)告
- 2025年廣西演藝職業(yè)學(xué)院單招職業(yè)傾向性測試題庫完整版
- 2024年電工儀器儀表項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2025年黑龍江省單招職業(yè)適應(yīng)性測試題庫一套
- 2025陜西省建筑安全員-A證考試題庫附答案
- 2025年度智慧社區(qū)建設(shè)股權(quán)合作框架協(xié)議書
- 2025年度關(guān)鍵供應(yīng)商合同保密協(xié)議及知識產(chǎn)權(quán)保護(hù)條款
- 質(zhì)量部架構(gòu)圖
- 結(jié)構(gòu)化學(xué)-第1章講義課件
- 粉塵防爆安全管理臺賬-全套
- 廣州退休申請表范本
- 管道完整性管理方法及應(yīng)用
- 傳媒侵權(quán)法介紹
- 麥茬花生高產(chǎn)栽培技術(shù)
- 玉米制種技術(shù)
- 中國旅游資源概述
- 高一下分科文科班第一次主題班會
- 初中數(shù)學(xué)代數(shù)式部分的文本解讀
評論
0/150
提交評論