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