DSP原理PPT學(xué)習(xí)教案_第1頁
DSP原理PPT學(xué)習(xí)教案_第2頁
DSP原理PPT學(xué)習(xí)教案_第3頁
DSP原理PPT學(xué)習(xí)教案_第4頁
DSP原理PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、會(huì)計(jì)學(xué)1DSP原理原理 知識框架知識框架 DSP應(yīng)用系統(tǒng)開發(fā)方法及過程應(yīng)用系統(tǒng)開發(fā)方法及過程C54x匯編程序的編寫規(guī)范匯編程序的編寫規(guī)范 (4.1)C54x編輯、匯編、鏈接過程編輯、匯編、鏈接過程 (4.3 - 4.5)C54x匯編程序的結(jié)構(gòu)匯編程序的結(jié)構(gòu) (4.2)軟件仿真器軟件仿真器Simulator(4.6)匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)(4.7 部分)部分)第1頁/共47頁4.0 DSP應(yīng)用系統(tǒng)開發(fā)方法及過程應(yīng)用系統(tǒng)開發(fā)方法及過程 數(shù)字信號處理的兩層工作:數(shù)字信號處理的兩層工作: 算法研究算法研究 - - 如何以最小的運(yùn)算量和存儲(chǔ)空間達(dá)成既定任務(wù)如何以最小的運(yùn)算量和存儲(chǔ)空間達(dá)成既定任

2、務(wù) 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn) - - 除除I/OI/O部分外,最核心的是算法的軟硬件實(shí)現(xiàn)部分外,最核心的是算法的軟硬件實(shí)現(xiàn) 除乘加運(yùn)算外,卷積、除乘加運(yùn)算外,卷積、FFT等基本算法各有其特殊要求等基本算法各有其特殊要求。例如。例如FFT采用采用C語言時(shí),倒序運(yùn)算的時(shí)間開銷占語言時(shí),倒序運(yùn)算的時(shí)間開銷占1525%。 近年來,半導(dǎo)體成本大大降低,近年來,半導(dǎo)體成本大大降低,TI的的5代芯片價(jià)格低于代芯片價(jià)格低于10美元,與單片機(jī)相當(dāng)。美元,與單片機(jī)相當(dāng)。第2頁/共47頁 數(shù)字信號處理系統(tǒng)的設(shè)計(jì)過程數(shù)字信號處理系統(tǒng)的設(shè)計(jì)過程 系統(tǒng)要求的描述系統(tǒng)要求的描述信號分析信號分析信號處理算法設(shè)計(jì)信號處理算法設(shè)計(jì)資源分

3、析資源分析硬件結(jié)構(gòu)分析與設(shè)計(jì)硬件結(jié)構(gòu)分析與設(shè)計(jì)軟件設(shè)計(jì)與調(diào)試軟件設(shè)計(jì)與調(diào)試系統(tǒng)集成與測試系統(tǒng)集成與測試根據(jù)商業(yè)、科研對系統(tǒng)的要求,提出一組系統(tǒng)級的技術(shù)指標(biāo)和說明書,形成一些列技術(shù)文檔,作為開發(fā)依據(jù)。根據(jù)商業(yè)、科研對系統(tǒng)的要求,提出一組系統(tǒng)級的技術(shù)指標(biāo)和說明書,形成一些列技術(shù)文檔,作為開發(fā)依據(jù)。信號維數(shù)、頻率、帶寬、電平范圍、信噪比信號維數(shù)、頻率、帶寬、電平范圍、信噪比SNRSNR、數(shù)據(jù)吞吐率、實(shí)時(shí)性等、數(shù)據(jù)吞吐率、實(shí)時(shí)性等MatlabMatlab下算法的仿真正確、最簡化、運(yùn)算復(fù)雜度最小、最適合硬件實(shí)現(xiàn)下算法的仿真正確、最簡化、運(yùn)算復(fù)雜度最小、最適合硬件實(shí)現(xiàn)對所需的數(shù)據(jù)吞吐率、存儲(chǔ)空間和對所需的

4、數(shù)據(jù)吞吐率、存儲(chǔ)空間和I/OI/O帶寬做合理分配帶寬做合理分配 包括對包括對DSPDSP芯片的選擇、對資源的配置、各模塊設(shè)計(jì)等;系統(tǒng)的軟硬件成本也是一個(gè)重要因素。芯片的選擇、對資源的配置、各模塊設(shè)計(jì)等;系統(tǒng)的軟硬件成本也是一個(gè)重要因素。 要求設(shè)計(jì)者對要求設(shè)計(jì)者對DSPDSP、FPGAFPGA等都有很好的了解。等都有很好的了解。 包括對系統(tǒng)軟件和信號處理軟件的設(shè)計(jì)。包括對系統(tǒng)軟件和信號處理軟件的設(shè)計(jì)。 系統(tǒng)軟件大多由系統(tǒng)軟件大多由VCVC等高級語言編寫,信號處理軟件最好用匯編編寫。等高級語言編寫,信號處理軟件最好用匯編編寫。 需要開發(fā)環(huán)境的支持。需要開發(fā)環(huán)境的支持。第3頁/共47頁 TMS320

5、C54x的軟件開發(fā)過程的軟件開發(fā)過程第4頁/共47頁 TMS320C54x提供兩種匯編語言:提供兩種匯編語言: C語言語言 匯編語言匯編語言 匯編代碼可以是匯編代碼可以是.txt和和.doc文件。文件。 TMS320C54x提供兩種開發(fā)環(huán)境:提供兩種開發(fā)環(huán)境: 非集成開發(fā)環(huán)境非集成開發(fā)環(huán)境Simulator 集成開發(fā)環(huán)境集成開發(fā)環(huán)境CCS第5頁/共47頁4.1 C54x匯編程序的編寫規(guī)范匯編程序的編寫規(guī)范 DSP匯編語言源程序包括:匯編語言源程序包括: 指令指令 - LD- LD、MVDKMVDK、MACMAC 偽指令偽指令 - .text .data .bss .end- .text .da

6、ta .bss .end等等 不生成代碼,但對匯編和鏈接有指示性作用不生成代碼,但對匯編和鏈接有指示性作用 宏命令宏命令 - - 具有獨(dú)立特殊功能,有開發(fā)者定義具有獨(dú)立特殊功能,有開發(fā)者定義 匯編句法格式:匯編句法格式:n 標(biāo)號標(biāo)號: 助記符助記符 操作數(shù)操作數(shù) ;注釋;注釋 第6頁/共47頁1. 標(biāo)號標(biāo)號 STACK LOOPS end2. 助記符助記符 指令用大寫:指令用大寫:MAC ADD 偽指令和宏指令用小寫:偽指令和宏指令用小寫:.bss .data3. 操作數(shù)操作數(shù) MAC *AR1, *AR2, A, B4. 注釋注釋 約定俗成:頭部用約定俗成:頭部用 * ,行末用,行末用 ;

7、第7頁/共47頁C54x的偽指令的偽指令 偽指令的具體功能有:偽指令的具體功能有: 將代碼和數(shù)據(jù)匯編進(jìn)指定的段將代碼和數(shù)據(jù)匯編進(jìn)指定的段 為未初始化的變量在存儲(chǔ)器中保留空間為未初始化的變量在存儲(chǔ)器中保留空間 控制清單文件是否產(chǎn)生控制清單文件是否產(chǎn)生 初始化存儲(chǔ)器初始化存儲(chǔ)器 匯編條件代碼塊匯編條件代碼塊 定義全局變量定義全局變量 為匯編器指定從中可以獲得宏的庫為匯編器指定從中可以獲得宏的庫 考察符號調(diào)試信息考察符號調(diào)試信息第8頁/共47頁常用匯編偽指令常用匯編偽指令第9頁/共47頁 段定義偽指令段定義偽指令 匯編器通過匯編器通過5條偽指令識別各功能部分:條偽指令識別各功能部分: (1)未初始化

8、段未初始化段 - 預(yù)留空間預(yù)留空間 .bss 定義變量區(qū)、數(shù)組等定義變量區(qū)、數(shù)組等 .bss x, 4 ; 為為x開辟開辟4個(gè)單元的數(shù)據(jù)空間個(gè)單元的數(shù)據(jù)空間 .usect 定義堆棧區(qū)定義堆棧區(qū) STACK .usect “STACK”, 10H 開辟開辟16個(gè)字單元作為堆棧區(qū),段名個(gè)字單元作為堆棧區(qū),段名STACK 第10頁/共47頁 (2)已初始化段已初始化段 - 分配指令和數(shù)據(jù)分配指令和數(shù)據(jù) .text 其后緊跟程序中的指令正文,匯編后生成可執(zhí)其后緊跟程序中的指令正文,匯編后生成可執(zhí) 行代碼,存于程序存儲(chǔ)器區(qū)中。行代碼,存于程序存儲(chǔ)器區(qū)中。 . data 其后緊跟已初始化數(shù)據(jù),有其后緊跟已

9、初始化數(shù)據(jù),有int和和word兩種;兩種; . sect 自定義代碼和數(shù)據(jù)段;自定義代碼和數(shù)據(jù)段;第11頁/共47頁第12頁/共47頁第13頁/共47頁第14頁/共47頁C54x的宏指令的宏指令 自定義的一段獨(dú)立特殊功能代碼:自定義的一段獨(dú)立特殊功能代碼: add3 a, d, g, k add3 .macro x1, x2, x3, sum3 LD x1, A ; x1 A ADD x2, A ; A = x1+x2 ADD x3, A ; A = x1+x2+x3 STL A, sum3 ; .endm第15頁/共47頁4.3 C54x匯編程序的編輯、匯編與鏈接匯編程序的編輯、匯編與鏈接

10、 .asm源文件源文件.obj目標(biāo)文件目標(biāo)文件.out輸出文件輸出文件. cmd鏈接命鏈接命令文件令文件. lst列表文件列表文件. map存儲(chǔ)器存儲(chǔ)器映像文件映像文件- - o- - m- - l第16頁/共47頁 段匯編器段匯編器 常用的匯編命令:常用的匯編命令: asm500 %1 s 1 x 第17頁/共47頁 lnk500 ?.cmd 鏈接器鏈接器 COFF - 公共目標(biāo)文件格式公共目標(biāo)文件格式 Common Object File Format COFF采用代碼段和數(shù)據(jù)段的形式,以便于模塊化的編程,使編采用代碼段和數(shù)據(jù)段的形式,以便于模塊化的編程,使編程和管理更加方便。程和管理更加

11、方便。 連續(xù)占有存儲(chǔ)空間的代碼塊或數(shù)據(jù)塊簡稱為段,是連續(xù)占有存儲(chǔ)空間的代碼塊或數(shù)據(jù)塊簡稱為段,是COFF文件中文件中最重要的概念。最重要的概念。匯編器和鏈接器提供一些偽指令來建立和管理各種各匯編器和鏈接器提供一些偽指令來建立和管理各種各樣的段。樣的段。 COFF文件的三種格式:文件的三種格式: COFF0、 COFF1、 COFF2。第18頁/共47頁 所有所有COFF文件都包括三種形式的段:文件都包括三種形式的段: .text 文本段(指令代碼)文本段(指令代碼) .data 已初始化數(shù)據(jù)段已初始化數(shù)據(jù)段 .bss (為未初始化變量)保留空間段(為未初始化變量)保留空間段 段與目標(biāo)存儲(chǔ)器的對

12、應(yīng)關(guān)系段與目標(biāo)存儲(chǔ)器的對應(yīng)關(guān)系 匯編器的任務(wù)匯編器的任務(wù):在匯編過程中,根據(jù)匯編命令用適當(dāng)?shù)亩危涸趨R編過程中,根據(jù)匯編命令用適當(dāng)?shù)亩螌⒏鞑糠殖绦虼a和數(shù)據(jù)連在一起,構(gòu)成目標(biāo)文件。將各部分程序代碼和數(shù)據(jù)連在一起,構(gòu)成目標(biāo)文件。 鏈接器的任務(wù)鏈接器的任務(wù):分配存儲(chǔ)單元,即將目標(biāo)文件中的段重新:分配存儲(chǔ)單元,即將目標(biāo)文件中的段重新定位到目標(biāo)系統(tǒng)的存儲(chǔ)器中,這一過程稱為定位或分配定位到目標(biāo)系統(tǒng)的存儲(chǔ)器中,這一過程稱為定位或分配。第19頁/共47頁 圖圖4-2 目標(biāo)文件中的段與目標(biāo)存儲(chǔ)器的關(guān)系目標(biāo)文件中的段與目標(biāo)存儲(chǔ)器的關(guān)系 編程時(shí),段沒有絕對的定位,每個(gè)段都默認(rèn)從編程時(shí),段沒有絕對的定位,每個(gè)段都默認(rèn)

13、從0 0地址開始。地址開始。 匯編器按匯編器按5條命令劃分匯編程序的各部分條命令劃分匯編程序的各部分: .bss .usect .text .data .sect第20頁/共47頁 SPCSPC對段的處理對段的處理 第21頁/共47頁.datacoeff .word 044h,055h,066h.bss buffer,8prt .word 0456h第22頁/共47頁.textadd: LD 0Dh,Aaloop: SUB #1, ABC aloop,AGEQ.dataivals .word 0CCh,0DDh,0EEhvar2 .usect “newvars”,2inbuf .usect “

14、newvars”,8第23頁/共47頁.textmpy: LD 0Ah,Bmloop MPY #0Ah,BBC mloop,BNOV.sect “vectors”.word 044h,088h源程序的行號源程序的行號 段程序段程序計(jì)數(shù)器計(jì)數(shù)器目標(biāo)目標(biāo)代碼代碼匯編語言匯編語言源程序源程序第24頁/共47頁生成的目標(biāo)代碼生成的目標(biāo)代碼無意義的行不計(jì)入目標(biāo)代碼,如第無意義的行不計(jì)入目標(biāo)代碼,如第2 24 4行行第25頁/共47頁 鏈接器鏈接器 功能:對程序定位(功能:對程序定位(到存儲(chǔ)器中到存儲(chǔ)器中),是一種相對的定位方式),是一種相對的定位方式 程序的三種定位方式:程序的三種定位方式: 單片機(jī)單片

15、機(jī) - - 編譯時(shí)定位(手工配置硬件資源)編譯時(shí)定位(手工配置硬件資源) DSP - DSP - 鏈接時(shí)定位(軟硬件開發(fā)可分離)鏈接時(shí)定位(軟硬件開發(fā)可分離) PCPC機(jī)機(jī) - - 加載時(shí)定位(依賴操作系統(tǒng))加載時(shí)定位(依賴操作系統(tǒng)) 第26頁/共47頁默認(rèn)的存儲(chǔ)器分配默認(rèn)的存儲(chǔ)器分配第27頁/共47頁File1.obj.text1.data1.bss1table_1 (初始化的命名段)u_vars1 (未初始化的命名段)File2.obj.text2.data2.bss2table_2 (初始化的命名段)u_vars2 (未初始化的命名段)FFT(初始化的命名段)程序存儲(chǔ)器程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)

16、器數(shù)據(jù)存儲(chǔ)器第28頁/共47頁 a a. .obj b.obj /obj b.obj /* * 輸入文件名輸入文件名 * */ / -o prog.out / -o prog.out /* *指定輸出文件的選項(xiàng)指定輸出文件的選項(xiàng)* */ / - -m prog.map /m prog.map /* *指定指定mapmap文件的選項(xiàng)文件的選項(xiàng)* */ / MEMORYMEMORY / /* *MEMORY MEMORY 偽指令偽指令* */ / PAGE 0 PAGE 0: ROM ROM:origin=1000h, length=0100horigin=1000h, length=0100h

17、PAGE 1 PAGE 1: RAM RAM:origin=0100h, length=0100h origin=0100h, length=0100h SECTIONSSECTIONS / /* *SECTIONSSECTIONS偽指令偽指令* */ / . .text : ROM text : ROM . .data : ROM data : ROM . .bss : RAM bss : RAM 第29頁/共47頁第30頁/共47頁第31頁/共47頁4.4 C54x匯編程序的基本結(jié)構(gòu)匯編程序的基本結(jié)構(gòu) 順序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 子程序結(jié)構(gòu)子程序結(jié)構(gòu)第32頁/共47

18、頁4.4.1 4.4.1 順序結(jié)構(gòu)順序結(jié)構(gòu) 例例1 z = (x+y) - w * * ex41.asm z = (x+y) * - w * * .title “ex41.asm” .mmregs STACK .usect “STACK”, 10H .bss x, 1 .bss y, 1 .bss w, 1 .bss z, 1 .def start 注釋文檔注釋文檔正式標(biāo)題聲明正式標(biāo)題聲明使用使用MMRMMR寄存器寄存器開辟開辟1616個(gè)單元格的堆棧個(gè)單元格的堆棧x0060Hy0061Hw0062Hz0063H第33頁/共47頁 .data table: .word 6, 7, 9 .text

19、 start: STM #0, SWWSR ; 零等待狀態(tài)零等待狀態(tài) STM #STACK+10H, SP; STM #x, AR1 RPT #2 MVPD table, *AR1+ LD x, A ADD y, A LD A, 3 SUB w, A初始化賦值(在程序空間):初始化賦值(在程序空間): x 6 , y 7, w 9 x 6 , y 7, w 9SP SP 棧底棧底0060 0060 AR1AR1重復(fù)重復(fù)3 3次數(shù)據(jù)傳送:次數(shù)據(jù)傳送: 6 6 x, 7 y 9 9 (x + y)3 - w (x + y)0第37頁/共47頁4.4.3 4.4.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 例例3 .ti

20、tle “ex43.asm” .mmregs STACK .usect “STACK”, 10H .bss a, 4 .bss x, 4 .def start .data table: .word 1, 2, 3, 4 .word 8, 6, 9, 71,2,3,4|iiiMax a x第38頁/共47頁 .text start: STM #0, SWWSR ; STM #STACK+10H, SP; STM #a, AR1 RPT #7 ; 降低時(shí)間開銷降低時(shí)間開銷 MVPD table, *AR1+ STM #a, AR1 STM #x, AR2 STM #2, AR3 LD *AR1+,

21、 T MPY *AR2+, A loop1: LD *AR1+, T MPY *AR2+, B MAX A BANZ loop1, *AR3-(AR3)!=0(AR3)=0第39頁/共47頁 STL A, z end: B end .end 注意:注意:循環(huán)體的設(shè)計(jì),尤其是找出循環(huán)規(guī)律,設(shè)計(jì)循循環(huán)體的設(shè)計(jì),尤其是找出循環(huán)規(guī)律,設(shè)計(jì)循環(huán)控制條件是循環(huán)程序設(shè)計(jì)的關(guān)鍵。環(huán)控制條件是循環(huán)程序設(shè)計(jì)的關(guān)鍵。第40頁/共47頁4.4.4 4.4.4 子程序結(jié)構(gòu)子程序結(jié)構(gòu) 例例4 .title “ex44.asm” .mmregs STACK .usect “STACK”, 10H .bss x, 4 .bs

22、s a, 4 .bss y, 1 .def start .data table: .word 1*32768/10; ? .word 2*32768/104iii=1y = a x第41頁/共47頁 .word -3*32768/10 .word 4*32768/10 .word 8*32768/10 .word 6*32768/10 .word -4*32768/10 .word -2*32768/10 .text start: STM #0, SWWSR SSBX FRCT STM #STACK+10H, SP STM #x, AR1 RPT #7 MVPD table, *AR1+第42頁/共47頁 CALL SUM end: B end SUM: STM #x, AR2 STM #a, AR3 RPTZ A, #3 MAC *A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論