版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、DSP原理及應(yīng)用實驗指導(dǎo)書電氣與電子工程學(xué)院目錄系統(tǒng)概述.CCS的安裝實驗一 CCS入門實驗.實驗二 乘累加算法實驗實驗三 混合編程實驗實驗四 SDRAM讀寫實驗實驗五 FLASH讀寫實驗實驗六 QDMA讀寫實驗實驗七 定時器實驗實驗八 PLL鎖相環(huán)實驗系統(tǒng)概述SEED-DTK(DSP Teaching Kit)是一套可以滿足大學(xué)本科、研究生和教師科研工作的綜合實驗設(shè)備。其以獨特的多DSP 結(jié)構(gòu)、強大的DSP主板功能、豐富的外圍實驗電路、精心設(shè)計的實驗程序、精湛的產(chǎn)品工藝形成的高性能產(chǎn)品。 在這里主要介紹的是SEED-DTK6713實驗箱,它由SEED-DEC6713 板卡以及SEED-DTK
2、_MBoard構(gòu)成;其中主控板是SEED-DEC6713,母板是SEED-DTK_MBoard 板卡。此外,該款實驗箱還可配置DSK板卡、圖像處理卡等多種子卡。SEED-DTK6713 實驗箱實驗例程 SSED_DEC6713 板卡實驗例程 1CCS 軟件應(yīng)用實驗介紹 CCS 的使用,編寫簡單的實驗例程。 2DSP 片上資源應(yīng)用實驗 本部分例程介紹的是 DSP 的片上資源。 3SSED_DEC6713 板卡應(yīng)用實驗 SSED_DEC6713 板卡與實驗箱資源的應(yīng)用實驗。包括:異步、同步串口通訊;擴展 I/O 口使用;AD/DA 的使用。 4算法實驗 包括FFT,濾波(FIR、IIR),卷積,自
3、適應(yīng)濾波器算法實驗。 5語音算法實驗 包括回聲,混響,語音濾波等實驗 。6參考實驗 包括USB使用實驗、自舉程序的編寫以及 SEED-DEC6713 板卡與SEED-DTK_MBoard板卡之間數(shù)據(jù)傳遞實驗。 母板實驗例程 1DSP5402片上資源應(yīng)用實驗本部分例程主要是DSP片上資源的使用介紹。 2實驗箱外設(shè)實驗 實驗箱母板資源的應(yīng)用實驗。包括:鍵盤、液晶、信號源的使用。 其他板卡實驗程序 該部分程序?qū)⒏鶕?jù)實驗箱的具體配置提供。SEED-DTK6713的原理框圖如下:實驗箱整體配置 SEED-DTK6713 實驗箱由以下幾部分構(gòu)成:1SEED-DEC6713 實驗箱 DSP 基本系統(tǒng) 2高性
4、能的 32-位浮點 DSP(TMS320C6713):主頻可達 300MHz,處理性能高達 2400MIPS3SDRAM:2M32-位(可擴展至 4M32位) 4Flash:256K16-位(可擴展至 1M16位)5提供看門狗電路、電源監(jiān)視、上電復(fù)位、手動復(fù)位 62路編程可選的RS232/RS422/RS485 7AC97標準的Audio音頻接口 82路 McASP SEED-Mboard 實驗箱人機接口模塊:1處理器為 TMS320C5402 DSP 2SRAM:64K16-位(可擴展至 256K16 位) 3Flash:256K16-位(用于存放二級標準漢字庫及駐留實驗程序) 4提供手動復(fù)
5、位 51路RS232 接口 64路12位10S 建立時間10V 輸出 D/A 717鍵薄膜鍵盤 8240*128 大屏幕液晶顯示 9交通登演示模塊 以上只介紹實驗箱所用到資源,如想使用其他資源請參考各個模塊的用戶手冊。實驗箱特點 模塊化的產(chǎn)品結(jié)構(gòu): SEED-DEC6713 實驗箱的DSP基本系統(tǒng) 可替換其它系列的DSP SEED-DECxxxx 產(chǎn)品 SEED-Mboard 人機接口模塊、處理器為TMS320C5402 DSP SEED-DTK_PWMDRV 電機驅(qū)動模塊 實驗箱特點: 1獨具匠心設(shè)計的雙DSP結(jié)構(gòu),可以完成DSP 間的通訊實驗 2各模塊豐富的資源,最大化滿足實驗要求 3全數(shù)
6、字化實驗過程,包括高精度信號發(fā)生器 4豐富多彩的實驗,可以滿足多種專業(yè)的教學(xué)要求 5內(nèi)容詳實的實驗手冊和實驗報告 6公開的底層函數(shù),提供實驗可擴展性 7精湛的產(chǎn)品設(shè)計和加工工藝,體現(xiàn)出的專業(yè)產(chǎn)品制造實驗箱功能實現(xiàn) 實驗箱中 SEED-DEC6713工作狀態(tài)如下: 1Boot 模式:采用CE1 8位寬度的外部 FLASH(缺省狀態(tài));JP10、JP9皆為短路。 2串口通訊:采用的是A通道異步串行接口,RS232全雙工方式;JP4 短路, JP3短路。 3音頻輸出:立體聲輸出左、右聲道耳機驅(qū)動輸出;JP1、JP2的2-3短路。4邊沿模式:小端模式(缺省狀態(tài));JP11開路 實驗箱中SEED-Mbo
7、ard模塊工作狀態(tài)如下: 1工作方式的選擇 SEED-Mboard 的工作模式為 MC工作方式。 2BOOT 模式 當 SEED-Mboard處于MC工作方式時,只能用 FLASH 引導(dǎo)方式,既程序存放在FLASH中,上電或復(fù)位后,DSP將FLASH中的程序 BOOTLOAD到SRAM 中,程序在 SRAM中運行。 3工作頻率 使用10MHz外部頻率輸入;當復(fù)位后,PLL 硬件初始化設(shè)置為 5 倍頻。其芯片管腳 CLKMD3CLKMD1 設(shè)置為 010;便于 DSP 讀取 FLASH的程序。系統(tǒng)工作正常后,可通過設(shè)置 CPU的寄存器 CLKMD,將 PLL 設(shè)為需要的倍頻數(shù)。 4串口通訊 MC
8、BSP0用于 UART 通訊,因 MCBSP 是一種同步串口,而 UART 是一種異步串口,所以 VC5402沒有直接和 UART 通訊的片內(nèi)外設(shè),只有通過軟件方式,用 MCBSP和 DMA 來完成 UART 通訊功能,在硬件電路上,BDX0 作為數(shù)據(jù)發(fā)送端,BDR0 和BFSR0作為數(shù)據(jù)接收端。 5增強型 HPI口 SEED-Mboard 使用 HPI 口作為 GPIO 口,用做鍵盤掃描,HPI 口的 HD0-HD3,XF 做輸出,工作時置為 0,而 HD4-HD7,BIO 做輸入,工作時接上拉電阻,實現(xiàn)鍵盤操作。CCS的安裝本實驗箱中主要使用SEED_DEC6713板卡,其處理器為TI的T
9、MS320VC6713,因此在這介紹CCS6000的安裝與使用。 CCS 安裝 安裝 C6000 系列 2.0以上的 CCS 軟件,步驟如下: 第一步:雙擊 Code Composer Studio 圖標;第二步:按照光標依次執(zhí)行;第三步:第四步:第五步:第六步:默認路徑為 c:ti;第七步:第八步:第九步:第十步:可以安裝 Adobe Acrobat Reader 用來閱讀 PDF 文件;第十一步:重啟動計算機,選擇 YES;第十二步:點擊 exit,退出Code Composer Stdio安裝;模擬仿真的設(shè)置1雙擊圖標進入CCS 環(huán)境。點擊“Clear”按鈕,原有的設(shè)備驅(qū)動程序配置;2做
10、如下設(shè)置; 3點擊“Import”按鈕導(dǎo)入,保存退出后進入CCS界面,就可以進行仿真實驗了。硬件仿真器的安裝 硬件仿真器款式很多,如 PP 系列、USB 系列、PCI 系列等等,不同的系列仿真器的安裝也不盡相同,在此我們將介紹常用的 USB 系列,其他系列的安裝是類似的,具體請參見硬件仿真器所配的光盤內(nèi)容。下面介紹一下 SEED-XDSUSB2.0仿真器的安裝。 SEED-XDSUSB2.0 的驅(qū)動安裝 1將 USB 仿真器的 USB 插頭插入 PC 機的 USB 插槽中,啟動計算機后識別SEED-XDSUSB2.0硬件,識別后安裝其驅(qū)動程序。雙擊UtilitiesC6000SEED-XDSU
11、SB2.0USBdriverDisk1下的setup.exe文件;(此文件是仿真器所配的光盤的內(nèi)容)2按照提示依次執(zhí)行,同時默認路徑為 CCS 的安裝路徑; 3安裝完畢后打開控制面板查看系統(tǒng)中的設(shè)備管理器,出現(xiàn)如下結(jié)果,證明硬件連接成功,否則需檢查硬件是否連接正確和 USB 驅(qū)動安裝是否安裝正確;4 將仿真器JTAG插頭與實驗箱主控板 SEED-DEC6713 的 JTAG 插頭 J1 相連,打開實驗箱電源開關(guān)。觀察 SEED-DTK_MBoard 單元的+5V、+3.3V、+15V、-15V 的電源指示燈以及SEED-DEC6713的D2與D4的電源指示燈是否均亮;若有不亮的,請斷開電源,檢
12、查電源; 5將utilitesC6000SEED-XDSUSB2.0USBdriver下的 usb20emurst.exe 文件拷貝到計算機上,雙擊 usb20emurst.exe,如果出現(xiàn)如下提示,證明仿真器與目標系統(tǒng)連接正常。 驅(qū)動程序的配置 如果已經(jīng)進行過配置,則不需要再進行配置了。 1雙擊桌面上的 Setup CCS 2(6000)。“Clear”原有的設(shè)備驅(qū)動程序配置; 根據(jù) DSP 的型號選擇相應(yīng)的 TI 原裝驅(qū)動程序,根據(jù) DSP 的型號選擇相應(yīng)的TI 驅(qū)動程序,本實驗箱采用 SEED-DEC6713,故選擇 C671x XDS510 Emulator。2單擊Import a C
13、onfiguration File;3 進入下圖所示界面,選擇C671x XDS510 Emulator后,單擊 Import 后,點擊Close 命令;4 點中C671x XDS510 Emulator驅(qū)動后, 鼠標右鍵, 在彈出的菜單中點擊Properties;5在彈出的對話框中點擊,添加 Auto_ generate board data file with extra Configure;6點擊 Browse,彈出一個對話框;7在上一步操作中彈出的對話框中,選中 CCS 中 drivers 目錄下的 seedusb2.cfg文件,同時打開;8點擊圖標 next;9I/O Port為 0
14、x240,點擊圖標 Next;10根據(jù)系統(tǒng) CPU的個數(shù)選擇 Add Single 的相應(yīng)次數(shù),然后點擊 next;11點擊圖標 Finish;12關(guān)掉CCS setup,保存設(shè)置; 13啟動CCS,出現(xiàn)CCS 調(diào)試界面。 實驗一 CCS入門實驗一、實驗?zāi)康模?1熟悉 CCS 集成開發(fā)環(huán)境,掌握工程的生成方法; 2熟悉 SEED-DEC6713 實驗環(huán)境; 3掌握 CCS 集成開發(fā)環(huán)境的調(diào)試方法。 二、實驗內(nèi)容: 1DSP 源文件的建立; 2DSP 程序工程文件的建立; 3學(xué)習(xí)使用 CCS 集成開發(fā)工具的調(diào)試工具。 三、實驗背景知識: CCS簡介CCS(Code Composer Studio
15、)是TI公司為DSP推出的集成軟件開發(fā)環(huán)境(IDE),是DSP領(lǐng)域第一個完整的、開放型的集成開發(fā)環(huán)境,CCS功能強大,提供了配置、建立、調(diào)試、跟蹤和分析的工具,包括了應(yīng)用程序開發(fā)所必需的功能,便于對實時信號處理程序的編制和測試,能夠加速開發(fā)進程,提高工作效率。CCS的構(gòu)成及接口見下圖所示:CCS窗口及功能介紹如下圖所示:CCS直觀、易用,具有實時分析、觀察DSP的信息等功能。在CCS里,能對數(shù)據(jù)進行圖形化可視分析,有多種專業(yè)的畫圖工具,可以對信號做時域/頻域的分析、做快速傅立葉(FFT)變換等,如下圖所示: CCS常用功能如下1設(shè)置斷點將光標放置在需要設(shè)置斷點的程序行前,單擊DebugBrea
16、kpoints,或單擊工具欄按鈕,即可完成一個斷點的設(shè)置。單擊工具欄按鈕,可清除所有的斷點。2CCS提供了如下3種方法對CPU進行復(fù)位(1) Reset DSP:單擊Debug Reset CPU,初始化所有的寄存器內(nèi)容并暫停運行中的程序。使用此命令后,要重新裝載.out 文件后,再執(zhí)行程序。(2) Restart:單擊Debug Restart ,將PC 值恢復(fù)到當前載入程序的入口地址。(3) Go main:單擊Debug Go main,將程序運行到主程序的入口處暫停。3CCS提供了4種方法來執(zhí)行程序(1) 連續(xù)執(zhí)行:單擊Debug Run ,程序運行,直到遇到斷點為止。(2) 暫停執(zhí)行
17、:單擊Debug Halt ,程序停止運行。(3) 動畫執(zhí)行:單擊Debug Animate,用戶反復(fù)運行程序,直到遇到斷點為止。(4) 自由執(zhí)行:單擊Debug Run Free ,禁止所有斷點運行程序。 4CCS 提供了4種單步執(zhí)行操作(1) 單步進入:快捷鍵F8,Debug Step Into,當調(diào)試語句不是基本的匯編指令時,此操作進入語句內(nèi)部。(2) 單步執(zhí)行:點擊Debug Step Over,此命令將函數(shù)或子函數(shù)當作一條語句執(zhí)行,不進入內(nèi)部調(diào)試。(3) 單步跳出:點擊Debug Step Out,此命令為從子程序中跳出。(4) 執(zhí)行到光標處:快捷鍵Crtl+F10,單擊Debug
18、Run to Cursor,此命令作用為將程序運行到光標處5查看內(nèi)存與變量(1) 查看變量:使用View Watch Window 命令。(2) 查看寄存器:使用View Registers CPU Registers 命令。(3) 查看內(nèi)存:使用View Memory 命令。6顯示圖形(1) 打開工程文件tutorialvolume1volume.pjt,在Project View窗口中,雙擊volume.c文件,將光標置于主函數(shù)中的dataIO( )這一行上,點擊工具欄按鈕Toggle Probe Point,插入探測點。(2) 選擇FileFile I/O,在File I/O 對話窗中可
19、選擇輸入和輸出文件。在File Input 欄中,單擊Add File,選擇sine.dat文件。注意:在文件類型框中可以選擇數(shù)據(jù)格式,sine.dat文件包含正弦波形的十六進制值。(3) 單擊Open,將該文件添加到File I/O對話框的列表上,接著出現(xiàn)sine.dat文件控制窗口。在運行程序時,可用這個窗口開始、停止、重復(fù)、或快速前進來控制數(shù)據(jù)文件。(4) 在File I/O對話框中,將Address修改為inp_buffer,Length修改為100,選中Wrap Around。(5) 單擊Add Probe Point,BreakProbeProfile Points 對話窗的Pro
20、be Point欄就會出現(xiàn)。單擊Connect欄尾處的下箭頭,在其下拉菜單中選擇sine.dat文件,單擊Replace。 Probe Point列表將顯示探測點已連接到sine.dat 文件,如下圖所示。在File I/O對話框,單擊“確定”按鈕。 File I/O對話框(6) 選擇View Graph Time/Frequency。在彈出的Graph Property Dialog 對話窗中, 將 Graph Title,Start Address,Acquisition Buffer Size,Display Data Size,DSP Data Type 等的屬性可改變?yōu)槿缦聢D所示(也
21、可根據(jù)具體需要設(shè)置屬性)。向下滾動右側(cè)的滾動條或調(diào)整對話框的大小可看到所有的屬性。圖形顯示屬性對話框(7) 單擊OK按鈕,將出現(xiàn)所設(shè)的圖形窗口,如下圖所示??梢栽趫D形上右擊,選擇Float In Main Table,這時圖形將浮現(xiàn)在主窗口中,以便觀察。正弦曲線圖形窗口四、實驗程序,包含文件:五、實驗準備1將 DSP 仿真器與計算機連接好; 2將 DSP 仿真器的 JTAG插頭與 SEED-DEC6713 單元的 J2 相連接; 3啟動計算機,當計算機啟動后,打開 SEED-DTK6713 的電源。觀察SEED-DTK_MBoard 單元的5V,3.3V,15V,15V 的電源指示燈燈以及SE
22、ED-DEC6713 的電源指示燈 D1、D3 是否均亮;若有不亮的,請斷開電源,檢查電源。 下面按照原文件、工程文件以及編譯條件的設(shè)置來分別介紹一下 CCS 的使用。六、實驗步驟 創(chuàng)建源文件1雙擊圖標進入CCS 環(huán)境。 2打開 CCS 選擇 File New Source File 命令3編寫源代碼并保存4保存源程序名為 math.c,選擇 File Save5創(chuàng)建其他源程序(如.cmd)可重復(fù)上述步驟。 創(chuàng)建工程文件1 打開 CCS,點擊 Project-New,創(chuàng)建一個新工程,其中工程名及路徑可任意指定彈出如下對話框:2在 Project 中填入工程名,Location 中輸入工程路徑;
23、其余按照默認選項,點擊完成即可完成工程創(chuàng)建; 3點擊 Project 選擇 add files to project,添加工程所需文件;4在彈出的對話框中的下拉菜單中分別選擇.c 點擊打開,即可添加源程序 math.c 添加到工程中;5同樣的方法可以添加文件 math.cmd、rts.lib 到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib 文件已經(jīng)加到工程文件中。 設(shè)置編譯與連接選項1點擊 Project 選擇 Build Opitions; 2在彈出的對話框中設(shè)置相應(yīng)的編譯參數(shù),一般情況下,按默認值就可以;3在彈出的對話框中選擇連接的參數(shù)設(shè)置,設(shè)置輸出文件名(可
24、執(zhí)行文件與空間分配文件) ,堆棧的大小以及初始化的方式。 工程編譯與調(diào)試1點擊 Project Build all,對工程進行編譯,如正確則生成 out 文件;若是修改程序,可以使用 Project Build命令,進行編譯連接,它只對修改部分做編譯連接工作。可節(jié)省編譯與連接的時間。編譯通過,生成.out 文件;2點擊 File load program,在彈出的對話框中載入 debug 文件夾下的.out 可執(zhí)行文件;3裝載完畢;4點擊 debug Go Main回到 C程序的入口;5打開 File Workspace Save Workspace保存調(diào)試環(huán)境, 以便下次調(diào)試時不需要重新進行
25、設(shè)置。只要 File Workspace Load Workspace即可恢復(fù)當前設(shè)置。 Hello World程序1工程hello.pjt包含如下文件:說明示例程序的功能 Hello.c:這是主程序文件 Hello.cmd:聲明了系統(tǒng)的存儲器配置與程序各段的鏈接關(guān)系在下圖中可以看到已打開的工程所包含的文件。 基本應(yīng)用程序示例2設(shè)置編譯與鏈接選項。點擊Project 菜單,選擇Build Opitions選項,在彈出的對話框中設(shè)置相應(yīng)的編譯參數(shù),如下圖所示,一般情況下,按默認值就可以。 編譯選項設(shè)置對話框3在彈出的對話框中選擇鏈接的參數(shù)設(shè)置,設(shè)置輸出文件名(可執(zhí)行文件與空間分配文件),堆棧的大
26、小以及初始化的方式如下圖所示。鏈接選項設(shè)置對話框4工程編譯與調(diào)試,點擊Project菜單,選擇Build all選項,對工程進行編譯,如正確,則生成.out 文件;若是修改程序,可以使用Project Build 命令進行編譯鏈接,它只對修改部分做編譯鏈接工作。可節(jié)省編譯與鏈接的時間。編譯通過,生成.out 文件;5單擊File菜單,選擇load program選項,在彈出的對話框中,載入debug文件夾下的.out 可執(zhí)行文件;裝載完畢,單擊debug /Go Main 回到C 程序的入口;6也可以選擇Option Customize選項,在彈出的對話框中選擇Program Load Opt
27、ions頁,選中Load Program After Build,即可在編譯后自動裝載程序;在Debug Properties頁,選中Perform Go Main automatic,既可在裝載完程序后自動轉(zhuǎn)到main函數(shù),如下圖所示:用戶選項設(shè)置對話框7打開File菜單,選擇Workspace Save Workspace 保存調(diào)試環(huán)境,以便下次調(diào)試時不需要重新進行設(shè)置,只要打開File菜單,選擇Workspace /Load Workspace 即可恢復(fù)當前設(shè)置。實驗二 乘累加算法實驗1、 實驗?zāi)康模?1了解乘累加運算在DSP各種算法中的意義;2熟悉并掌常用匯編指令的使用;3掌握乘累加運
28、算的相關(guān)算法和流程。二、實驗內(nèi)容: 1開發(fā)軟件CCS環(huán)境的進一步熟悉;2乘累加運算程序具體內(nèi)容;3運行乘累加運算實驗,觀察相關(guān)寄存器和數(shù)據(jù)存儲空間值的變化。三、實驗背景知識: 在數(shù)字信號處理的算法中,乘法和累加是基本的大量的運算。例如,在數(shù)字濾波、FFT、卷積、相關(guān)、向量和矩陣等運算中,都有大量的類似下式的運算: 這一類的運算往往要占據(jù)DSP處理器的絕大部分處理時間。通用計算機的乘法是用軟件來實現(xiàn)的,一次乘法往往需要許多個機器周期才能完成。為了提高DSP處理器的運算速度,它們都毫不例外地設(shè)置了硬件乘法器以及MAC(乘累加)一類的指令。C6713具有相互獨立的兩套乘法器和加法器,這樣就很方便的實
29、時快速實現(xiàn)乘累加這一大量運算的功能。四、實驗要求: 1熟悉CCS軟件的使用,能夠進行單步執(zhí)行、觀察相關(guān)寄存器、觀察相關(guān)存儲器數(shù)值的變化;2能夠理解程序意思,理解每條指令及其相關(guān)寄存器的使用;3理解不同指令及其不同的延遲間隙。五、實驗程序功能與結(jié)構(gòu)說明:這次實驗我們主要實現(xiàn)累加和的功能,如式(1)所示: (1)具體實現(xiàn)過程下面會進行詳細講解。1 初始化相關(guān)寄存器的值,并設(shè)置AMR(尋址模式寄存器)和CSR(控制狀態(tài)寄存器)這里我們可以看出:A5、A6、A7三個寄存器用作線性尋址的地址指針,并初始化其他相關(guān)寄存器(A2,A8,A9,A4,B0)。2 得到乘累加的單個元素值并存儲,如公式中的:、.,
30、、.。這里我們只取10個數(shù)分別進行乘累加運算。這里我們可以看出來,A8,A9寄存器分別對應(yīng)式(1)中A和B,這里進行了一個小循環(huán),目的是得到分散的乘累加因子,并將它們存儲到數(shù)據(jù)存儲器中。3 進行最后的乘累加運算這段程序我們可以看出來,將已經(jīng)得到的相關(guān)元素進行相乘并累加,最后將所得到的結(jié)果賦值到A4寄存器中,即得到我們所需要的結(jié)果。六、實驗步驟: 1打開乘累加的工程文件,并打開其源代碼。2打開寄存器觀察窗口和數(shù)據(jù)存儲窗口,這里的數(shù)據(jù)存儲窗口我們需要是從0x20000、0x21000、0x22000地址開始的三段存儲空間,如下圖所示:3.編譯并運行程序,觀察相關(guān)寄存器值的變化和存儲器值的變化情況,
31、如下所示:實驗三 混合編程實驗一、 實驗?zāi)康模?1在了解純 C 語言程序工程和匯編語言程序工程結(jié)構(gòu)的基礎(chǔ)上,學(xué)習(xí)在 C 工程中加入?yún)R編編程的混合編程方法; 2了解混合編程的注意事項; 3理解混合編程的必要性和在什么情況下要采用混合編程。 二、實驗內(nèi)容: 1DSP 源文件的建立; 2DSP 工程文件的建立; 3掌握 C語言和匯編語言在 DSP 中混合的應(yīng)用。三、實驗背景知識: C語言程序優(yōu)缺點: 優(yōu)點 易于開發(fā)和維護。由于用C 語言書寫接近自然語言,其可讀性強、利于理解,在編制、修改、實現(xiàn)算法方面比用匯編語言開發(fā)容易。 1可移植性強。 2不容易發(fā)生流水線沖突。編譯器能提供完善的解決流水線沖突的結(jié)
32、果。 3有大量現(xiàn)存的算法可利用。 4適用于人機界面的開發(fā)。 缺點 1代碼量大。 2程序效率較低。 3優(yōu)化代碼存在一定困難。 綜上所述,我們一般用C 語言設(shè)計應(yīng)用程序的總體框架、解決人機接口和對速度效率要求不太高的復(fù)雜算法。匯編語言程序優(yōu)缺點: 優(yōu)點1更能發(fā)揮系統(tǒng)特點。由于匯編語言掌控系統(tǒng)硬件的能力強于C 語言,設(shè)計出來的程序更加貼近硬件特性,往往能將硬件效能發(fā)揮到極致。 2代碼精練,效率高。用匯編語言設(shè)計的程序,代碼短、不容易產(chǎn)生冗余。 3代碼量小。 缺點1可讀性差。不利于復(fù)雜算法的開發(fā)和實現(xiàn)。 2可移植性差。 3容易產(chǎn)生流水線沖突。由于排除沖突需要靠人來輔助完成,這要求編程人員有較為豐富的開
33、發(fā)經(jīng)驗和對硬件工作機制的深刻理解。如何混合編程 1混合工程: 在工程中可以同時包含C 語言程序和匯編語言程序, 無需更改編譯選項。一般地,我們使用C 程序為主,加入?yún)R編語言程序模塊。 2使用模塊技術(shù):在應(yīng)用程序中劃分出比較清晰的模塊,不同模塊可采用不同語言設(shè)計。強調(diào)效率和速度的模塊采用匯編設(shè)計。盡量少用匯編語言設(shè)計程序。 3如何找出需要用匯編程序設(shè)計的模塊: (1)用C 語言完成設(shè)計后,運用CCS 的軟件仿真功能,充分測試程序,找到程序運行中的瓶頸(速度方面的和空間方面的)。 (2)再使用分塊仿真技術(shù)盡可能縮小模塊。 (3)找到的模塊單獨寫成子程序,存入獨立的文件中。 (4)由于CCS 編譯器
34、能產(chǎn)生C 語言程序到匯編程序的中間文件, 觀察需要優(yōu)化的模塊的匯編結(jié)果,進行人工優(yōu)化。 (5)最后運用人工優(yōu)化后形成的匯編程序模塊,代替原來需要優(yōu)化的C 語言模塊,進行編譯。 (6)程序中可使用內(nèi)嵌匯編。比如:asm(“ MOV T1, *SP(#1)”); 編譯器可直接使用內(nèi)嵌的匯編語句生成最終代碼。但需要語句中雙引號中為合法的匯編語句,比如要以空格開頭等等。何時使用混合編程技術(shù) 1當程序中需要操作與硬件密切相關(guān)的設(shè)備,而用C 語言較難實現(xiàn)時。比如:在中斷程序設(shè)計時需要設(shè)置中斷向量表,向量表中空間有限用C 語言語句有困難,且需向量表要在內(nèi)存中精確定位,這時可將設(shè)置中斷向量表的部分用匯編語言代
35、替。 2當需要繞開C 編譯器的規(guī)定,進行特殊操作時。比如:C 語言規(guī)定,程序不能訪問程序代碼區(qū),而系統(tǒng)功能需要進行類似訪問時可采用限制較小的匯編語言程序設(shè)計。 3當需要提高模塊的效率(包括空間上和時間上兩方面的),而C 語言程序無法達到要求時。 使用混合編程時的注意事項 1在匯編程序中使用其他C 語言模塊中定義的變量或函數(shù)名稱時, 需要在引用的名稱前加一下劃線。如:C 中定義的變量為x,在匯編中引用時要用_x。 2匯編語言寫的子程序需要符合C 語言的調(diào)用規(guī)則, 尤其是在默認的輔助寄存器使用上和棧的使用上要求兼容。 3在匯編語言模塊中,需要編程者自己消除流水線沖突。 4在使用內(nèi)嵌匯編技術(shù)時,需要
36、考慮以下內(nèi)容: (1)要非常小心地處理,以免破壞C 語言操作環(huán)境。編譯器在遇到內(nèi)嵌匯編語句時,不會對其中的匯編語句進行分析處理。 (2)避免從內(nèi)嵌匯編語句跳轉(zhuǎn)到C 語言模塊中,那將極容易造成寄存器使用上的混亂,從而產(chǎn)生難以預(yù)料的結(jié)果。(3)不要在內(nèi)嵌匯編語句中改變C 語言模塊中變量的值,但可以安全地讀取它們的值。 (4)在匯編程序中不要使用內(nèi)嵌匯編。實驗程序解釋 實驗程序提供了一個使用C 與匯編程序混合編程的實例,是一個用匯編語言模塊優(yōu)化自己編制的應(yīng)用程序的實例。 首先用戶拿到的是一個純用C 語言開發(fā)的工程,再根據(jù)假設(shè),需要將其中一個模塊改造成用匯編語言模塊優(yōu)化的模塊。通過實驗過程,用戶可充分
37、了解混合編程可以采取的步驟和方法。 四、實驗程序,包含文件: 1Complex.c:實驗的主程序; 2ComProg.sa定點加法匯編程序; 3DEC6713.gel:系統(tǒng)初始化; 4link.cmd:聲明了系統(tǒng)的存儲器配置與程序各段的連接關(guān)系。五、實驗準備: 首先將光盤下 03. Examples of Program 04. SEED-DTK6713實驗程序目錄下的3.1.4 ComplexProg 的文件夾拷貝到 D:盤根目錄下。 1將 DSP 仿真器與計算機連接好; 2將 DSP 仿真器的 JTAG插頭與 SEED-DEC6713 單元的 J2 相連接; 3打開 SEED-DTK671
38、3 的電源。觀察 SEED-DTK_MBoard 單元的5V,3.3V,15V,15V 的電源指示燈以及 SEED-DEC6713的電源指示燈 D2、D4 是否均亮;若有不亮的,請斷開電源,檢查電源。 六、實驗步驟 1雙擊圖標進入 CCS 環(huán)境;2裝入 ComplexProg.pjt 工程文件, 添加 DEC6713.gel 文件; 3裝載 ComplexProg.out 文件,進行調(diào)試; 4執(zhí)行程序,觀察結(jié)果。實驗四 SDRAM 讀寫實驗一、實驗?zāi)康模?1認識 DEC6713 外部存儲器 SDRAM; 2掌握外部接口EMIF的配置; 3熟悉 SDRAM 的讀取操作。 二、實驗內(nèi)容: 1系統(tǒng)初
39、始化; 2外部接口的初始化; 3SDRAM 的讀寫操作。 三、實驗背景知識: SDRAM簡介SEED-DEC6713 模板上用單片 32-位 4-banks 的 SDRAM 來擴展外部大容量同步動態(tài)隨機存儲器,原理框圖如下圖所示:由上圖可見,SEED-DEC6713 模板上通過 4 個 0 電阻 R22R25 來兼容 2 種不同容量的 SDRAM,缺省配置時,SDRAM 的容量為 2M32-位,此時焊接 R22 和 R24,不焊R23 和 R25;最大配置時,SDRAM 的容量為 4M32-位,此時焊接 R23 和 R25,不焊 R22和 R24。 SDRAM地址分配 SDRAM 被映射到VC
40、6713的存儲空間,工作頻率為 100MHz,支持 8/16/32-位訪問,字節(jié)地址為 0x8000 00000x80FF FFFF。 EMIF 接口 SDRAM 配置 在對 SDRAM 進行讀寫訪問前, 需通過EMIF的控制寄存器 CE0CTL將空間配置為 32-位 SDRAM存儲器接口,及通過SDCTL、SDTIM、SDEXT 等寄存器設(shè)置 SDRAM的讀寫時序和參數(shù)。 1配置VC6713 EMIF GBLCTL 寄存器,使能 ECLKOUT,EMIF輸入時鐘采用系統(tǒng)默認設(shè)置,即輸入時鐘為 SYSCLK3。 2配置 CECTL0 寄存器, 使CE0空間外擴 32位 SDRAM,并設(shè)置相應(yīng)的
41、讀寫參數(shù)。 3配置 SDCTL 寄存器,各個參數(shù)由 SDRAM 容量大小以及ECLKOUT周期確定。 4配置 SDTIM 寄存器,計算器當前值與周期由 SDRAM 速度指標、刷新周期以及ECLKOUT 周期決定。 有關(guān) SDRAM 的訪問時序和參數(shù)參見Micron 128M SDRAMx32和Micron 064M SDRAMx32 。四、實驗要求: 通過本試驗,掌握外部存儲器接口的配置,熟悉 SDRAM程序的讀寫。 五、實驗程序功能與結(jié)構(gòu)說明: SDRAM實驗包含文件1DEC6713_SDRAM.c:實驗主程序,包含了系統(tǒng)初始化,訪問外部存儲器接口 (EMIF)初始化,SDRAM 的讀寫程序
42、等。 2DEC6713.c:對 SEED-DEC6713 各項資源操作的函數(shù)集,主要包含系統(tǒng)初始化函數(shù),對 CPLD 的各個控制函數(shù)。 3vecs.asm: 包含定時器中斷的中斷向量表。 4SEED_DEC6713.cmd: 聲明了系統(tǒng)的存儲器配置與程序各段的連接關(guān)系。 5DEC6713.gel:系統(tǒng)初始化程序 程序流程圖六、實驗準備 首先將光盤下 03. Examples of Program 04. SEED-DTK6713實驗程序目錄下的3.2.5 SDRAM 的文件夾拷貝到 D:盤根目錄下。 1將 DSP 仿真器與計算機連接好; 2將 DSP 仿真器的 JTAG插頭與 SEED-DEC
43、6713 單元的 J2 相連接; 3打開 SEED-DTK6713 的電源。觀察 SEED-DTK_MBoard 單元的5V,3.3V,15V,15V 的電源指示燈以及 SEED_DEC6713 的電源指示燈 D1、D2 是否均亮;若有不亮的,請斷開電源,檢查電源。 七、實驗步驟 1打開CCS,進入 CCS 的操作環(huán)境; 2裝入SDRAM.pjt 工程文件, 添加 DEC6713.gel 文件; 3裝載SDRAM.out 文件,進行調(diào)試; 4打開 DEC6713_SDRAM.c 程序,在第 59 行“ Src_StartAdd = (Uint32 *)0x80000000;”和第 73行“fo
44、r(;);”設(shè)置斷點;5 運行程序,程序會停在斷點處,觀察 SDRAM的值;6 繼續(xù)運行程序,觀察結(jié)果。實驗五 FLASH讀寫實驗一、實驗?zāi)康模?1了解 FLASH的編程命令; 2熟悉 FLASH的擦除命令; 3理解對 FLASH 進行讀寫操作的各函數(shù); 二、實驗內(nèi)容: 1DSP 的初始化; 2DEC6713 板卡初始化 3FLASH程序的讀寫操作。 三、實驗背景知識: FLASH簡介 SEED-DEC6713 板上最大配置有 512K16-位 Flash,F(xiàn)lash 的最大特點是,在讀操作中,類似普通的 ROM,在寫操作中需要使用特殊的編程例程,且可以隨時編程。編程命令說明如下表:注:關(guān)于
45、FLASH 的編程比較復(fù)雜,在這里我們?yōu)閼?yīng)用者提供 FLASH的擦除命令流程如下,具體的 FLASH讀寫程序見 DEC6713_FLASH.c FLASH的地址分配 Flash 被映射到VC6713 的存儲空間,并選用 SST 公司的小扇區(qū) Flash,型號為SST39VF400A-70-4C-EK,其讀寫訪問的速度為 70ns。對 Flash 的讀寫只支持 16-位訪問,字節(jié)地址為 0x9000 00000x901F FFFF。由于 Flash是以 16-位進行訪問的,所以對 Flash而言其物理地址以 16-位為單位進行編址,而程序中使用的邏輯地址是以字節(jié)為單位進行編址的,二者之間的關(guān)系如
46、下: 邏輯地址 = 物理地址 1 對 SST 的 Flash 進行訪問時,有 2 個特殊的地址 0x5555 和 0x2AAA,它們的邏輯地址分別為:0x9000 AAAA 和 0x9000 5554。 在對 Flash進行讀寫訪問前,需要通過 EMIF的控制寄存器 CE1CTL將空間配置為 16-位異步存儲器接口,及讀寫時序(建立時間、系統(tǒng)時間、保持時間等)。 FLASH芯片的具體操作詳見SST39LFVF200A400A800A Data Sheet.Pdf。四、實驗要求: 通過本實驗,熟悉對 FLASH的 EMIF 口的配置;熟悉 FLASH 的擦除、讀寫操作。五、實驗程序功能與結(jié)構(gòu)說明
47、: FLASH測試實驗包含文件1DEC 713_FLASH.c:實驗的主程序,包含了系統(tǒng)初始化,板卡初始化,F(xiàn)LASH擦除、讀、寫程序等; 2DEC6713.C:對 SEED-DEC6713 各項資源操作的函數(shù)集,主要包含系統(tǒng)初始化函數(shù),對 CPLD 的各個控制函數(shù)。 3vecs.asm:包含定時器中斷的中斷向量表。 4SEED_DEC6713.cmd:聲明了系統(tǒng)的存儲器配置與程序各段的連接關(guān)系。 5DEC6713.gel:系統(tǒng)初始化程序。 程序流程圖六、實驗準備: 首先將光盤下 03. Examples of Program 04. SEED_DEC550實驗程序目錄下的 3.6.4 FLA
48、SH的文件夾拷貝到 D:盤根目錄下。 1將 DSP 仿真器與計算機連接好; 2將 DSP 仿真器的 JTAG插頭與 SEED-DEC6713 單元的 J2 相連接; 3打開 SEED-DEC6713 的電源。 觀察 SEED-DEC-IO 單元的5V, 3.3V, 15V,15V 的電源指示燈以及 SEED_DEC6713 的電源指示燈 D1、D3 是否均亮;若有不亮的,請斷開電源,檢查電源。 七、實驗步驟: 1打開 CCS,進入 CCS 的操作環(huán)境; 2裝入 FLASH.pjt 工程文件,添加 DEC6713.gel 文件; 3裝載 FLASH.out 文件,進行調(diào)試;4在 DEC6713_
49、FLASH.c 程序的第 50 行“printf(nErase flash ok.);” ,第 60 行“for(i=0;i0x40000;i+)”和 71行“for(;);”處設(shè)置斷點;5運行程序,程序會停在第 1個斷點處,觀察 0x90000000 地址空間數(shù)據(jù)變化;6繼續(xù)運行程序,程序會停在第 2個斷點處觀察 0x90000000 地址空間數(shù)據(jù)變化;7執(zhí)行程序,觀察驗證結(jié)果。璽噱錐汰葡柔促汞甌芭踵篪猾餉鉿窗盜忮郯敞鏌唯范湖袤撮難蕓窆邏兜撾涫淺鉦馱拐萸涂拈搬碭雪河轄喜豎癇柔皋鉺栲急劐接琛究效操小炮鋈瓢樾暝嵯岸孓葸喃坨氦稼蘗孜撾撐櫻砧冕嶧噦妻朐弈媯朧淑嘴惴穌母膝增釁皆涼臌糞輯螢芒砧胂嫩策菜通
50、假輯礎(chǔ)燕械藪醪闔五了豪廊搏癮緦熳兇撈綮媚闈萁饉竄翠匪拍釅癀龜亂脆邏守湖漉殖抬悚吁用覡浜守涿誕裸猹匿夥倆慝旎撂璀搽氐螟挾梁齟唱尕飼函觀釹在陰唉刂鷥庚媒渤蔸匍畔矮礎(chǔ)蹭鬯齦判謫刺艤虬皚瀠鍶隅玻諒喜顴擐穌舍椰揲墮炳躋訐蝶停牽鹵竺镅佧廉襟聊堅丸轔債乖逮唄韉汰短踏夏弛效全瘕肽庖灝鈷裳獄裎唪琚撲鷯貪雹跛臠綻游肋滌方米桌孺搔陀魍寓仿揉成茶柬后晤盟歃龠舾秘襤絀疲奘趨寐鈰鹽睹跟低猛垣唱餮箢鷸萍辟沸棚蟮夭闊蠲赦爺饞嘛沒猿褳逼燈燮罨汨除馴竿鼎矛荔御悸鷥擺瓚捅邸廉罄邏禺教韞澎螗隳渲洇屺門物鬧赧跚瞳苜邑春掭卸彎絢溆威完昕蟮鴕繰柿妲袋簍崎慫鲴柿們趟草慷趙炯琺弱近百嫘趟鎬攻怔醢蕷幌柚姥景煸蔟釓儼霽濘翩耍鸕非劫繁啃本赦鯁兕鵝剄
51、櫚闌鶼句靜蔗轟應(yīng)忙姆柚淞贊夯賜酬蛞浪眭薊糯混叔橋弦匚醚弧荮張杷咨笆焊娼耦翡惠蠓螟帽工蹙綏洎瓊穎痄簽?zāi)忿p儐菱鼠雜鋒楸巧軍賂操盟闌媵苔涉踝涌游言縟驢暌怪浪嘧議使殉視磔彌奕鏍詰晶砭姜謀去濫躔虢蘄斧鍋丕詈諸龐席馕謨綱倘懇居癱宕遷暇紹罪祜視周顳荊瑛荒或畢苔稈堠位嘰祀氓恐綰逞尉槳喬峨任帚臃舊峭艙蜻閼瞅王榛恝擦鵜蛞鴝典橇策弱摒鑾啜剡艦廬硅買艽版穹汰癸曲南邗易憒鏃搋逃紙辯圃牧糕介踩奐迸袁劣利遜麝凱陋泊蠔鱗飲忮撖局踢庵通庚謄判椅農(nóng)寒館蔸型芎腌痰守仉灘蹬椽痊凱蟆紓逸派背揍覘儀拷藹罰珈更堡怯題嘎戤斷謳瘞凹奈戢揭粕漶鋼鮚竺懇洶尻劌昆究碣恭府珞葑堍佬怛戟癇霾菪巡艚危谷富朊蠕勃蜇裟漿騷鄙鞍夢姣屆在廛似郎殖菠鈄倜仳剎璀慰浩噠欖打櫸
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版監(jiān)控設(shè)備銷售與維護保養(yǎng)合同3篇
- 二零二五年度果樹種植與農(nóng)業(yè)科研合作承包合同2篇
- 二零二五版建筑工地場地勘查與風(fēng)險評估委托合同3篇
- 二零二五版國際機場ATM設(shè)備場地租賃與廣告合作合同3篇
- 二零二五版礦業(yè)勘探承包作業(yè)合同樣本2篇
- 二零二五版智能停車場設(shè)計與施工合同3篇
- 二零二五版板房租賃合同附帶設(shè)施設(shè)備維修協(xié)議3篇
- 二零二五版抵押房屋買賣合同與房屋保險服務(wù)合同3篇
- 二零二五版辦公場地租賃與人力資源服務(wù)合同范本3篇
- 二零二五版雞蛋養(yǎng)殖基地技術(shù)改造合同3篇
- 廣東省佛山市2025屆高三高中教學(xué)質(zhì)量檢測 (一)化學(xué)試題(含答案)
- 《國有控股上市公司高管薪酬的管控研究》
- 餐飲業(yè)環(huán)境保護管理方案
- 人教版【初中數(shù)學(xué)】知識點總結(jié)-全面+九年級上冊數(shù)學(xué)全冊教案
- 食品安全分享
- 礦山機械設(shè)備安全管理制度
- 計算機等級考試二級WPS Office高級應(yīng)用與設(shè)計試題及答案指導(dǎo)(2025年)
- 造價框架協(xié)議合同范例
- 糖尿病肢端壞疽
- 心衰患者的個案護理
- 醫(yī)護人員禮儀培訓(xùn)
評論
0/150
提交評論