新聞中心

EEPW首頁 > 汽車電子 > 學(xué)習(xí)方法與實(shí)踐 > DSP C語言基礎(chǔ)要點(diǎn)

DSP C語言基礎(chǔ)要點(diǎn)

——
作者: 時(shí)間:2006-12-15 來源: 收藏
年初到現(xiàn)在,接觸已經(jīng)半年了,由于公司沒有人指導(dǎo),做了這么久都沒出什么大的成果,也走了不少的彎路。以前做單片機(jī)用C編過一些程序,個(gè)人覺得還可以?,F(xiàn)在看來也只是在吃以前在學(xué)校里面一些C語言皮毛的老本,加上一些網(wǎng)上說的所謂的技巧什么的結(jié)合以前匯編的經(jīng)驗(yàn)做了一些針對(duì)處理器的優(yōu)化而已,實(shí)在“雞肋”得很。很多東西都沒有接觸應(yīng)用到。
   直到接觸到,由于使用TI的庫文件例程的緣故,對(duì)結(jié)構(gòu)體,聯(lián)合體等有了進(jìn)一步的了解,也對(duì)一個(gè)工程變量的使用有了更深的認(rèn)識(shí)。下面對(duì)談?wù)剬?duì) C剛?cè)腴T者的一些建議:
   1.DSP程序的定位配置---CMD文件,要求熟悉DSP的存儲(chǔ)器結(jié)構(gòu)。這一部分對(duì)接觸硬件多一些的新手很容易,其實(shí)也就是配置一般的C語言編譯器的一部分,比如AVR單片機(jī)的頭文件,cpu選擇等在DSP中就是這一部分完成。另外還要注意TI例程中對(duì)加密位,看門狗的處理。

   2.當(dāng)然是C語言的一些基礎(chǔ)了:運(yùn)算符,優(yōu)先級(jí),幾個(gè)基本流程控制語句。這些無論是什么C平臺(tái)運(yùn)行都一樣的,基礎(chǔ)中的基礎(chǔ)。但是也很容易因?yàn)檫@些基礎(chǔ)的簡(jiǎn)單的問題,導(dǎo)致一些很郁悶的結(jié)果。也是因?yàn)閷?duì)這些基礎(chǔ)的概念的理解深入程度影響你的軟件思想。

   3.結(jié)構(gòu)體,聯(lián)合體,位域的運(yùn)用,最好能有一個(gè)對(duì)比,了解運(yùn)用的場(chǎng)合及優(yōu)缺點(diǎn)。有了這些基礎(chǔ),就很容易明白TI例程的一些基本結(jié)構(gòu)。

   4.變量的作用域以及生存期,這樣才能從最初的單個(gè)的C文件過渡到C工程,才能更好地了解模塊化編程地基本要素,實(shí)現(xiàn)基礎(chǔ)。

   5.Q格式等的應(yīng)用,因?yàn)榇蠖鄶?shù)DSP都是定點(diǎn)的,而做運(yùn)算處理的很多時(shí)候都不可避免要用到浮點(diǎn)數(shù)。使用Q格式才能更好的發(fā)揮dsp高速的特性。所以有人說“不會(huì)使用Q格式的DSP程序員不是優(yōu)秀的程序員”!

   6.另外我覺得如果用DSP參與控制的話,最好能熟悉一些面向?qū)ο蟮某绦蛘Z言,比如C++。要能了解用C實(shí)現(xiàn)面向?qū)ο蟮姆椒ā槭裁茨??一是面向?qū)ο笪覀€(gè)人覺得在寫程序方面模塊化等要好一些,特別是控制領(lǐng)域,我看過一些高手的PLC程序也是采用的面向?qū)ο蟮乃枷霕?gòu)件模塊的,從那以后我的單片機(jī)程序才開始這樣靠攏,也確實(shí)發(fā)現(xiàn)了一些好處。比如對(duì)那些c流程中多次要操作的資源,有時(shí)候會(huì)出現(xiàn)一些共用操作的位置錯(cuò)誤。二是TI的例程中有好多地方用到了這些思想,要明白這些東西,你才能更容易理解那些例程。這一部分我推薦一本書《DSP C2000程序員高手進(jìn)階》。

  7.數(shù)據(jù)結(jié)構(gòu)知識(shí),DSP要做運(yùn)算,肯定要涉及到一些好的數(shù)據(jù)結(jié)構(gòu)。才能更好的優(yōu)化算法。

  8.matlab的運(yùn)用。matlab提供了強(qiáng)大的數(shù)學(xué)運(yùn)算能力,還能對(duì)DSP結(jié)合CCS進(jìn)行仿真??梢园殉绦騿T從繁瑣的底層編程中解放出來。個(gè)人感覺matlab給編程思想和底層程序提供了一個(gè)連接,一個(gè)平臺(tái)。


c語言相關(guān)文章:c語言教程


c++相關(guān)文章:c++教程




關(guān)鍵詞: DSP

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉