999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CCS環(huán)境的DSP程序開發(fā)及運(yùn)行

2014-10-27 19:20:40段紅英
無線互聯(lián)科技 2014年9期

段紅英

摘 要:隨著DSP技術(shù)的快速發(fā)展,其應(yīng)用程序的開發(fā)引起了更多人的關(guān)注。本文探討了在主流的CCS環(huán)境下進(jìn)行DSP程序開發(fā)的一般流程,并通過一個(gè)實(shí)例給出了用C語言編寫的DSP應(yīng)用程序在實(shí)際運(yùn)行過程中無法得到有效輸出的問題及解決方案。

關(guān)鍵詞:CCS;DSP;CMD文件

1 引言

DSP一般認(rèn)為有兩種含義,一種是指DSP器件(Digital Signal Processor),另外一種是指DSP技術(shù)(Digital Signal Processing),下文提到的均為第一種含義。伴隨全球信息化進(jìn)程的不斷推進(jìn)使得人們對于信息處理的需求更加迫切,相應(yīng)的推動(dòng)了計(jì)算機(jī)技術(shù)、電子技術(shù)等學(xué)科的進(jìn)步,越來越多的領(lǐng)域開始借助于DSP實(shí)現(xiàn)高速的數(shù)據(jù)處理、有效的設(shè)備控制等功能 [1]。DSP實(shí)際上是在對硬件設(shè)備進(jìn)行必要的設(shè)置后通過軟件編程的方法控制硬件進(jìn)行操作和處理的,因此,一個(gè)DSP程序如何進(jìn)行設(shè)計(jì)就變得非常重要。

2 DSP程序的開發(fā)及運(yùn)行

DSP程序的開發(fā)需要一定的編程語言和開發(fā)環(huán)境, CCS(Code Composer Studio)是TI公司推出的DSP集成開發(fā)平臺,該平臺集成了編輯、編譯連接、調(diào)試及仿真等功能,支持匯編、C語言,并提供多種實(shí)時(shí)分析和編程方法,是目前功能最全的DSP開發(fā)平臺[2]。配合DSP的代碼生成和代碼調(diào)試等開發(fā)工具,我們可以在CCS下完成一個(gè)基本的DSP程序的設(shè)計(jì)。

2.1 DSP程序的開發(fā)流程

一般來講,一個(gè)DSP程序的設(shè)計(jì)運(yùn)行需要經(jīng)過以下的操作流程:

⑴建立工程文件。

⑵編輯源文件、命令文件,庫文件等。源文件可以采用C語言或匯編語言或者二者混合進(jìn)行編輯,它是實(shí)現(xiàn)DSP程序功能的主體。CMD文件指定存儲分配。庫文件包含需要的一些系統(tǒng)函數(shù)或者數(shù)據(jù)定義。

⑶編譯鏈接源程序,生成目標(biāo)代碼程序和可執(zhí)行程序。盡管采用C語言會匯編語言作為編程語言,DSP程序的目標(biāo)及可執(zhí)行文件有其特有的格式設(shè)置,一般是COFF目標(biāo)文件和COFF可執(zhí)行文件。

⑷下載執(zhí)行程序,觀測運(yùn)行結(jié)果。在程序編譯好運(yùn)行之前,需要將其載入目標(biāo)扳。CCS的連接器輸出的目標(biāo)文件的后綴為.OUT。每次程序改動(dòng)之后,都要進(jìn)行重新編譯和載入[4]。

2.2 DSP程序開發(fā)運(yùn)行的要點(diǎn)

DSP程序區(qū)別于一般的匯編語言程序或C語言程序,在開發(fā)過程中有幾點(diǎn)非常關(guān)鍵:

⑴在遵循基本的編程語法和規(guī)則的基礎(chǔ)上,充分考慮DSP器件的特點(diǎn)。實(shí)際應(yīng)用中需要大量的硬件設(shè)置,這些都要通過軟件方式實(shí)現(xiàn)。其中,最關(guān)鍵的就是相關(guān)寄存器的操作,通過寄存器值的設(shè)置或讀取,可以完成對很多硬部件的操作設(shè)定也就是DSP需要使用的功能的設(shè)計(jì)或設(shè)備工作狀態(tài)的判定。因此,學(xué)會熟練的操作寄存器是DSP程序設(shè)計(jì)成功與否的關(guān)鍵。而DSP器件本身型號多種多樣,不同系類的芯片也有很大的區(qū)別,所以一定要細(xì)心。

⑵熟悉相應(yīng)的開發(fā)芯片的基本特征。一款DSP芯片上包含很多的部件,這些部件的有機(jī)配合完成了最終程序功能的實(shí)現(xiàn)。其中CMD文件的編寫對于整個(gè)程序的順利執(zhí)行至關(guān)重要,因?yàn)樗械腄SP程序最終都需要在DSP芯片的內(nèi)部存儲器上存儲并最終運(yùn)行,而DSP芯片的存儲是有限的,因此,必須對程序中所涉及到的代碼和數(shù)據(jù)給出準(zhǔn)確的存儲映射,這樣程序存儲執(zhí)行時(shí)才能有條不紊的進(jìn)行。

⑶仿真實(shí)現(xiàn)的重要性。既然是通過軟件的方式操縱硬件,在設(shè)計(jì)階段,我們必須借助于仿真對程序進(jìn)行測試,因此仿真器的使用非常關(guān)鍵,有了它,計(jì)算機(jī)和DSP芯片間能實(shí)現(xiàn)有效的溝通,設(shè)計(jì)出的程序才更準(zhǔn)確。

3 C語言編寫的DSP程序?qū)嵗?/p>

3.1 DSP下C的特點(diǎn)

DSP下的C語言有著其自身的特點(diǎn):

⑴DSP的C語言是標(biāo)準(zhǔn)的ANSIC,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過printf函數(shù)的調(diào)用虛擬輸出到主機(jī)的屏幕上。

⑵DSP的C語言的編譯過程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。

⑶DSP的代碼需要絕對定位;主機(jī)的C的代碼有操作系統(tǒng)定位。

⑷DSP的C的效率較高,非常適合于嵌入系統(tǒng)。

3.2 一個(gè)例子

正因?yàn)闃?biāo)準(zhǔn)的C語言和DSP下的C語言使用有所區(qū)別,因此在運(yùn)行過程中會出現(xiàn)一些問題,下面以安裝F2812開發(fā)板的瑞泰創(chuàng)新實(shí)驗(yàn)系統(tǒng)作為程序開發(fā)對象,在CCS2.2環(huán)境下給出一個(gè)簡單的C語言程序的運(yùn)行給出說明,該程序?qū)崿F(xiàn)簡單的數(shù)據(jù)輸出,且在TURBORC下調(diào)試通過,運(yùn)行得到正確結(jié)果,程序命名為Cprogram,全文如下:

#include "stdio.h"

main()

{ printf("Hello C-world!\n");

printf(" ****\n");

printf(" *\n");

printf(" * \n");

printf(" ****\n");}

將這一程序移植到CCS下,建立同名的工程,CMD文件,選擇庫文件后進(jìn)行編譯鏈接,結(jié)果出現(xiàn)兩個(gè)警告,程序得不到輸出結(jié)果。這也是大部分學(xué)生在編寫了DSP程序后編譯時(shí)出現(xiàn)的警告信息。警告信息如下:

"CProgram.c", line 7: warning: last line of file ends without a newline

warning: creating output section .cio without SECTIONS specification

⑴警告信息的消除。第一個(gè)警告是因?yàn)镈SP下的C程序最后一行必須是空行,因此在源程序最后一行末尾按回車鍵換到下一行即可。第二個(gè)警告是因?yàn)榘瑂tdio.h中函數(shù)的.cio段在命令文件中未定義,將其加上后再編譯,所有的警告消除,但程序仍然不顯示結(jié)果。

⑵程序輸出的顯示。DSP下的printf函數(shù)非常占資源的指令,它的順利執(zhí)行需要棧(heap)的設(shè)置,因此,在命令文件中需要將-heap大小設(shè)為400h。此外,由于本例中要使用庫文件,最初設(shè)定的是rts2800.lib,但是仔細(xì)考慮后發(fā)現(xiàn)rts2800.lib和rts2800_ml.lib有較為明顯的應(yīng)用區(qū)別,盡管都支持C/C++運(yùn)行支持庫,但rts2800_ml.lib支持的是大內(nèi)存模式且在指針訪問區(qū)間上更占有是,因此將庫文件替換為rts2800_ml.lib后程序再經(jīng)過編譯鏈接下載運(yùn)行后得出了最終的輸出。

4 結(jié)論

DSP程序的開發(fā)是一項(xiàng)復(fù)雜的工作,相比傳統(tǒng)的程序設(shè)計(jì)需要考慮的東西更多,更全面,因此,在學(xué)習(xí)中要堅(jiān)持謹(jǐn)慎、細(xì)心,把握好每個(gè)細(xì)節(jié),再能更好的完成特定功能的DSP程序開發(fā)。

[參考文獻(xiàn)]

[1]王忠勇,陳恩慶.TMS320F2812DSP原理與應(yīng)用技術(shù)[M].電子工業(yè)出版社,2012:1-9.

[2]何望春,蔡衛(wèi)平.CCS仿真軟件中的文件輸入輸出方法[J].中國科技信息,2012(2).

[3]周德卿.CCS集成環(huán)境下C與匯編的混合編程實(shí)現(xiàn)[J].微電子技術(shù),2002(4).

[4]李建國.基于CCS的DSP軟件開發(fā)方法[J].海軍航空工程學(xué)院學(xué)報(bào),2002(7).

主站蜘蛛池模板: www.91在线播放| www.99在线观看| 亚洲欧美成人在线视频| 青青草一区| 欧美中文字幕在线播放| 激情爆乳一区二区| 亚洲天堂网站在线| 精品天海翼一区二区| 波多野结衣的av一区二区三区| 99精品免费在线| 亚洲av色吊丝无码| 女人毛片a级大学毛片免费| 国产AV无码专区亚洲A∨毛片| 亚洲成在线观看| 亚洲男人的天堂久久香蕉网| 在线免费观看AV| 狠狠色狠狠色综合久久第一次| 国产免费精彩视频| 国产成人a毛片在线| 国产无遮挡裸体免费视频| 欧美激情首页| 视频一区亚洲| 亚洲最大福利网站| 91香蕉国产亚洲一二三区| 91小视频在线| 狠狠色香婷婷久久亚洲精品| 国产成人91精品| 亚洲综合片| 91在线国内在线播放老师| 国产精品视频白浆免费视频| 一本色道久久88亚洲综合| 欧美精品啪啪一区二区三区| 免费观看精品视频999| 久久人人97超碰人人澡爱香蕉 | 九九热这里只有国产精品| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲成人高清在线观看| 黄色一级视频欧美| 国产农村精品一级毛片视频| 免费无遮挡AV| 婷婷久久综合九色综合88| 91久久国产成人免费观看| 国产乱子伦精品视频| 色天堂无毒不卡| 国产女人在线| 欧美三级日韩三级| 国产成人无码综合亚洲日韩不卡| 国产成人乱码一区二区三区在线| 亚洲中文无码av永久伊人| 在线网站18禁| 亚洲精品国产精品乱码不卞 | 一本久道久久综合多人| 国产精品香蕉| 激情在线网| 亚洲精品动漫| 国内老司机精品视频在线播出| 成人免费视频一区| 精品99在线观看| 国内精自视频品线一二区| 亚洲综合香蕉| 91久久国产热精品免费| 色九九视频| 亚洲高清在线天堂精品| 亚洲中文无码h在线观看| 久久精品丝袜高跟鞋| 国产成人1024精品下载| 中美日韩在线网免费毛片视频| 亚洲伊人天堂| 99精品福利视频| 亚洲中文字幕av无码区| 国产精品深爱在线| 日韩精品毛片| 日韩成人在线视频| 无码精油按摩潮喷在线播放| 波多野结衣无码中文字幕在线观看一区二区 | 成人免费黄色小视频| 丁香五月激情图片| 国产在线观看成人91| 亚洲一区国色天香| 朝桐光一区二区| 国产精品55夜色66夜色| 日韩精品一区二区三区免费在线观看|