C語言DSP開發(fā)(精)_第1頁
C語言DSP開發(fā)(精)_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

1、DSP廉理及應(yīng)用2基于 DSP 芯片的軟件開發(fā).用 DSP 芯片的匯編語 言編寫程序是一件比較繁雜的事情.一般來說.各個(gè) 公司的 DSP芯片所提供的匯編語言并不相同.即使是 同一公司的芯片,由于芯片的類型不同(如定點(diǎn)和浮 點(diǎn))、芯片的升級換代其匯編語言也有所不同,使 用匯編語言開發(fā) DSP 產(chǎn)品的周期相對較長,因?yàn)殚_發(fā) 人員在編寫 DSPg 序之前必須熟悉這種 DSP 芯片的匯 修改和升級都將非常困難,這是因?yàn)閰R編語言的可讀 性和可移植性比高級語言差.DSPMi理及應(yīng)用基于上述原因,各個(gè) DSP 芯片公司都相繼推出了 相應(yīng)的高級語言(如 C 語言)編譯器,使得 DSP 芯片的 軟件可以直接用高

2、級語言編寫而成,從而大大提高了 DSP 芯片的開發(fā)速度,也使程序的修改和移植變得簡 單易行。本節(jié)將介紹 T MS320C54 系列 DSP 芯片的 C 語言的 軟件設(shè)計(jì)和程序開發(fā)。C C 語言語言 DSPDSP 開發(fā)開發(fā)便用CW言開發(fā)DSP的廩因編語C C 語語言言2013年4月28日DSP原理及應(yīng)用4DSP中的C語言 1數(shù)據(jù)類型及相互之間的轉(zhuǎn)換 2.C語言關(guān)鍵字2013年4月28日 1 1 數(shù)據(jù)類電及相互之間的轉(zhuǎn)換丈小數(shù)報(bào)橋戎昂小血園丈值fhiir14i ff?ASC.ll32 76832 767chai訂口?八綁【vhxr16倚ASCIIV65 535ihvrt,signed血卄M位二進(jìn)劇

3、樸碼 32 76X32 77iinsi*m?d short1signed inr1C位二進(jìn)制補(bǔ)碼-3Z 768BZ 7G7unxifined lul16位:進(jìn)制V65 535long signed Jong淞位進(jìn)制補(bǔ)碼2 147 483 G482 147 483 647unsigned long32位二込初04 294 967 295etiuni”伸二進(jìn)制補(bǔ)同H 76832 7ft7float32代IEEE 32位1. 176 49壯383. 10 282 34GcJ 38dotibk:32血IEEE 32位E 175 49伽-383. 40 28Z 346卄38long dewsbCrH2位

4、IEEE 32位1. S75。94383. 40 22 346亡+38lointerb16但二進(jìn)甸0OxOFEFFDSP原理及應(yīng)2013年4月28日DSP感理及應(yīng)不同類型的數(shù)據(jù)可以相互轉(zhuǎn)換:浮點(diǎn)數(shù)據(jù)向整型數(shù)據(jù)的轉(zhuǎn)換是以 0 為中心截?cái)嗟?。例如:?3 3 轉(zhuǎn)換成整型為一 3。此外,當(dāng)轉(zhuǎn)換后的數(shù)據(jù)類型可以存儲(chǔ)源數(shù)據(jù)類型時(shí),則指 針型數(shù)據(jù)和整型數(shù)據(jù)也可以相互轉(zhuǎn)化。DSP感理及應(yīng)用 2.C語言關(guān)鍵字在 ccs 環(huán)境中使用 c 語言開發(fā)程序,可以使用 c 語言中 常用的一些關(guān)鍵字和表達(dá)式。如 定義數(shù)據(jù)類型的關(guān)鍵字:char,int,double 等。條件判斷關(guān)鍵字:if .else , switch,

5、case 等。循環(huán)語句關(guān)鍵字:for ,while 等注:在 C 語言中,三目運(yùn)算符:表達(dá)式?語句一:語句二;2013年4月28日2013年4月28日DSP原理及應(yīng)用8保證該變髦不會(huì)被優(yōu)化器優(yōu)化。優(yōu)化器會(huì)自動(dòng)分析數(shù)據(jù)流來避免一切町能存取 內(nèi)存的操作。如果在寫C代碼的時(shí)候確實(shí) 需要用到內(nèi)存存取的代碼*則必須用volatile關(guān)鍵字來區(qū)別這吐存取操作。對存儲(chǔ)器映射寄存器都使用volatile關(guān)鍵 字來運(yùn)義。consc co on ns st t關(guān)關(guān)鍵鍵字字有有助助于于更更好好地地控控制制對對特特定定數(shù)數(shù)據(jù)據(jù)對對象象存存儲(chǔ)儲(chǔ)空空間間的的分分配配??煽梢砸杂糜胏 co on ns st t關(guān)關(guān)鍵鍵字字

6、定定義義任任何何變變量量或或數(shù)數(shù)組組,來來保保證證變變量量或或數(shù)數(shù)組組的的值值不不被被改改變變。 如如果果定定義義一一個(gè)個(gè)對對象象為為c co on ns st t, ,則則c co on ns st t段段會(huì)會(huì)為為此此對對象象分分配配特特定定的的存存儲(chǔ)儲(chǔ)空空間間。2013年4月28日DSP原理及應(yīng)volatileVolatil2013年4月28日DSP蝮理及應(yīng)用ioport Iopott關(guān)鍵字讀寫DSP的I/O端口空間。ioport關(guān)鍵 字的用法如下:/Ioport type porthexnumioport是指定這是個(gè)端口變量的關(guān)鍵字;type是指端口的數(shù)據(jù)類型,必須是char, shor

7、t, int或unsigned; porthex_num指的是I/O端口號4iex_num變量是一 個(gè)十六進(jìn)制數(shù)據(jù)。必須注意的是,所有的端口變量 在函數(shù)級說明端口變矗是無效的,必須在支存級予 以說明:同時(shí)在函數(shù)原型中不能使用ioport關(guān)鍵字。DSP蝮理及應(yīng)用2013年4月28日2013年4月28日DSP蝮理及應(yīng)用下而的代冋過義I/O端丨丨為unsigned portlOh將數(shù)然后從portlOh讀人數(shù)據(jù)2013年4月28日DSP僚理及應(yīng)用12interrupt中斷服務(wù)程序?qū)⒈4嫠杏玫降募拇嫫?。中斷服?wù)程序?qū)⒈4嫠杏玫降募拇嫫鳌?當(dāng)當(dāng)用用interrupinterrupt t 關(guān)薙孚九義一

8、個(gè)函數(shù)的時(shí)候關(guān)薙孚九義一個(gè)函數(shù)的時(shí)候, , C C 編譯器編譯器會(huì)生成寄存器來保存中斷控制寄存會(huì)生成寄存器來保存中斷控制寄存 器和中斷返器和中斷返回序列?;匦蛄?。interruptinterrupt 關(guān)鍵字定義函數(shù)既沒有參數(shù)關(guān)鍵字定義函數(shù)既沒有參數(shù) 也也沒有返回值。沒有返回值。interrupt void int_handler()unsigned int flags;intint務(wù)函數(shù),中斷服務(wù)函數(shù)必須保存中斷控制務(wù)函數(shù),中斷服務(wù)函數(shù)必須保存中斷控制寄寄2013年4月28日DSP鹽理及應(yīng)112013年4月28日DSP原理及應(yīng)用14注意:注意:蟲編譯后的代碼屮,cJntOO是C誥言程序開始的標(biāo)

9、志。這足專門為系統(tǒng)復(fù)位 屮斷設(shè)怎的保留字。系統(tǒng)復(fù)位中斷將初 始化整個(gè)系統(tǒng)并調(diào)用main。函數(shù)。2013年4月28日DSP原理及應(yīng)用13DSP的C語言運(yùn)行環(huán)境 1.C程序設(shè)計(jì)流程 2.DSP的c語言運(yùn)行環(huán)境2013年4月28日DSPIS理及應(yīng)用16初 C 程序設(shè)計(jì)流程C編譯器 C編譯器的編譯時(shí)通過運(yùn)行cl500.exe程序完成的,編譯器運(yùn)行指令一 CI500 filenames objectfiles Filenames:-個(gè)或多個(gè)C語言源文件的名稱。2013年4月28日15DSP鹽理及應(yīng)用2013年4月28日DSPIS理及應(yīng)用17-Objectfiles:編譯器所創(chuàng)建目標(biāo)文件的文件名2013年

10、4月28日DSP感理及應(yīng)用182.DSP的c語言運(yùn)行環(huán)境DSP 的 C 語言程序能否正確執(zhí)行,關(guān)鍵是所有的運(yùn)行 代碼是否能保持一個(gè)正確的運(yùn)行環(huán)境。包括:存儲(chǔ)器模 式,字符串常量,寄存器規(guī)則.函數(shù)的結(jié)構(gòu)和調(diào)用規(guī)則 ,C 語言和匯編語言混合匯編,中斷處理等。本節(jié)主要介 紹一下兩點(diǎn): (1)存儲(chǔ)器模式 (2) C語言與匯編語言的混合編程方法2013年4月28日DSP原理及應(yīng)用17( (1) )存儲(chǔ)器模式DSP 的 C 編譯器將存儲(chǔ)器分成兩個(gè)線性的段,分別是程 序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器包含可執(zhí)行的代 碼。數(shù)據(jù)存儲(chǔ)器包含外部變量、靜態(tài)變量和系統(tǒng)堆棧。由 C 程序生成的代碼段和數(shù)據(jù)段將連續(xù)地存放在

11、存儲(chǔ)器 中。C 編譯器生成的段C 編譯器對 C 程序進(jìn)行編譯后生成可以重定位的代碼 和數(shù)據(jù)段,這些段可以用不同的方式分配到存儲(chǔ)器以符 合不同系統(tǒng)配置的需要。這些段可以分為兩種類型,一 種是已初始化段,另一種是未初始化段。2013年4月28日DSP原理及應(yīng)用20已初始化段主要包括數(shù)據(jù)表和可執(zhí)行代碼。已初始化段主要包括數(shù)據(jù)表和可執(zhí)行代碼。C C 編譯器共創(chuàng)建編譯器共創(chuàng)建 5 5 個(gè)已初始化段個(gè)已初始化段: : .cinit段:包含初始化變量和常數(shù)。const段:包含iliC限定injconst定義的字 符屮常量和數(shù)據(jù)。 .switch段;包禽switch表 .text段:包含所冇的可執(zhí)行代碼。C編

12、譯器共創(chuàng)建了3個(gè)未初始化段o。局艮保辭局和貓變量空|磯 佛動(dòng)和導(dǎo)人綁喉,C編譯器會(huì)乍動(dòng)曲暮血假巾何矯ROM巾)的數(shù)瞰制出來戰(zhàn)初始化血s段屮的變最 .sUck為系藐堆校分配榊嚮該段用于賊股魏至廉?dāng)?shù)或者用來分配局臥變氛 .sysnirm艮為動(dòng)態(tài)存錯(cuò)器兩數(shù)nlloc、cdlbc訂ealbc分魅魁養(yǎng)2013年4月28日DSP原理及應(yīng)未初程序和存2013年4月28日DSP原理及應(yīng)用21間。如果(: 斷沒有用到這些函如C編翻就不會(huì)創(chuàng)建網(wǎng)ninn艮2013年4月28日DSP廉理及應(yīng)用22 (2) C 語普與匯編語討的混合編稅方法iftlfnjDSPiftlfnjDSP 的 C C 語言可以直接嵌人 C54x

13、xC54xx 的匯編指令或者偽指令。直接嵌入?yún)R編指令一方 面可以在 C C 程序中實(shí)現(xiàn) C C 語言無法實(shí)現(xiàn)或者很難 實(shí)現(xiàn)的一些硬件控制功能,例如修改中斷控制寄存器.中斷使能寄存器、讀取狀態(tài)寄存器和 中斷標(biāo)志寄存器等;另一方面也可以在 C C 程序中 的關(guān)鍵部分用匯編語句代替 C C語句,以便能優(yōu)化 程序,從而提高整個(gè)程序的運(yùn)行效益。直接嵌 人匯編指令在結(jié)構(gòu)上好像調(diào)用一個(gè)特殊命名為 asmasm 的且?guī)в幸粋€(gè)字符串常量參數(shù)的函數(shù),其基本格式如下:Asm(“匯編指令”)匯編指令用雙引號包括起來,編譯器將雙引號中的字符串 直接復(fù)制到輸出文件中。2013年4月28日DSP廉理及應(yīng)21ARM&

14、DSP實(shí)驗(yàn)箱DSP采用TI公司的TMS320VC5410,該芯片可以穩(wěn)定工作齊 160MNL 頻: 內(nèi) 部具勺128炬片內(nèi)RAM和3232 KBKB 代內(nèi)ROM; 該芯片內(nèi)部包含冇一個(gè)16位定時(shí)器,6個(gè)DMA控制器,3個(gè)McBSP串行I和個(gè)增 強(qiáng)型HPI控制器。對于本實(shí)驗(yàn)系統(tǒng)上的DSP模塊,板上提供了512WJFlash ROM, JUT*存放代碼。201J年4月28日DSP原理及應(yīng)用262013年4月28日DSP廉理及應(yīng)23按鍵、開關(guān)及LED顯示AI2M2善tnsLEI201J年4月28日DSP原理及應(yīng)用26作K7IJ二-znI rL 才 * I B | 壬段碼管顯示悪塊上nTTTTTTTlE3LED 顯示模塊D8DSP廉理及應(yīng)用2013年4月28日27

溫馨提示

  • 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

提交評論