作者:paradoxfx 來(lái)源:電子產(chǎn)品世界 我們已經(jīng)連載了25篇有關(guān)于DSP編程技巧的文章。了解了這些技巧,相當于工具已經(jīng)在手,但是每個(gè)人都是有一定的學(xué)習曲線(xiàn)的,工具的使用都是一個(gè)熟能生巧的過(guò)程,在這一過(guò)程中難免有一些疑惑的,所以我們總結大家在學(xué)習DSP編程過(guò)程中經(jīng)常遇到的問(wèn)題,做一些集中解惑,希望對大家有所幫助。 1. DSP編程技巧到底有什么好資料? 話(huà)說(shuō)專(zhuān)門(mén)深入講解這個(gè)的資料并不是太多,因為大部分DSP書(shū)籍都是講解算法或者寄存器是怎么使用的,那盡量羅列一下(如有遺漏請在評論區補充),有: (1)《DSP C2000程序員高手進(jìn)階》 這本書(shū)是當年筆者學(xué)習DSP的時(shí)候看了好幾遍的,講的非常深入、透徹,可惜早就賣(mài)光了并且沒(méi)有再版。需要的網(wǎng)友可以考慮去圖書(shū)館看看,圖書(shū)館里最不缺少的就是老版本的書(shū)籍了。。。 (2)牛人業(yè)話(huà) (3)官方資料 最權威的當然還是官方資料,特別是《TMS320C28x Optimizing C/C++ Compiler User’s Guide》和《TMS320C28x Assembly Language Tools User’s Guide》。不足之處就在于,它們都像教科書(shū),嚴謹有余,活潑不足,特別是初入門(mén)的人看起來(lái)會(huì )比較累。 (4)參加一些培訓 好的培訓一般都是要付費的,這個(gè)要根據自己的實(shí)際情況進(jìn)行取舍了。 2. 答疑解惑哪家強? 經(jīng)驗的積累,除了自己努力的自學(xué)之外,有時(shí)候一些難關(guān)還是得有別人的幫助才行,可能你花3天搞不定的問(wèn)題,他一看就想起來(lái)是什么原因了。如果是企業(yè)客戶(hù),那直接聯(lián)系官方技術(shù)支持,很容易就搞定了;蛘咭部梢匀ス俜秸搲釂(wèn),然后等待解答。 前面這兩個(gè)無(wú)關(guān)具體技術(shù),但是能起到 “源頭”的作用。接下來(lái)就是具體的技術(shù)問(wèn)題了,有幾十個(gè),我們慢慢來(lái)看吧。 3. 作為入門(mén)者,創(chuàng )建一個(gè)最基本的工程需要做哪些事情? 最簡(jiǎn)單的入門(mén)方法是從現有的例子上入手,比如購買(mǎi)開(kāi)發(fā)板的話(huà),一般都會(huì )附送十幾到幾十個(gè)上手用的例子工程,把它們研究一遍,基本上入門(mén)這關(guān)就過(guò)了。對于C2000 DSP的學(xué)習來(lái)說(shuō),先到TI網(wǎng)站上搜索ControlSUITE軟件下載安裝,里面的入門(mén)視頻、工程例子和所有的文檔資料都是一應俱全的。如果你買(mǎi)書(shū)籍來(lái)入門(mén)的話(huà),和教編程的書(shū)籍一樣,大部分都還是以“Hello world”作為第一個(gè)程序入手,然后運行程序顯示在調試窗口中的。 4. 一個(gè)定點(diǎn)的C28x起始工程最少需要哪些文件和選項? 1) 編譯器選項:-v28 -ml -mt -g -pdr –w 2) 包含main()函數的一個(gè).c或者.cpp程序 3) 實(shí)時(shí)運行支持庫文件rts2800_ml.lib 4) 鏈接文件(.cmd)和頭文件:一個(gè)小的入門(mén)工程,一般從別的工程里把它們復制過(guò)來(lái)就好了,比如可以從ControlSUITE軟件的目錄下找到對應器件的。 5. 一個(gè)浮點(diǎn)的C28x起始工程最少需要哪些文件和選項(啟用浮點(diǎn)支持)? 1) 編譯器選項:-v28 --float_support=fpu32 -ml -mt -g -pdr -w 2) 包含main()函數的一個(gè).c或者.cpp程序 3) 實(shí)時(shí)運行支持庫文件rts2800_fpu32.lib 4) 鏈接文件(.cmd)和頭文件:一個(gè)小的入門(mén)工程,一般從別的工程里把它們復制過(guò)來(lái)就好了,比如可以從ControlSUITE軟件的目錄下找到對應器件的。 6. 包含CLA和VCU的器件,其入門(mén)工程需要哪些額外選項? 新器件層次不窮,短短幾年時(shí)間,包含控制律加速器(CLA)和VCU加速器(用來(lái)執行高效 Viterbi、復雜算術(shù)運算,16 位快速傅里葉變換 (FFT) 和 CRC 算法)的器件已經(jīng)有幾十種了,而且像CLA、VCU這些技術(shù)還在快速地升級中,如果要在代碼中用到這些特性,就需要添加--cla_support=cla0和--vcu_support=vcu0這樣的選項。 7. 編譯器選項有那么多中,典型的配置有哪些? C28x編譯器的選項非常多,我們用了很長(cháng)的篇幅來(lái)講解它們。作為典型配置的話(huà),對于C28x的CPU來(lái)說(shuō)(通常我們把DSP的架構劃分為CPU+外設,更復雜的則還有FPU、CLA、VCU等額外單元),常用的選項如表1所示。 ![]() ![]() ![]() ![]() 注:如果一個(gè)選項沒(méi)有別名,則代表在使用它的時(shí)候直接使用全名,如表1的第二列那樣的形式。 |