黃文蓓 沈毓磬
上海工程技術(shù)大學(xué)城市軌道交通學(xué)院 上海 201620
DSP特指數(shù)字信號處理器芯片。數(shù)字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來,隨著計算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號處理技術(shù)應(yīng)運(yùn)而生并得到迅速發(fā)展[1]。本文采用Code Composer Studio軟件,利用硬件DSP電路,實現(xiàn)CCS在DSP中輸出所需的波形。
CCS(Code Composer Studio)是一個完整的DSP集成開發(fā)環(huán)境,是目前最優(yōu)秀、最流行的DSP開發(fā)軟件之一。現(xiàn)在TI所有的DSP都可以使用該軟件工具進(jìn)行開發(fā),只是只有′C5000和′C6000的CCS中才提供DSP/BIOS功能,而在′C2000和′C3X的中是沒有DSP/BIOS功能的。所以有時也將用于′C2000和′C3X開發(fā)的集成開發(fā)環(huán)境稱為CC(Code Composer),以示區(qū)別。CCS支持軟仿真器、各種型號硬仿真器、各種DSK和EVM板,需要向相應(yīng)的生產(chǎn)廠家索取驅(qū)動程序,然后在CCS中安裝即可[2]。
目前CCS的功能日益強(qiáng)大,可擁有以下幾個方面。
1)集成可視化代碼編輯界面,可直接編寫C、匯編、.H文件、.cmd文件等。
2)集成代碼生成工具,包括匯編器、優(yōu)化C編譯器、連接器等。
3)基本調(diào)試工具,如裝入執(zhí)行代碼(.OUT文件),查看寄存器窗口、存儲器窗口、反匯編窗口、變量窗口等,支持C源代碼級調(diào)試。
4)支持多DSP調(diào)試。
5)斷點(diǎn)工具,包括硬件斷點(diǎn)、數(shù)據(jù)空間讀/寫斷點(diǎn)、條件斷點(diǎn)(使用GEL編寫表達(dá)式)等。
6)探針工具(probe points),可用于算法仿真,數(shù)據(jù)監(jiān)視等。
7)剖析工具(profile points),可用于評估代碼執(zhí)行的時鐘數(shù)。
8)數(shù)據(jù)的圖形顯示工具,可繪制時域/頻域波形、眼圖、星座圖、圖像等。
9)支持RTDX(Real Time Data exchange)技術(shù),利用該技術(shù)可在不中斷目標(biāo)系統(tǒng)運(yùn)行的情況下,實現(xiàn)DSP與其他應(yīng)用程序(OLE)實現(xiàn)數(shù)據(jù)交換。
10)提供DSP/BIOS工具,利用該工具可增強(qiáng)對代碼的實時分析能力,如分析代碼執(zhí)行的效率,
11)調(diào)度程序執(zhí)行的優(yōu)先級,方便管理或使用系統(tǒng)資源(代碼/數(shù)據(jù)占用空間,中斷服務(wù)程序的調(diào)用,定時器使用等),從而減小開發(fā)人員對硬件資源熟悉程度的依賴性[3]。
目前TI公司發(fā)布的CCS軟件版本中常用的有CCS2.2、CCS3.1以及CCS3.3。CCS2.2是一個分立版本的開發(fā)環(huán)境,所以體積較小,使用起來也比較穩(wěn)定,但是使用C語言編程時代碼優(yōu)化的效率比較低。而CCS3.1和CCS3.3是集成版本,所以體積比較大,雖然在C語言編程時,代碼優(yōu)化方面和CCS2.2相比,做了很多改進(jìn),但是系統(tǒng)穩(wěn)定性稍顯欠缺。CCS3.3是比較新的版本,所以目前使用的人最多。TI不斷推出新版本的CCS[4]。
為了能夠更好地理解CCS所工作的內(nèi)容,需要簡單理解一下預(yù)處理、編譯和鏈接這3個概念。預(yù)處理時對源代碼進(jìn)行編譯前的處理,源代碼就是之前在CCS3.3環(huán)境中所編寫的C語言代碼或者匯編語言代碼,語句前為“#”的語句就是在預(yù)處理期間進(jìn)行作用的。編譯是將原文件處理成目標(biāo)文件的過程,而目標(biāo)文件并不是下載到DSP中能夠運(yùn)行的可執(zhí)行代碼,它通常包含有許多位置代碼,例如包含有某些函數(shù)在可執(zhí)行文件中的位置。鏈接則是將許多目標(biāo)文件合并處理成可執(zhí)行文件??梢姡瑢υ次募H編譯的話是不能產(chǎn)生可執(zhí)行文件的,只有通過編譯和鏈接,才能最終生成可執(zhí)行文件。
編譯代碼的通常操作[5]:1)創(chuàng)建新的工程;2)打開已存在的工程;3)新建一個文件;4)向工程添加文件;5)移除工程中的文件;6)給工程添加庫文件;7)查找變量;8)替換變量;9)查看源碼
通常,程序在通過編譯之后,還不能說明程序已經(jīng)開發(fā)成功。編譯通過只能說明編寫的程序已經(jīng)沒有語法錯誤,而程序是不是已經(jīng)實現(xiàn)了所需要的功能,則還不清楚。這就需要對程序慢慢進(jìn)行調(diào)試來進(jìn)行功能驗證。在CCS3.3下,調(diào)試程序通常需要掌握以下幾點(diǎn)操作。
1)添加、移除斷點(diǎn)。調(diào)式時經(jīng)常要看看某一行代碼是否被執(zhí)行,或者執(zhí)行前后某些變量的狀態(tài)變化情況,此時就需要在這一行代碼前設(shè)置一個斷點(diǎn)。
2)單步調(diào)試。在調(diào)試程序時經(jīng)常會遇到一些需要逐行運(yùn)行、逐行分析的情況,只有這樣才能定位到問題的所在,這時候就需要使用單步調(diào)試的功能。
3)使用watch window觀察變量。一個程序通常會有許多變量,而常常又希望在調(diào)試的時候能夠觀察到某個或者某些變量的值,以便于判斷程序運(yùn)行是否正常,是否符合既定的要求,這時就需要使用watch window的功能來查看變量的值。
4)保存并導(dǎo)出變量的值。
5)觀察指定存儲空間內(nèi)的數(shù)據(jù)。
6)統(tǒng)計代碼的運(yùn)行時間。
7)在CCS中顯示圖形(這一步是相對其他步驟比較復(fù)雜的操作)。
通過CCS在DSP上完成代碼調(diào)試,最后輸出想要的波形。
在初步學(xué)習(xí)完CCS的一個大概系統(tǒng)后,總結(jié)幾點(diǎn)在進(jìn)行CCS在DSP開發(fā)應(yīng)用中的學(xué)習(xí)需要的注意事項。第一是要學(xué)會總結(jié)在操作實驗過程中的得與失,吸取以前的教訓(xùn)和經(jīng)驗,才能在以后的操作中打下扎實的基礎(chǔ)。第二要掌握相當(dāng)多的相關(guān)知識,比如編程和對時序的認(rèn)識,這樣才能在實際操作中熟練快速地進(jìn)行實驗。通過學(xué)習(xí)CCS的操作,可以在DSP上熟練運(yùn)用,完成代碼調(diào)試后便能夠在顯示屏上顯示需要的波形。
[1]顧衛(wèi)剛.手把手教你學(xué)DSP:基于TMS320X281x[M].北京:北京航空航天大學(xué)出版社,2011.
[2]DSP實驗室.軟件開發(fā)工具CCS的使用[M].北京:北京交通大學(xué)電子學(xué)院,2005.
[3]李亞,羅仁澤,羅朗,等.“DSP芯片原理及應(yīng)用”教學(xué)方法探索[J].電氣電子教學(xué)學(xué)報,2008(6):91-92.
[4]裘云.DSP技術(shù)及其前景[J].微計算機(jī)信息,2000(5):3-4.
[5]杜開初.單板機(jī)的斷點(diǎn)設(shè)置過程[J].龍巖師專學(xué)報,1989(2):63-66.