




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)1 基于CCS的簡單的定點(diǎn)DSP程序一、實(shí)驗(yàn)要求1、自行安裝CCS3.3版本,配置和運(yùn)行CCS2、熟悉CCS開發(fā)環(huán)境,訪問讀寫DSP的寄存器AC0-AC3, ARO-AR7, PC, T0-T3 3、結(jié)合C5510的存儲器空間分配,訪問DSP的內(nèi)部RAM 4、編寫一個最簡單的定點(diǎn)DSP程序,計(jì)算下面式子 y=0.1*1.2+35*20+15*1.65、采用定點(diǎn)DSP進(jìn)行計(jì)算,確定每個操作數(shù)的定點(diǎn)表示方法, 最后結(jié)果的定點(diǎn)表示方法,并驗(yàn)證結(jié)果6、對編寫的程序進(jìn)行編譯、鏈接、運(yùn)行、斷點(diǎn)執(zhí)行、單步抽 并給出map映射文件二、實(shí)驗(yàn)原理DSP芯片的定點(diǎn)運(yùn)算-Q格式(轉(zhuǎn)) 2008-09-03 15:
2、47 DSP芯片的定點(diǎn)運(yùn)算 1數(shù)據(jù)的溢出: 1溢出分類: 上溢(overflow): 下溢(underflow) 2溢出的結(jié)果: Max Min Min Max unsigned char 0 255 signed char -128 127 unsigned int 0 65535 signed int -32768 32767 上溢在圓圈上按數(shù)據(jù)逆時針移動;下溢在圓圈上順時鐘移動。 例:signed int :32767+132768; -32768-132767 unsigned char:255+10; 0-1255 3為了避免溢出的發(fā)生,一般在DSP中可以設(shè)置溢出保護(hù)功能。當(dāng)發(fā)生溢出
3、時,自動將結(jié)果設(shè)置為最大值或最小值。 2定點(diǎn)處理器對浮點(diǎn)數(shù)的處理: 1定義變量為浮點(diǎn)型(float,double),用C語言抹平定點(diǎn)處理器和浮點(diǎn)處理器 的區(qū)別,但是程序的代碼龐大,運(yùn)算速度也慢。 2放大若干倍表示小數(shù)。比如要表示精度為0.01的變量,放大100倍去運(yùn)算, 運(yùn)算完成后再轉(zhuǎn)化。但是這個做法比較僵硬,如要將上面的變量重新定義成0.001精度,又需要放大1000倍,且要重新編寫整個程序,考慮溢出等問題。3定標(biāo)法:Q格式:通過假定小數(shù)點(diǎn)位于哪一位的右側(cè),從而確定小數(shù)的精度。 Q0:小數(shù)點(diǎn)在第0位的后面,即我們一般采用的方法 Q15 小數(shù)點(diǎn)在第15位的后面,014位都是小數(shù)位。 轉(zhuǎn)化公式:
4、Q(int)(Fpow(2,q) F(float)(Qpow(2,q) 3 Q格式的運(yùn)算 1定點(diǎn)加減法:須轉(zhuǎn)換成相同的Q格式才能加減 2定點(diǎn)乘法:不同Q格式的數(shù)據(jù)相乘,相當(dāng)于Q值相加 3定點(diǎn)除法:不同Q格式的數(shù)據(jù)相除,相當(dāng)于Q值相減 4定點(diǎn)左移:左移相當(dāng)于Q值增加 5 定點(diǎn)右移:右移相當(dāng)于Q減少 4Q格式的應(yīng)用格式 實(shí)際應(yīng)用中,浮點(diǎn)運(yùn)算大都時候都是既有整數(shù)部分,也有小數(shù)部分的。所以要選擇一個適當(dāng)?shù)亩?biāo)格式才能更好的處理運(yùn)算。一般用如下兩種方法:1 使用時使用適中的定標(biāo),既可以表示一定的整數(shù)復(fù)位也可以表示小數(shù)復(fù)位,如 對于2812的32位系統(tǒng),使用Q15格式,可表示65536.065535.99
5、9969482區(qū)間內(nèi)的數(shù)據(jù)。三、實(shí)驗(yàn)步驟1. 雙擊,啟動CCS的仿真平臺的配著選項(xiàng)。選擇C5410 Device Simulator。2.點(diǎn)擊project菜單欄的new選項(xiàng),新建一個LAB的工程注意存儲的路徑。3. 把下圖中用到的文件拷到工程文件目錄的文件路徑下。4.在ccs平臺中將用到的程序?qū)氲狡脚_中,點(diǎn)擊projectadd file to project。選擇多個文件時,可以按住ctrl鍵。5將程序中的start改為_main,INT_2改為_int_2。然后點(diǎn)擊保存。源程序代碼* example.asm y=0.1*x1.2+35*20+15*x1.6 *.title “examp
6、le.asm” ;為匯編源程序取名.mmregs ;定義存儲器映象寄存器STACK .usect “STACK”,10h ;分配10個單元的堆??臻g.bss a,4 ;為系數(shù)a分配4個單元的空間.bss x,4 ;為變量x分配4個單元的空間.bss y,1 ;為結(jié)果y 分配1個單元的空間.def _c_int00 ;定義標(biāo)號_c_int00 .data ;定義數(shù)據(jù)代碼段table: .word 1,2,3,4 ;在標(biāo)號table開始的8個單元中 .word 8,6,4,2 ;為這8個單元賦初值.text ;定義文本代碼段_c_int00 :STM #0,SWWSR ;軟件等待狀態(tài)寄存器置0,不
7、設(shè)等待STM #STACK+10h,SP ;設(shè)置堆棧指針初值STM #a,AR1 ;AR1 指向 a的地址 RPT #7 ;從程序存儲器向數(shù)據(jù)存儲器 MVPD table,*AR1+ ;重復(fù)傳送 8個數(shù)據(jù) CALL SUM ;調(diào)用 SUM 實(shí)現(xiàn)乘法累加和的子程序end: B end ;循環(huán)等待SUM:STM #a,AR3 ;將系數(shù)a的地址賦給AR3STM #x,AR4 ;將變量x的地址賦給AR3RPTZ A,#3 ;將A清0,并重復(fù)執(zhí)行下條指令4次MAC *AR3+,*AR4+,A ;執(zhí)行乘法并累加,結(jié)果放在A中STL A,y ;將A的低字內(nèi)容送結(jié)果單元yRET ;結(jié)束子程序 .end ;結(jié)束
8、全部程序Map文件* TMS320C55x COFF Linker PC Version 3.83 * Linked Mon May 31 11:03:33 2010OUTPUT FILE NAME: ENTRY POINT SYMBOL: _main address: 0000e000MEMORY CONFIGURATION name origin length used attr fill - - - - - -PAGE 0: EPROM 0000e000 00000100 0000001d RWIX vecs 0000ff80 00000004 00000000 RWIXPAGE 1:
9、SPRAM 00000060 00000020 0000000b RWIX DARAM 00000080 00000100 0000001a RWIXSECTION ALLOCATION MAP output attributes/section page origin length input sections- - - - -.text 0 0000e000 0000001d 0000e000 0000001d LAB4A.obj (.text).bss 1 00000060 0000000b UNINITIALIZED四、心得體會 經(jīng)過這次實(shí)驗(yàn),我更加熟悉CCS開發(fā)環(huán)境,訪問讀寫DSP的
10、寄存器AC0-AC3, ARO-AR7, PC, T0-T3 。 實(shí)驗(yàn)2 CCS下的FFT算法程序設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康腃CS下的FFT算法程序設(shè)計(jì)二、 實(shí)驗(yàn)要求提供一個CCS下的C語言例程,在CCS下,仿照例程,任選雨中FIR濾波、IIR濾波、FFT算法,采用C語言完成代碼的編寫、編譯、鏈接、下載和運(yùn)行,輸入數(shù)據(jù),濾波器系數(shù)任選,并給出運(yùn)算結(jié)果。1)目的2)工程文件的構(gòu)成,并附圖3)打印源代碼4)打印編譯成功的信息5)打印map文件6)程序下載的截圖過程三) 運(yùn)行結(jié)果三、 實(shí)驗(yàn)步驟1、在ccs平臺中將用到的程序?qū)氲狡脚_中,點(diǎn)擊projectadd file to project。選擇多個文件時
11、,可以按住ctrl鍵。2將所有的程序段中的start改為_main,將fft.Asm中的K_FFT_SIZE .set 32 ;NK_LOGN .set 5 ;LOG(N)改為K_FFT_SIZE .set 64 ;NK_LOGN .set 6 ;LOG(N)3、對源文件進(jìn)行編譯(注意先對每個.asm文件先進(jìn)行編譯,以防止程序有錯誤),沒有錯誤時進(jìn)行鏈接。4點(diǎn)擊菜單fileload program。裝載.out文件四、 實(shí)驗(yàn)結(jié)果五、 源程序代碼* 函數(shù)原型:void FFT(struct compx *xin,int N) 函數(shù)功能:對輸入的復(fù)數(shù)組進(jìn)行快速傅里葉變換(FFT) 輸入?yún)?shù):*xi
12、n復(fù)數(shù)結(jié)構(gòu)體組的首地址指針,struct型 */ void FFT(struct compx *xin) int f,m,nv2,nm1,i,k,l,j=0; struct compx u,w,t; nv2=FFT_N/2; /變址運(yùn)算,即把自然順序變成倒位序,采用雷德算法 nm1=FFT_N-1; for(i=0;inm1;i+) if(ij) /如果ij,即進(jìn)行變址 t=xinj; xinj=xini; xini=t; k=nv2; /求j的下一個倒位序 while(k=j) /如果k=j,表示j的最高位為1 j=j-k; /把最高位變成0 k=k/2; /k/2,比較次高位,依次類推,逐
13、個比較,直到某個位為0 j=j+k; /把0改為1 int le,lei,ip; /FFT運(yùn)算核,使用蝶形運(yùn)算完成FFT運(yùn)算 f=FFT_N; for(l=1;(f=f/2)!=1;l+) /計(jì)算l的值,即計(jì)算蝶形級數(shù) ; for(m=1;m=l;m+) / 控制蝶形結(jié)級數(shù) /m表示第m級蝶形,l為蝶形級總數(shù)l=log(2)N le=2(m-1); /le蝶形結(jié)距離,即第m級蝶形的蝶形結(jié)相距l(xiāng)e點(diǎn) lei=le/2; /同一蝶形結(jié)中參加運(yùn)算的兩點(diǎn)的距離 u.real=1.0; /u為蝶形結(jié)運(yùn)算系數(shù),初始值為1 u.imag=0.0; w.real=cos(PI/lei); /w為系數(shù)商,即當(dāng)前
14、系數(shù)與前一個系數(shù)的商w.imag=-sin(PI/lei); for(j=0;j=lei-1;j+) /控制計(jì)算不同種蝶形結(jié),即計(jì)算系數(shù)不同的蝶形結(jié) for(i=j;i Linked Sat May 30 23:48:27 2015OUTPUT FILE NAME: ENTRY POINT SYMBOL: _main address: 0000e000MEMORY CONFIGURATION name origin length used attr fill - - - - - -PAGE 0: EPROM 0000e000 00000100 00000019 RWIXPAGE 1: SPRA
15、M 00000060 00000020 0000000a RWIX DARAM 00000080 00000100 00000000 RWIXSECTION ALLOCATION MAP output attributes/section page origin length input sections- - - - -.text 0 0000e000 00000012 0000e000 00000012 LAB2B.obj (.text).data 0 0000e012 00000005 0000e012 00000005 LAB2B.obj (.data).vectors 0 0000e
16、017 00000002 0000e017 00000002 VECTORS.obj (.vectors).bss 1 00000060 0000000a UNINITIALIZED 00000060 0000000a LAB2B.obj (.bss)GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name address name- -00000060 .bss0000e012 .data0000e000 .text00000060 _bss_ffffffff _cinit_0000e012 _data_0000e017 _edata_0000006a _e
17、nd_0000e012 _etext_ffffffff _pinit_0000e000 _text_00000000 _lflagsUNDEFED _c_int000000e000 _mainffffffff cinit0000e017 edata0000006a end0000e012 etextffffffff pinitGLOBAL SYMBOLS: SORTED BY Symbol Address address name- -00000000 _lflags00000060 _bss_00000060 .bss0000006a _end_0000006a end0000e000 .text0000e000
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年紡織品檢驗(yàn)員知識體系試題及答案
- 2024年設(shè)計(jì)師考試創(chuàng)業(yè)方向試題及答案
- 大話2殿試題目及答案
- 2024年紡織品國際市場分析試題及答案
- 助理廣告師考試中對廣告效果評估的系統(tǒng)性分析研究試題及答案
- 2024年紡織工程師考試的多元視角與試題及答案
- 守護(hù)寵物測試題及答案
- 廣告市場調(diào)研基礎(chǔ)知識 試題及答案
- 助理廣告師考試技巧和試題及答案分享
- 2024年紡織工程師最易考的知識試題及答案
- 急性會厭炎課件
- 單發(fā)跖骨骨折臨床路徑及表單
- 高中學(xué)籍檔案卡
- 2021年西安經(jīng)開渭北城市發(fā)展集團(tuán)有限公司招聘筆試試題及答案解析
- 2022年注冊規(guī)劃師實(shí)務(wù)試題及答案
- DB62∕T 3176-2019 建筑節(jié)能與結(jié)構(gòu)一體化墻體保溫系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 優(yōu)秀病例演講比賽PPT
- GB∕T 25684.5-2021 土方機(jī)械 安全 第5部分:液壓挖掘機(jī)的要求
- 電氣爐焊接工藝的自動化控制線設(shè)計(jì)
- 剪式汽車舉升機(jī)設(shè)計(jì)說明
- 中國基層胸痛中心認(rèn)證標(biāo)準(zhǔn)(第三版)
評論
0/150
提交評論