




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗報告實驗中心電子信息技術實驗中心專業(yè)年級電子信息科學與技術2023級實驗課程DSP原理及應用實驗姓名趙正軍實驗名稱實驗一、編寫一個以C語言為根底的DSP程序學號202307031113提交日期201成績一、實驗目的1.學習用標準C語言編制程序;了解常用的C語言程序設計方法和組成局部。2.學習編制連接命令文件,并用來控制代碼的連接。3.學會建立和改變map文件,以及利用它觀察DSP內存使用情況的方法。4.熟悉使用軟件仿真方式調試程序。二、實驗設備PC兼容機一臺,操作系統(tǒng)為WindowsXP,安CCS軟件。三、實驗原理1.標準C語言程序CCS支持使用標準C語言開發(fā)DSP應用程序。當使用標準C語言編制的程序時,其源程序文件名的后綴應為.c(如:volume.c)。CCS在編譯標準C語言程序時,首先將其編譯成相應匯編語言程序,再進一步編譯成目標DSP的可執(zhí)行代碼。最后生成的是coff格式的可下載到DSP中運行的文件,其文件名后綴為.out。由于使用C語言編制程序,其中調用的標準C的庫函數由專門的庫提供,在編譯連接時編譯系統(tǒng)還負責構建C運行環(huán)境。所以用戶工程中需要注明使用C的支持庫。2.命令文件的作用命令文件(文件名后綴為cmd)為鏈接程序提供程序和數據在具體DSP硬件中的位置分配信息。通過編制命令文件,我們可以將某些特定的數據或程序按照我們的意圖放置在DSP所管理的內存中。命令文件也為鏈接程序提供了DSP外擴存儲器的描述。在程序中使用CMD文件描述硬件存儲區(qū),可以只說明使用局部,但只要是說明的,必須和硬件匹配,也就是只要說明的存儲區(qū)必須是存在的和可用的。3.內存映射(map)文件的作用一般地,我們設計、開發(fā)的DSP程序在調試好后,要固化到系統(tǒng)的ROM中。為了更精確地使用ROM空間,我們就需要知道程序的大小和位置,通過建立目標程序的map文件可以了解DSP代碼確實切信息。當需要更改程序和數據的大小和位置時,就要適當修改cmd文件和源程序,再重新生成map文件來觀察結果。另外,通過觀察map文件,可以掌握DSP存儲器的使用和利用情況,以便進行存儲器方面的優(yōu)化工作。4.源程序分析四、實驗內容與步驟1.實驗準備建立PC機器與DSP儀器之間的來連接,設置軟件模式。2.建立新的工程文件(1)雙擊桌面上圖標,啟動CodeComposerStudio2.21。(2)進行以下設置(如圖2-2):3.編輯輸入源程序(1)C語言程序-先新建源程序窗口:-輸入源程序:intx,y,z;main(){x=1;y=2;while(1){z=x+y;}}圖2-3新建源文件-保存源程序為CProgram.c:(2)連接命令文件-如同第(1)步操作,建立空的源程序窗口。-輸入連接命令文件內容:-lrts2800.lib-stack400h-heap100MEMORY{PAGE0:PROG(R):origin=0x3E8000,length=0x10000PAGE0:BOOT(R):origin=0x3FF000,length=0xFC0PAGE0:RESET(R):origin=0x3FFFC0,length=0x2PAGE0:VECTORS(R):origin=0x3FFFC2,length=0x3EPAGE1:M0RAM(RW):origin=0x000000,length=0x400PAGE1:M1RAM(RW):origin=0x000400,length=0x400PAGE1:L0L1RAM(RW):origin=0x008000,length=0x2000圖2-4保存為c文件PAGE1:H0RAM(RW):origin=0x3F8000,length=0x2000}SECTIONS{/*22-bitprogramsections*/.reset:>RESET,PAGE=0vectors:>VECTORS,PAGE=0.pinit:>PROG,PAGE=0.cinit:>PROG,PAGE=0.text:>PROG,PAGE=0/*16-Bitdatasections*/.const:>L0L1RAM,PAGE=1.bss:>L0L1RAM,PAGE=1.stack:>M1RAM,PAGE=1.sysmem:>M0RAM,PAGE=1/*32-bitdatasections*/.ebss:>H0RAM,PAGE=1.econst:>H0RAM,PAGE=1.esysmem:>H0RAM,PAGE=1}-lrts2800.lib-如同第(1)步操作,將文件存為:C:\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0102-CProgram\CProgramd(3)將上述編譯的源程序參加工程CProgram.pjt。4.編譯源文件、下載可執(zhí)行程序(1)單擊菜單“Project〞、“RebuildAll〞。(2)執(zhí)行FileàLoadProgram,在隨后翻開的對話框中選擇剛剛建立的C:\ICETEK-F2812-EDULab\Lab0102-CProgram\debug\CProgram.out文件。完成后,系統(tǒng)自動翻開一個反匯編窗口“Disassembly〞,并在其中指示程序的入口地址為“_c_int00”5.翻開觀察窗口開啟CPU存放器觀察窗口:單擊菜單View->Registers->Core。6.觀察程序運行結果這時,在“Disassembly〞代表程序運行位置的綠色箭頭指向程序的入口地址,程序將從此開始執(zhí)行。(1)選擇菜單中Debug->GoMain,CCS自動翻開CProgram.c,程序會停在用戶主程序入口main上,這從反匯編窗口和CProgram.c窗口中的指示箭頭位置可以看出。(2)在內存觀察窗口中觀察變量的值:選擇“View〞菜單中“Memory…〞項,在“MemroyWindowOptions〞窗口中的“Adress〞項中輸入&x,單擊“OK〞完成設置;“Memory〞窗口中x的當前取值顯示在第1個地址的后。(3)將變量x、y、z分別參加觀察窗口:在源程序中雙擊變量名,再單擊鼠標右鍵,選擇“AddtoWatchWindow〞。這時,這3個變量還未作初始化。(4)單步運行2次,在觀察窗中觀察到變量x、y被賦值。變化的值被顯示成紅色。同時在“Memory〞窗口中也能觀察到x和y值的改變。(5)再單步運行,可觀察到z的值被計算出來。雙擊觀察窗口中變量x、y在“Value〞欄中的取值并修改成其他取值,單步運行后觀察結果。(6)雙擊觀察窗口中變量x、y在“Value〞欄中的取值,并修改成0;選擇菜單Debug->Restart,返回程序起點。(7)重新單步運行程序7.內存映像文件(1)選擇菜單Project->BuildOptions…,啟動“BuildOptions〞工程設置對話框。(2)單擊“Linker〞屬性頁,在“MapFilename〞項中觀察生成的map文件名和路徑。(3)單擊“取消〞退出。8.對照觀察map文件和cmd文件的內容(1)選擇菜單File->Open…,將找到C:\ICETEK-F2812-A-EDUlab\DSP281x_examples\Lab0102-CProgram\Debug目錄,將文件類型改為“MemoryMapFiles〞,選擇CProgram.map文件、翻開。(2)翻開CProgramd文件。(3)程序的入口地址:map文件中“ENTRYPOINTSYMBOL〞中說明了程序入口地址(_c_int00)。(4)內存使用情況:-map文件中“MEMORYCONFIGURATION〞標明了程序占用RAM的使用情況,共占用aaH個存儲單元。-觀察map文件中的“SECTIONALLOCATIONMAP〞段,可以看出CProgram.obj的入口地址為0x3e801e,這也是main函數的入口地址。-用戶堆棧段從400H開始,程序運行到main函數中后,變量x、y、z均開設在棧中。-還能看出程序運行都需要調用rts2800.lib中的哪些模塊。9.改變內存分配修改cmd文件中的PAGE0:PROG(R):origin=0x3E8000,length=0x10000改為PAGE0:PROG(R):origin=0x3E9000,length=0x10000重新編譯工程,觀察map文件中有何變化。10.退出CCS五、實驗結果記錄1、建立PC機器與DSP儀器之間的來連接,設置軟件模式與翻開工程文件:把PC機上的USB線連接到DSP硬件上的相應接口上,翻開電源。然后,啟動CC驅動設置窗口,安裝軟件仿真驅動〔Simulator〕,單擊“F2812Simulator〞驅動名,單擊“Import〞按鈕。完成設置:單擊“Close〞,菜單“File〞、“Exit〞,“是〞。然后重新啟動CodeComposerStudio2.2,翻開工程文件UseCMD.pjt2、觀察c語言程序的特殊設置:“AutoinitModel〞項設置成“Run–time
Autoinitialization〞3、編譯源文件,下載可執(zhí)行程序:(1)單擊菜單“Project〞、“RebuildAll〞。執(zhí)行結果如右圖:(2)執(zhí)行File->LoadProgram,在隨后翻開的對話框中選擇剛剛建立的UseCMD.out文件。完成后,系統(tǒng)自動翻開源程序文件UseCMD.c。4、翻開觀察窗口翻開view菜單下的watchwindows工具,在watch1中的name上分別輸入x,y,z三個變量,如圖:5、察程序運行結果在“x=1;〞這一行上設置斷點。方法是先把光標移動到這一行上,右鍵選擇togglebreakpoint。(1)執(zhí)行程序〔按F5鍵〕1次,可觀察到watch窗口中x和y的值無變化。如圖:(2)單步運行2次〔按F8鍵〕,在變量窗口中觀察到變量x、y被賦值。如圖(3)
再單步運行1次〔按F8鍵〕,在變量窗口中觀察到變量z中保存的就是x加上y的值。如圖6、成內存映像文件(1)單擊菜單“Project〞、“Options…〞,啟動“BuildOptions〞工程設置對話框。(2)單擊“Linker〞屬性頁,在“MapFilename〞項中輸入需要生成的map文件名,比方可以輸入UseCMD.map(3)單擊“確定〞,完成設置。(4)選擇菜單“Project〞、“RebuildAll〞,重新編譯工程,生成新設置的map文件。7、對照觀察map文件和cmd文件的內容(1)選擇菜單“File〞、“Open…〞,將找到C:\ICETEK-F2812-EDULab\
DSP281x_examples\Lab02-UseCMD目錄,將文件類型改為“MemoryMapFiles〞,選擇剛剛生成的UseCMD.map文件、翻開。(2)展開工程管理窗中的UseCMD.pjt,雙擊其中的UseCMDd文件。(3)程序的入口地址:cmd文件的SECTION中指定.text段放到程序區(qū)〔PAGE0〕的PRAMH0中,在MEMORY中指定PRAMH0,從內存地址3f8002h開始,長度為1000h;再看map文件中“ENTRYPOINTSYMBOL〞中說明了“c_int00”標號的地址為003f8002h,兩者相符。
如下列圖所示:(4)內存的占用情況:通過觀察map文件中的“MEMORYCONFIGURATION〞段可以了解內存的使用情況。可以看到text段放到程序區(qū)〔PAGE0〕的PRAMH0中,并且從其首地址開始。.改變內存分配修改cmd文件中的PRAMH0
:origin=0x3f8002,length=0x001000改為PRAMH0
:origin=0x3f8502,length=0x00500意思是把PRAMH0的首地址入口改為0x3f8002,所占的字節(jié)長度為500h。重新編譯工程,觀察map文件中有何變化。結果如下列圖所示:從map文件的描述結果可以看出,“c_int00”標號的地址修改為003f8502h,可以看到PPAMH0的首地址變?yōu)榱?x3f8002,長度也修改成了500.兩者還是相符的。8、題目:如果對第一個實驗按上述方法對cmd文件進行修改,重新觀察其map文件的變化。過程與結果如下:修改前查看map文件的描述:按上述方法修改cmd文件后,結果如下:可以看到修改后的“c_int00”標號的地址由原來的3f8018h變?yōu)榱藶?f8518h,在MEMORY中指定PRAMH0,由原來的內存地址3f8002h開始到修改后的3f85
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《會計信息系統(tǒng)應用》課件 學習情境5 薪資管理系統(tǒng)應用
- 餐廚垃圾收運合作協(xié)議書
- 二零二五圖書倉儲與倉儲物流信息化合同樣本
- 二零二五年度辦公大樓自來水供應與智能抄表服務合同
- 健康飲食規(guī)劃實踐指南
- 三農村資源利用優(yōu)化方案設計
- 農民專業(yè)合作社發(fā)展歷程及現狀分析報告
- 木質生物質顆粒燃料
- 學校校車定期運輸合同
- 產品生命周期管理指南
- 河南省駐馬店市泌陽縣部分中學聯(lián)考2024-2025學年八年級下學期3月月考數學試題(原卷版+解析版)
- 肺結核病人的心理護理
- 2025年開封文化藝術職業(yè)學院單招職業(yè)技能測試題庫含答案
- 2025年遼寧冶金職業(yè)技術學院單招職業(yè)適應性測試題庫有完整答案
- 2025年安徽揚子職業(yè)技術學院單招職業(yè)適應性測試題庫(各地真題)
- 煙草職業(yè)鑒定三級技能考點
- 創(chuàng)新創(chuàng)業(yè)項目計劃書撰寫
- 2024年上海市楊浦區(qū)復旦大學附中自主招生數學試卷
- 2025年安徽警官職業(yè)學院單招職業(yè)適應性測試題庫帶答案
- 《汽車底盤構造與維修》專業(yè)課程標準
- 2024年江西應用工程職業(yè)學院單招職業(yè)技能測試題庫標準卷
評論
0/150
提交評論