dspc語言
㈠ dsp的程序問題。解釋一下dsp c 語言的問題
從這些宏定義可以看到c語言是如何支持硬體編程的。
以#define IMR *(volatile unsigned int *)0x0004 為例:
1)0x0004,這個容易理解,是一個十六進制的常數
2)再看(volatile unsigned int *),這是一個強制轉換,將0x0004轉換成(volatile usigned int *)
3)現在解釋volatile usigned int *是什麼。* 表示指針(地址),這個指針指向一個 usigned int的數。最前面的volatile有特殊含義:這個指針必須保存在RAM中(不是FLASH或DSP寄存器中)
4)綜合上面1)2)3)可知: (volatile unsigned int *)0x0004 的含義是:
0x0004是一個地址,在這個地址內保存的是一個unsigned int 類型的整數。這個地址存在於RAM
5)*(volatile unsigned int *)0x0004 最左邊多一個*,表示取地址指向單元的內容。綜合起來的意思是:從0x0004地址單元中取出一個usigned int 類型的數據值
6)#define IMR *(volatile unsigned int *)0x0004 的意思是,將從0x0004地址單元中取出一個usigned int 類型的數據值定義為IMR
7)根據DSP硬體,在DSP中RAM中的 0x0004地址單元恰好是中斷管理寄存器!
8)繞了半天,#define IMR *(volatile unsigned int *)0x0004 的意思是:在C語言程序中,定義了一個宏標示符 IMR 來表示DSP中的中斷管理寄存器。在程序中,可以通過這個宏標示符來使用這個寄存器:
unsigned int v = IMR; //取出中斷管理寄存器的值並賦給v
㈡ dsp的c語言程序為什麼需要優化
曾幾何時匯編編程是dsp工程師的一張名片。很多人到現在談起匯編編程還是頗為自豪的,搞得你想說自己不會都要鼓起點勇氣——那眼神是恨不得把你送回火星去。這主要是因為在最開始的時候DSP上的C語言編譯器不是很普遍,編譯器的水平也還在起步階段,很難用到DSP相應的硬體特性,編譯效率值得商榷。而且那時DSP應用場景和復雜度遠不比今天,基本上限制在數字信號處理的典型演算法上,FFT,FIR,IIR濾波器,等等。這些函數和濾波器的實現相對今天的應用比較簡單,用匯編語言也容易突出DSP的硬體特性。還有一個原因是那時候DSP普遍都跑的很慢,基本上在幾十兆的水平。這也限制了C語言的使用。試想一下一段C代碼跑的比匯編慢十倍,幾十兆的DSP一下就變幾兆了。
但是今天再來看這所有的一切是完全不一樣了。首先是DSP的應用范圍越來越廣,客戶越來越多的希望用同一顆晶元,在同一個平台上實現更多的設計和應用。這對DSP的設計,DSP和MCU的融合都帶來重大影響。DSP和MCU之間也不是過往那井水不犯河水的安寧。隨著DSP和MCU的主頻先後突破1GHz,在很多應用中DSP和MCU相伴相生的場景也開始被一顆強壯的芯代替,或者DSP或者MCU。在這樣的應用中,操作系統,文件系統,USB協議棧,TCP/IP,海量數據存儲,樣樣都會用到。數字信號處理也從骨灰級的濾波器變成全系列音視頻處理,OFDM基帶處理,天線陣列信號處理,彩色圖像重建… 試想一下這些應用哪一個不是成千上萬行代碼。匯編語言在編程復雜度,可移植性和可維護性上真的是遇到了前所未有的挑戰。而與此相對應的是C語言和C語言編譯器的蓬勃發展。今天您可以很容易找到上面提到所有這些應用和演算法的C語言實現,而C語言編譯器在編譯效率和成熟度上都有很大的突破。也讓C語言在DSP上的應用得以受到愈來愈高的重視。
㈢ 新手學習DSP的C語言編程,請高手指點:
C6713沒用過,我用過TMS320F2812的晶元。建議你先熟悉一下CCS開發環境,然後再認真的看代碼。TI的DSP,封裝了很多的頭文件,沒有必要全部都要看看頭文件里是怎麼寫的。最好先把整個程序的運行流程看懂。然後結合晶元手冊,看看每一步怎麼做的,是如何通過配置寄存器、如何使用外設等等。關鍵還是看晶元手冊。等熟悉了之後,再深入看頭文件啥的。
㈣ DSP的C語言,菜鳥起步,高手幫幫忙;感激不盡
這是非整數的定點計算, 無論加減法, 乘除法, 都需要移位.
㈤ DSP中的C語言和VC下的C語言有什麼區別
怎麼說呢,能叫C的超集吧其實就是C,或者C++,除了支持標准ANSI C以外,擴展了一些支持特定硬體的寄存器及其相關操作,等等。。
㈥ Dsp的c語言與標准c語言有什麼區別
基本差不多,只是有些標准C的操作沒有,比如printf,但是DSP的c語言擴充了一些關鍵字,和一般的c語言還是有區別的,需要自己去查相應的數據手冊。
㈦ dsp c語言 基礎
我現在也在學DSP,推薦《手把手教你學DSP》這本書,很基礎的比較容易看懂。再去找一本介紹(你現在用的晶元)寄存器比較詳細的書。學習新內容的時候先看看這一章的大概,然後再對應歷程查看寄存器。這樣還是比較容易上手的。
C語言的話還是需要的,看看c語言的循環部分(for循環必須要會)、函數部分(學會子函數的寫法)、結構體部分(了解一點基礎就行,因為dsp寄存器採用的結構體的方式),這樣基本上就可以了,復雜的c語言用的不多,只要看看最最基礎的一些就行。
㈧ DSP可不可以用C語言寫
當然可以啦... 只要有編譯開發環境,比如Code Composer Studio,編譯就可以了