




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DSP的C語(yǔ)言程序設(shè)計(jì) 為什么要使用C語(yǔ)言對(duì)DSP編程 C語(yǔ)言是高級(jí)語(yǔ)言,易學(xué)易用。 C語(yǔ)言的編程效率極高,易于調(diào)試。 C語(yǔ)言的可移植性好。 C程序的結(jié)構(gòu)及組成 完整的C程序是由一個(gè)主函數(shù) main()和其它的子函數(shù)組成的,每一個(gè)子函數(shù)完成特定的功能。DSP的C 語(yǔ)言的入口地址固定為 c_int00,在中定義。C語(yǔ)言支持豐富的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),在ccs集成開發(fā)環(huán)境 中,為C語(yǔ)言提供了完整的支持硬件的底層函數(shù)庫(kù)和支持算法的DSP函數(shù)庫(kù)。在使用C語(yǔ)言的庫(kù)函數(shù)時(shí),在 工程中必須包括相應(yīng)的函數(shù)庫(kù)和運(yùn)行時(shí)支持庫(kù)。下面是一般C語(yǔ)言程序的結(jié)構(gòu)和組成框架。 一般C程序的結(jié)構(gòu)如下: h頭文件 #i nclud
2、e函數(shù)庫(kù) 1 #include #include函數(shù)庫(kù) 3 */ /* */ /* Parameters:*/ /* - port - port address (HEX)*/ /* */ /* Return:*/ /* - returns value read from port.*/ */ /* /* Notes: */ /* */ * s16 portRead(u16 port); * /* portWrite(u16 port, s16 value) /* /* This routi ne writes a word to the specified port. /* /* Param
3、eters: /* - port - port address (HEX) /* - value - 16 bit word to write. /* */ */ */ */ */ */ */ */ /* Return:*/ /* - none*/ /* */ /* Notes: */ /* */ * void portWrite(u16 port, s16 value); #e ndif/* end of #ifndef _PORTIO_H */ 使用時(shí),先使用宏替換或枚舉定義I/O端口的地址,然后使用portRead()和portWrite()函數(shù)訪問(wèn)I/O端口 例如: #include
4、Variable=portRead(portA); c5400cgtoolsin elude目錄與 c5400dsk5402i nclude目錄中的頭文件類型不同。c5400cgtoolsi nclude 目錄下是5000系列DSP的通用頭文件,與硬件無(wú)關(guān)。c5400dsk5402include目錄下是硬件專用頭文件,包括 DSP芯片和dsk板。 頭文件和特定的庫(kù)文件相關(guān)聯(lián),c5400cgtoolsi nclude目錄下的頭文件與運(yùn)行時(shí)支持庫(kù)相關(guān)聯(lián), c5400dsk5402include目錄中的部分頭文件與dsk板庫(kù)文件和相關(guān)聯(lián)。和函數(shù)庫(kù)在 c5400dsk5402lib 目錄下, 是一個(gè)主
5、要的庫(kù)函數(shù),內(nèi)部使用了。 五、關(guān)于DSPg序中段的定義 一個(gè)程序中到底有哪些段定義 般地,對(duì)于固定的硬件應(yīng)用系統(tǒng),其存儲(chǔ)器的配置也較為固定,存儲(chǔ)器的配置需要設(shè)計(jì)者自己定義,但理 解了基本的段如: .text 、.data、.stack 、.bss之外,用C語(yǔ)言編程時(shí),對(duì)程序中所使用的段并不十分清楚, 可以在寫.CMD文件時(shí),只將MEMOR部分寫出,而暫時(shí)省略掉 SECTIONS義,CCS集成開發(fā)環(huán)境會(huì)自動(dòng)生成 .map 文件,其中詳細(xì)記錄了存儲(chǔ)器和段的配置和使用情況、各個(gè)段的絕對(duì)地址和重新分配后的全局符號(hào),根據(jù)其中的 段的描述,我們反過(guò)來(lái)再重新修改 .CMD文件,進(jìn)行合理地段到存儲(chǔ)器的分配。
6、DSP C語(yǔ)言開發(fā)環(huán)境所必有的段定義: Cinit ;C語(yǔ)言初始化段,包括初始化變量和常量表 text ;代碼段,包括可執(zhí)行代碼、字符串和常量 Vectors ;中斷向量段 stack ;堆棧段,為C的系統(tǒng)堆棧分配存儲(chǔ)空間,用于變量的傳遞 -trap const ;包括字符串常量和以con st關(guān)鍵字疋義的常量 data ;數(shù)據(jù)段 bss ;保留全局和靜態(tài)變量空間 cio -switch ;為.const 語(yǔ)句建立的表格 system ;為動(dòng)態(tài)存儲(chǔ)器函數(shù) malloc 、 calloc 、 realloc 分配存儲(chǔ)空間 DSP的C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn) 分析工程中的程序,了解c語(yǔ)言程序的一般結(jié)構(gòu)以及
7、頭文件和函數(shù)庫(kù)的關(guān)系, 并解讀頭文件的內(nèi)容 修改程序,使三個(gè)發(fā)光二極管指示燈依次流水點(diǎn)亮熄滅 例:編寫程序 主要說(shuō)明:DSP C程序編制的流程 函數(shù)庫(kù)中函數(shù)的使用(例如) Project的建立、編譯、調(diào)試、執(zhí)行 CMD文件的編寫 試重新定義.CMD文件,重新對(duì)project進(jìn)行編譯運(yùn)行。 自編寫CODE(程序,.h頭文件在c5400dsk5402include目錄下,頭文件對(duì)應(yīng)的函數(shù)在 和 中。dsk5402是一個(gè)主要的庫(kù)函數(shù),內(nèi)部使用了。 5402上有兩個(gè)多通道緩沖串行口( MCBSP0 MCBSP),其寄存器定義位于頭文件和當(dāng)中。 如果在File菜單中頭load program ”項(xiàng)說(shuō)明目
8、標(biāo)報(bào)未正常連接,注意觀察條提示: VECS:0080h len gth=0080h/*i nternet PRAM:orgi n=7600h,le ngth=8000h program Ran */ Scratch RAN 5402 DSP程序寄存儲(chǔ)藏256K如同加載執(zhí)行 DSP 5402 64K(更多)程序存儲(chǔ)器空間 64K(更多)數(shù)據(jù)存儲(chǔ)器空間 64K I/O存儲(chǔ)器空間 可以由:片上 ROM片上RAN片外floah,片外RAN構(gòu)成取決定于: MP/MC OVLY FLASHENBi map在外部 存儲(chǔ)器時(shí),由于 FLASHE決定訪問(wèn)FLAH=1還是外部 RAN=0 OVLY FLASH可以
9、由片上 RAM RAN片外flash RAM 構(gòu)成取決于 DROM DMSEL當(dāng) map外部存儲(chǔ)器空間時(shí),由 DMSEI決定是訪問(wèn)FLASH/RAM( DMSEL=0還是子報(bào)存儲(chǔ) 器,F(xiàn)LAS 14個(gè)等待周期;RAM1個(gè)等待周期。 C5402 Device Simulater; Mp/mc=1 Ovly=1 DRAM=0 5402 DSK load program后:mp/mc=1 OVLY=1 DROM=運(yùn)行程序后: mp/mc=0 OVLY=1 DROM=管腳一致,suwsr 等 待狀態(tài)寄存器D844 1 1 0 1 1 0 0 0 01 00 0 100 _ I/O 空間 高32K 低3
10、2K 高32K 低32K 54104 MCBS串口以及AD50的初始化,AD50初始化包括以下步驟: 1 .打開CODEC獲取句柄(指針) 2. 設(shè)置AD轉(zhuǎn)換的工作方式 3. 設(shè)置DA轉(zhuǎn)換的工作方式 4. 設(shè)置模擬輸入增益 5. 設(shè)置模輸出增益 6. 設(shè)置取樣率 board in it Flag cade in it Flag code_setup_serial_port 設(shè)置串口 code resetcodee 復(fù)位 cli ne_reset code_disable_tx_isr code_disable_vx_isr code_write_regs code_setup_serical_
11、port serial_reset D : DSPTEST DTK- 把Project中所用到的所有頭文件、庫(kù)文件、包含文件均方向在Project目錄下,解析此工程,了解庫(kù)函數(shù) 的定義與源程序, Code的操作 串口( MCBSP的操作 MCBSP TMS320C5000系統(tǒng)DSP系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例,熟悉多通道緩沖串口的結(jié)構(gòu)組成以及各個(gè) 寄存器的內(nèi)容工作方式,編程方法: MCBSP勺初始化 串口復(fù)位(發(fā)送復(fù)位、接收復(fù)位) 設(shè)置所有寄存器的值 SPCR 1 SPCR2 RCR1 RCR2 XCR1 XCR2 SPGR1 SPGR2 PCR CODE (AD50的初始化 CODEC復(fù)位 設(shè)置線路輸
12、入通道增益 設(shè)置輸出增益 設(shè)置模擬工作方式輸入選擇 LINE 設(shè)置數(shù)據(jù)部分的運(yùn)行模式 設(shè)置電源模式 設(shè)置數(shù)據(jù)格式,CODE(工作于主方式 設(shè)置波樣率 啟動(dòng)CODEC 另外:MCBSP勺初始化及使用參考頭文件的有關(guān)函數(shù)。 MCBSP勺初始化: 接收器復(fù)位,SPCR啲D0=0 發(fā)送器復(fù)位,SPCR2勺D0=0 設(shè)置SPCR1寄存器:(0X007) (D15禁止數(shù)字環(huán)回: DLB=0 (D14- D13)接收數(shù)據(jù)符號(hào)擴(kuò)展和調(diào)整方式: =00右對(duì)齊MCBS零填充 (D12 D11 )時(shí)鐘停止模式: =00 時(shí)鐘停止模式營(yíng)業(yè) (D10- D08)保留 (D7) DX31腳延遲功能 =0 關(guān)閉DX3腳延時(shí)
13、功能 (D6)保留 (D5- D4)接收中斷模式 =00 當(dāng)RRDY有效時(shí),產(chǎn)生接收中斷 D3) 接收幀同步錯(cuò)誤標(biāo)志 =0 不檢測(cè)同步錯(cuò)誤 D2) 接收移位寄存滿過(guò)速錯(cuò)誤標(biāo)志 =1 接收移位寄存器滿 D1) 接收就緒標(biāo)志 =1 接收器就緒 D0) 接收器復(fù)位 =1 串口接收使能(接收器停止復(fù)位) 設(shè)置RCR1寄存器(接收控制寄存器官)=0 x0040 AD50寄存器的初始化:(按ENTER功能) CODEC復(fù)位:Control REG:ster1 的 設(shè)置ADCX作模式為15bit模式 control Register 2的 D4=0 設(shè)置DAO的工作模式為15bit模式 control Re
14、gister 1的 D0=0 設(shè)置DODE啲模擬輸入增益6db: control Register 4的 D3D2=01 設(shè)置DODE啲模擬輸入增益-6db: control Register 4的 D1D0=01 設(shè)置DODE啲取樣率為8000HZ: con trol Register 4 的 D6 04=N=MCLK 128 x 8000 AD50按寄存器初始化 AD50按功能進(jìn)行初始化 在CODE .h頭文件中,定義了與 CODEQAD50功能相關(guān)的枚舉變量,除了可以調(diào)用中提供 的函數(shù)之外,我們可以利用這些枚舉變量重新編寫自己的函數(shù),用枚舉變量相或產(chǎn)生 所需要的寄存器初始化值。 片上外設(shè)
15、寄存器的初始化方法: 有兩種,一是按要求填表,然后將結(jié)果直接寫入寄存器;二是用寄存器各部分的宏定義相或,如 各寄存器比特的宏定義。 報(bào)卡初始化 brdi ni t(100); 初始化的內(nèi)容; #8806h 29 單元 OH tXPC #0a0hT pmST C1KnD1=0 k C1K2=0 C1K3=1 設(shè)置CPU的工作頻率 設(shè)置等待周期 SWR=D844H 設(shè)置報(bào)卡初始化標(biāo)志sxm=1 JINTM=1 *zch=*zch or ox2c J 對(duì)I/O端口 0、4、2、3、5、6進(jìn)行初始化 DSP技術(shù)及其應(yīng)用常見問(wèn)題 .cmd文件的格式及編寫 .cmd文件的編寫硬件確定存貯器配置就基本確定了
16、嗎 5402 DSP存儲(chǔ)器配置如何是 64K RAM、256k Flash 嗎 Boot loader 過(guò)程 如何察看函數(shù)庫(kù)內(nèi)容,如頭文件中的函數(shù) 在程序調(diào)試中,打開匯編窗口,使用斷點(diǎn)、單步方式進(jìn)行調(diào)試。 DSP從復(fù)位到運(yùn)行,MP/MC OVLY、DROM位的變化 如何知道C程序中有哪些段定義編譯時(shí)生成并察看.map文件。 AD5 0的一次通信二次通信如何用軟件實(shí)現(xiàn) AD50 AIC23兩種codec的操作是否一致是否可調(diào)用一個(gè)庫(kù)函數(shù) 不一致。 DSK板的初始化包含哪些內(nèi)容 CSL庫(kù)是否只能用于 dsp_bios編程模式否,可以在非 dsp_bios環(huán)境下調(diào)用CSL庫(kù)。 AD5 0的Prima
17、ry、Seco nd通信對(duì)應(yīng)于 MCBS串口,是如何實(shí)現(xiàn)的分兩次寫,使用了宏函數(shù)().嗎 5402DSK板上集成了一個(gè)并口仿真器,它仿真時(shí)裝載程序是使用的JTAG接口,還是HPI接口 使用DSK并口仿真器調(diào)試 DSP時(shí),各控制比特的設(shè)置以及memory的map如何此時(shí)是否為 HPI Boot loader 方式 并口仿真與 HPI引導(dǎo)是否為一回事不是,通過(guò)JTAG下載調(diào)試程序,程序運(yùn)行后暫停,此時(shí)MP/MC=0 OVLY=1 DROM=0 I/O空間cpld寄存器如何觀察 ram中數(shù)據(jù)可讀可改,ROM中的數(shù)據(jù)只能讀嗎 HPI-8的中文翻譯 5402上使用了 HPI-8增強(qiáng)型的HPI接口,hos
18、t通過(guò)HPI-8可訪問(wèn)DSP所有片上RAM 在DOS下運(yùn)行程序utilityevmdskctrl2 -cp,能夠察看CPLD各個(gè)I/O寄存器的值: CNTL 0 x02 STAT1: 0 x13 STAT2 0 x1E( DM_SEL=0選擇板上存儲(chǔ)器) CPLDREV 0 x1F SEM0 0 x1F( FLASHENB=0 INTSEL=0 FC1CON=1選擇 SRAM乍為外部存儲(chǔ)器) DMSEL OFF SEM1 0 x1F HINT YES 此時(shí),flash位于程序空間的 8000HBFFFFH ram位于程序和數(shù)據(jù)空間的低 64K,即程序空間的 0080HEFFFH 可同時(shí)被程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間訪問(wèn),因此在 .CMD文件中,必須將程序存儲(chǔ)器(PAGE0和數(shù)據(jù)存儲(chǔ)器 (PAGE1統(tǒng)一分配存儲(chǔ)空間。注意 .CMD文件、.map文件與實(shí)際程序代碼的對(duì)應(yīng)關(guān)系。這相當(dāng)于馮紐曼(諾 依曼)結(jié)構(gòu),雖然程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間分屬兩個(gè)不同的邏輯空間,但實(shí)際上卻對(duì)應(yīng)著同一個(gè)物理的 存儲(chǔ)器空間,高速處理器大多采用這種存儲(chǔ)器結(jié)構(gòu),在5402DSKDSP系統(tǒng)中程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程建設(shè)項(xiàng)目用工合同模板
- 紅木家具采購(gòu)合同樣本
- 國(guó)際牛肉市場(chǎng)分銷合同
- 外匯資金代操作理財(cái)合同協(xié)議
- Module 1 Wonders of the world Unit 2 Reading and vocabulary 教學(xué)設(shè)計(jì) -2024-2025學(xué)年外研版英語(yǔ)九年級(jí)上冊(cè)
- 2 土壤-動(dòng)植物的樂(lè)園 教學(xué)設(shè)計(jì) 2024-2025學(xué)年科學(xué)二年級(jí)上冊(cè)教科版
- 2023-2024學(xué)年人教版九年級(jí)化學(xué)下冊(cè)同步教學(xué)設(shè)計(jì)第九單元《溶液》
- 8《匆匆》(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)下冊(cè)
- Module 10 The weather Unit 3 Language practice (1)教學(xué)設(shè)計(jì)2024-2025學(xué)年外研版英語(yǔ)八年級(jí)上冊(cè)
- 春節(jié)照看協(xié)議合同范本
- 2025-2030年園藝修剪機(jī)器人行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 企業(yè)數(shù)字化轉(zhuǎn)型戰(zhàn)略-深度研究
- 《幼小銜接家長(zhǎng)會(huì)》課件
- Unit 4 A glimpse of the future 說(shuō)課稿-2023-2024學(xué)年高二下學(xué)期英語(yǔ)外研版(2019)選擇性必修第三冊(cè)001
- 鄉(xiāng)村建設(shè)規(guī)劃許可培訓(xùn)
- 加氣站安全課件
- GB/T 45037-2024糧油機(jī)械扒谷機(jī)
- 品管圈PDCA改善案例-降低住院患者跌倒發(fā)生率
- 分布式計(jì)算平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
- 團(tuán)聚體與土壤有機(jī)質(zhì)轉(zhuǎn)化-洞察分析
- 公務(wù)車輛定點(diǎn)加油服務(wù)投標(biāo)文件(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論