A. 如何用ccs6.0將程序燒進dsp
具體操作步驟如下:
(1)將DSP的MP/MC引腳置高,讓DSP工作在微處理器方式。
(2)將第一段代碼通過模擬器下載到DSP中,但不運行該代碼。
(3)將第二段代碼通過模擬器下載到DSP中,運行此代碼。
(4)代碼2運行結束後,去掉模擬器,並將MP/MC引腳置低,讓DSP工作在微型計算機方式。
(5)復位DSP,DSP獨立運行。
B. 對DSP而言,CCS用C語言編程和匯編編程,二者的效率相差多少
我用的是28XX系列的,不知道經驗對你有沒有用,因為不同系列的晶元多少有些差別。
TI提供的庫已經相當可以了,兼顧易用與效率。我當時做過這樣的測試
1. 用IQMATH實現
2. 直接C語言實現
3. C語言優化實現
4. 原生匯編實現
IQMATH的運行周期在1000左右,比方案3快幾十個周期,比方案4慢幾個周期,方案2是10000多個周期。
另外,因為只是單獨測的演算法,匯編之所以快是快在寄存器的使用上,操作數可以直接入寄存器,但是考慮到程序其他部分是用C語言編寫的話,把操作棧的時間也加上,並不比方案1快。畢竟我對TI的匯編吃的也不透。
在編寫上,無疑是方案1提供了最接近C語言風格的實現,幾乎不用考慮ISA方面的問題。
另外對於執行效率,我覺得主要考慮三點:
1.分支的使用
CCS對C語言的優化我沒做過太多比對。其實單從反匯編的結果看,我接觸過的嵌入式開發環境的編譯器都能做出很好的優化。但是幾乎每個編譯器都會在邏輯的優化上有欠缺——它只能對一些顯而易見的判斷條件進行優化,而在寫程序的過程中,我們經常出於易讀性的考慮,或者穩定性的考慮,或者其他的考慮加入幾乎不會發生的分支,這樣的分支判斷會消耗一定比率的代碼段執行效率,視乎代碼段內有用功能的長度而定,越長這個比率越小,越短這個比率越高。
2.一般操作,就是各種賦值操作
在一般的操作上,編譯器的優化已經很令人滿意了,基本上可以作為編寫匯編的範本。我覺得所謂效率能達到90%就是針對這個部分說的。
3.特殊操作,比如對整塊內存的操作,或者是浮點運算上。
在一些特殊的操作上,就要看是否有現成的庫,或者看硬體是否支持。比如對整塊內存操作就別用循環一個位元組一個位元組的搬了。
以上三點都能考慮到的話,相信執行效率方面已經沒有太大的提升空間了。
另外如果你的代碼發生在初始化部分,也就是只在系統運行開始的時候運行一次,那麼優化不優化其實沒有太大的必要,除非你對系統初始化的時間有嚴格的要求。但是如果你的代碼是作為任務要被反復運行的,那就有優化的必要了。
在CCS里有代碼消耗時鍾周期的統計,如果你覺得某段代碼效率低下的話,可以先分段進行消耗時鍾周期的計算,這樣優化比較有針對性。
C. dsp 用什麼編程
用的都是CCS編程。
CCS有兩種工作模式:
1.軟體模擬器模式:可以從DSP晶元中分離出來,在PC上模擬DSP的指令集和工作機制,主要用於前期演算法的實現和調試。
2.硬體在線編程模式:在DSP晶元上實時運行,將應用程序的在線編程和調試與硬體開發板集成。
CCS的開發系統主要由以下組件構成:
1.TMS320C54x集成代碼生成工具;
2.CCS綜合開發環境;
3.DSP/BIOS實時內核插件及其應用程序介面API;
4.實時數據交換RTDX插件及相應的編程介面API;
5.由第三方TI公司對外提供多種應用模塊插件。
(3)ccs進行dsp編程擴展閱讀:
dsp編程中雙重循環、多重循環的優化:
(1)多重循環拆成單層循環,減少循環層數;
例如,雙重循環內一個百cycle只使用了一個乘法器,拆成單層循環後,一個cycle可使用2個乘法器,充分利用DSP乘法器資源,同時運算速度也會加快;
(2)如果循環次數較少,則將其放入外循環;如果循環次數更多,則將其放入內存循環;
(3)二維數組的雙環:二維數組的行循環置於外環,列循環置於內環;
(4)避免循環內的乘除操作:循環內的乘除操作移到循環外,由加法代替。
D. dsp實驗,ccs是什麼環境,有什麼作用
數字信號處理(digital signal processing,DSP)
Code Composer Studio
CCS是TI公司為DSP開發者提供的集成開發環境,用於編寫,調試,模擬DSP程序的。
就相當於微軟為C,C++開發者提供的VS,VC之類的集成開發環境。
在CCS中支持C語言和匯編語言編程,C++好像也支持。
E. 如何使用ccs進行dsp編程
使用ccs進行dsp混合編程(C+ASM) 2010-10-30 12:41 970379188 | 分類:其他編程語言 1、實現C調用匯編語言程序,在main函數中調用匯編實現的函數addarr2, addarr...