2007年5月26日 星期六

使用C/C++語言編寫基於TMS320系列DSP程式的注意事項

1、 不影響執行速度的情況下,可以使用C或C/C++語言提供的函數庫,也可以自己設計函數,這樣更易於使用“裁縫師”優化處理,例如:進行絕對值運算,可以調用fabs()或abs()函數,也可以使用if...else...判斷語句來替代。

2、 要非常謹慎地使用局部變數,根據自己專案開發的需要,應盡可能多地使用總體變數和靜態變數。

3、 一定要非常重視中斷向量表的問題,很多朋友對中斷向量表的調用方式不清楚。其實中斷向量表中的中斷名是任意取定的,DSP是不認名字的,它只認地址!!中斷向量表要重新定位。這一點很重要。

4、 要明確DSP軟體發展的第一步是對可用存儲空間的分析,存儲空間分配好壞關係到一個DSP程式師的水平。對於DSP,我們有兩種名稱的存儲空間,一種是物理空間,另一種是映射空間。物理空間是DSP上可以存放資料和程式的實際空間(包括外部記憶體),我們的資料和程式最終放到物理空間上,但我們並不能直接訪問它們。我們要訪問物理空間,必須借助於映射空間才行!!但是映射空間本身是個“虛”空間,是個不存在的空間。所以,往往是映射空間遠遠大於實際的物理空間,有些映射空間,如IO映射空間,它本身還代表了一種介面。只有那些物理空間映射到的映射空間才是我們真正可訪問(讀或寫)的存儲空間。

5、 盡可能地減少除法運算,而盡可能多地使用乘法和加法運算代替

6、 如果TI公司或第三方軟體合作商提供了DSPLIB或其他的合法副程式庫供調用,應盡可能地調用使用。這些副程式均使用用彙編寫成,更爲重要之處是通過了TMS320演算法標準測試。而且,常用的數位信號處理演算法均有包括!!

7、 盡可能地採用內聯函數!!而不用一般的函數!!可以提高代碼的集成度。

8、 編程風格力求簡煉!!盡可能用C語言而不用C++語言。我個人感到雖然C++終代碼長了一些,好象對執行速度沒有影響.

9、 因爲在C5000中double型和float型均佔有2個字,所以都可以使用,而且,可以直接將int型賦給float型或double型,但,盡可能地多使用int資料類型代替!這一點需要注意!!

10、 程式最後至少要加上一個空行,編譯器當這個空行爲結尾提示符。

11、 大膽使用位運算符,非常好用!!

12、 2003年6月份從TI的網站上下到了關於TMS320C67x系列DSP的快速演算法庫,於是,TMS320C5000和C6000全系列的快速演算法庫都問世了,這些演算法庫均可供C/C++語言直接調用,優化程度100%,實際編程時盡可能地使用(下載時可以同時下載到說明文檔和ASCII根源程式,可以根據自己需要作出修改,修改前最好做個備份)

Take by http://bbs.eeworld.com.cn/1318/ShowPost.aspx

沒有留言:

電子與通訊

這裡就是我的新的Blog 將以電子與通訊 做為本人研究探討之地!!
希望能夠更加了解神奇的宇宙 歡迎各位光臨 ^^"