1、 不影響執(zhí)行速度的情況下,可以使用c或c/c++語(yǔ)言提供的函數(shù)庫(kù),也可以自己設(shè)計(jì)函數(shù),這樣更易于使用“裁縫師”優(yōu)化處理,例如:進(jìn)行絕對(duì)值運(yùn)算,可以調(diào)用fabs()或abs()函數(shù),也可以使用if...else...判斷語(yǔ)句來(lái)替代。
2、 要非常謹(jǐn)慎地使用局部變量,根據(jù)自己項(xiàng)目開(kāi)發(fā)的需要,應(yīng)盡可能多地使用全局變量和靜態(tài)變量。
3、 一定要非常重視中斷向量表的問(wèn)題,很多朋友對(duì)中斷向量表的調(diào)用方式不清楚。其實(shí)中斷向量表中的中斷名是任意取定的,dsp是不認(rèn)名字的,它只認(rèn)地址??!中斷向量表要重新定位。這一點(diǎn)很重要。
4、 要明確dsp軟件開(kāi)發(fā)的第一步是對(duì)可用存儲(chǔ)空間的分析,存儲(chǔ)空間分配好壞關(guān)系到一個(gè)dsp程序員的水平。對(duì)于dsp,我們有兩種名稱(chēng)的存儲(chǔ)空間,一種是物理空間,另一種是映射空間。物理空間是dsp上可以存放數(shù)據(jù)和程序的實(shí)際空間(包括外部存儲(chǔ)器),我們的數(shù)據(jù)和程序最終放到物理空間上,但我們并不能直接訪問(wèn)它們。我們要訪問(wèn)物理空間,必須借助于映射空間才行!!但是映射空間本身是個(gè)“虛”空間,是個(gè)不存在的空間。所以,往往是映射空間遠(yuǎn)遠(yuǎn)大于實(shí)際的物理空間,有些映射空間,如io映射空間,它本身還代表了一種接口。只有那些物理空間映射到的映射空間才是我們真正可訪問(wèn)(讀或?qū)懀┑拇鎯?chǔ)空間。
5、 盡可能地減少除法運(yùn)算,而盡可能多地使用乘法和加法運(yùn)算代替。
6、 如果ti公司或第三方軟件合作商提供了dsplib或其他的合法子程序庫(kù)供調(diào)用,應(yīng)盡可能地調(diào)用使用。這些子程序均使用用匯編寫(xiě)成,更為重要之處是通過(guò)了tms320算法標(biāo)準(zhǔn)測(cè)試。而且,常用的數(shù)字信號(hào)處理算法均有包括?。?/p>
7、 盡可能地采用內(nèi)聯(lián)函數(shù)?。《挥靡话愕暮瘮?shù)?。】梢蕴岣叽a的集成度。
8、 編程風(fēng)格力求簡(jiǎn)煉!!盡可能用c語(yǔ)言而不用c++語(yǔ)言。我個(gè)人感到雖然c++終代碼長(zhǎng)了一些,好像對(duì)執(zhí)行速度沒(méi)有影響。
9、 因?yàn)樵赾5000中double型和float型均占有2個(gè)字,所以都可以使用,而且,可以直接將int型賦給float型或double型,但,盡可能地多使用int數(shù)據(jù)類(lèi)型代替!這一點(diǎn)需要注意??!
10、 程序最后至少要加上一個(gè)空行,編譯器當(dāng)這個(gè)空行為結(jié)尾提示符。
11、 大膽使用位運(yùn)算符,非常好用!!
12、 2003年6月份從ti的網(wǎng)站上下到了關(guān)于tms320c67x系列dsp的快速算法庫(kù),于是,tms320c5000和c6000全系列的快速算法庫(kù)都問(wèn)世了,這些算法庫(kù)均可供c/c++語(yǔ)言直接調(diào)用,優(yōu)化程度100%,實(shí)際編程時(shí)盡可能地使用(下載時(shí)可以同時(shí)下載到說(shuō)明文檔和ascii源程序,可以根據(jù)自己需要作出修改,修改前最好做個(gè)備份)。
評(píng)論