CCS使用和調試實驗_第1頁
CCS使用和調試實驗_第2頁
CCS使用和調試實驗_第3頁
CCS使用和調試實驗_第4頁
CCS使用和調試實驗_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗2CCS使用和調試實驗一、實驗目的1.掌握利用CCS建立工程、編譯與調試代碼的基本過程;2.掌握基本調試技術:如觀察窗、圖形(斷點)、文件I/O(探針)、剖析等;二、實驗內容1.建立工程test1.pjt,然后分別建立源程序(test1.c或.asm)、頭文件(test1.h)和連接命令文件(test1.cmd)。并編譯、下載和運行程序。(此處為了方便起見,直接例程volume.c拷貝到test1.c,將volume.h拷貝到test1.h,將volume.cmd拷貝到test1.cmd。向分別工程中添加源程序、頭文件、連接命令文件(.cmd)以及庫文件(.lib)。2.利用CCS工具調試程序(1)觀察計算結果的數據(2)觀察數據的圖形(斷點)(3)觀察存儲器中的數據(4)利用文件I/O實現外部數據和DSP存儲區(qū)的交換(探針)(5)利用剖析工具分析程序各段執(zhí)行的時間查看源程序代碼

volume.c

簡介:主程序打印一個信息,然后進入無限循環(huán)。在這個循環(huán)中,調用dataIO和進程函數。在輸入緩沖區(qū)中,處理函數將每個值乘以增益,并將結果放到輸出緩沖區(qū)。它也調用匯編加載過程,此過程消耗基于將processingLoad值傳遞到過程的指令周期。例子中的dataIO函數不作任何處理,僅僅返回。除了使用C代碼執(zhí)行I/O,我們將使用CCS中的探針ProbePoint,讀取主機的文件中數據到inp_buffer區(qū)域。2.1編譯與運行程序1.選擇Project/RebuildAll或單擊(RebuildAll)菜單條按鈕,CCS重新進行編輯、匯編、連接工程里的所有文件。這個處理的有關信息在窗口底部一個小框里顯示。2.默認時,.out文件編譯到位于當前工程文件夾中的調試(debug)目錄中;也可以通過CCS工具條選擇一個存儲目錄。3.選擇File/LoadProgram.選中volume1.out,并按Open。(c:\ti\myprojects\volume1\Debug\文件夾中。)

CCS將程序裝載到目標DSP上,打開顯示程序反匯編指令的Disassembly窗口。4.選擇View/MixedSource/ASM.這樣可以同時查看C源程序和產生的匯編代碼。5.在混合窗口單擊匯編指令(單擊有效指令,而不是指令的地址或指令所傳遞的區(qū)域),單擊F1,CCS可以尋找此指令的幫助。這是學習指令的很好的方法。6.選擇Debug/GoMain。從主程序開始執(zhí)行。7.選擇Debug/Run或單擊(Run)按鈕。

8.選擇Debug/Halt,退出程序運行。9.從View菜單,選擇MixedSource/ASM.。允許無須匯編而查看C代碼,所以你可以完成下一個任務:更改程序的選擇、定位語法錯誤。2.2更改程序編譯選擇,查找語法錯誤編譯選項(buildoption)的常用設置要對工程進行正確的編譯連接,必須對buildoption進行正確的設置。單擊菜單Project下BuildOption選項,出現編譯選擇對話框。1.Compiler\Preprocessor\IncludeSearchPath用來定義include文件的搜索路徑,可以使用絕對路徑或相對路徑來進行定義。假設一個自定義項目在myproject目錄下,則文件搜索路徑可定義..\..\.c5400\dsk5402\include詳情見:SPRU102F.pdfTMS320C54xAssemblyLanguageToolsUser’sGuide編譯選項(buildoption)的常用設置2.Linker\Basic\IncludeLibraries(-l)用來定義鏈接庫文件,如輸入rts.lib(運行時間支持庫)。3.Linker\Basic\OutputFilename(-o)用來定義規(guī)定可執(zhí)行文件(.out)的路徑和名稱4.Linker\Basic\MapFilename(-m)用來定義規(guī)定存儲器圖(.map)的路徑和名稱前面含在預處理器命令中的程序的部分(#ifdef和#endif)沒有不執(zhí)行,因為FILEIO未定義。下面可以使用CCS設置預處理器選擇,學會并糾正語法錯誤。1.選擇菜單Project下BuildOptions選項2.在BuildOptions窗口的Compiler上,選擇Category列表的Preprocessor,在DefineSymbols區(qū)域鍵入FILEIO,按Tab鍵。

更改程序編譯選擇,查找語法錯誤BuildOptionsforVolume1.pjt3.單擊OK,保存新的選擇設置。4.選擇Project菜單下RebuildAll選項,或單擊(RebuildAll)按鈕。只要工程選擇更改,則必須重新編譯所有的文件。5.編譯信息顯示,程序包含編輯錯誤。單擊Build,可以看見語法錯誤信息。6.

雙擊描述語法錯誤位置的紅色文字(第68行)注意volume.c源程序已打開,且光標位于下面的行上:processing(input,output);7.語法錯誤位于光標位置的上一行(丟了個分號),如:puts("beginprocessing");8.注意,Edit窗口標題欄中的文件名附近出現星號(*),指示源程序已經被修改,文件保存后,星號消失。使用斷點(Breakpoints)觀察窗口(WatchWindow)為了程序執(zhí)行時常常需要檢查變量的值2.3斷點和觀察窗斷點和觀察窗1.File/ReloadProgram.2.雙擊ProjectView窗中的volume.c。

可以將窗口變大,看到更多的源代碼。3.將光標放在dataIO();4.單擊(ToggleBreakpoint)工具條,或按F9。紅色圖標指示斷點已經設置5.選擇View/WatchWindow,在CCS窗口的右下角出現觀察窗,顯示觀察變量的值。缺省時,選中WatchLocals,顯示正在執(zhí)行的函數的本地變量。6.如果不在主程序,選擇Debug/GoMain,然后運行程序。7.選擇Watch18.單擊Name欄中表達式圖標,鍵入要觀察的變量名dataIO。9.單擊觀察窗口中的白色區(qū)域,保存更改。這個值將立即出現在下面的例子中。10.單擊(StepOver)或按F10,跨過對dataIO()的調用。StepInto(F8)StepOver(F10)StepOut(ShiftF7)RuntoCursor(CtrlF10)11.完成后,單擊(RemoveAllBreakpoints),再繼續(xù)下面的學習。2.4使用帶結構的WatchWindow除了觀察簡單變量的值,也可以觀察一個結構的元素的值。1.選擇Watch1

2.單擊Name欄中的表達式圖標,鍵入要觀察表達式名稱str。3.單擊觀察窗口中的白色空間,保存更改。數值將立即出現在下面的例子中。觀察步驟:

5.單擊str上的+號,CCS將結構中所有元素和元素值。雙擊結構中元素的Value,編輯元素的值。6.在Watchwindow中Value欄,更改變量的值。注意,WatchWindow中數值的更改,數值也變?yōu)榧t色,表示已經手動修改。7.選擇WatchWindow中str變量,按Delete鍵。其他變量同理。8.選擇Debug/Breakpoints.在Breakpoints中,單擊DeleteAll,然后單擊OK.2.5文件I/O(利用探針)可以利用探針(ProbePoint),從PC機中的文件讀數據。探針作用

從PC中傳遞輸入數據到算法所使用的DSP目標的緩沖器中;

從DSP目標的緩沖器中傳遞輸出數據,到主PC中;

用數據修改窗口。1.選擇File/LoadProgram,選中volume1.out,單擊Open。2.雙擊ProjectView中的volume.c。3.將光標放到主程序中:

dataIO();4.單擊(ToggleProbePoint)。出現蘭色圖標表示探針已經設置5.從File菜單,選擇FileI/O。

出現FileI/O對話框,因此可以選擇輸入輸出文件。利用探針將外部文件輸入到DSP緩沖區(qū)6.在FileInput,單擊AddFile。7.瀏覽volume1工程文件夾,選中sine.dat,單擊Open。sine.dat文件是正弦波的十六進制數值

出現sine.dat文件的控制窗口。再后,當運行程序時,可以在數據文件中使用此窗口啟動、停止、返回、或快進。8.在FileI/O對話框,更改Address為inp_buffer,Length為100,在WrapAround中可以添加選中符號。Address指定從文件中讀取的數據將放在什么地方。volume.c申明inp_buffer為整數矩陣BUFSIZE(volume.h中定義)Length指定每次使用ProbePoint時從數據文件中讀多少樣本。這里取100,因為volume.h設置常量為BUFSIZE(0x64)。WrapAround選擇引起當其到達文件末尾時,CCS開始從文件開始讀。這樣允許數據文件被看作為連續(xù)的數據流。9.單擊AddProbePoint。出現Break/ProbePoints對話框中的ProbePoints10.在ProbePoint列表中,顯亮行為:VOLUME.Cline61-->NoConnection.11.在ConnectTo區(qū)域中,單擊下箭頭,從列表中選中sine.dat12.單擊Replace。ProbePoint列表改向顯示這個ProbePoint連接到sine.dat文件。13.單擊OK。FileI/O對話框顯示文件現在連接到ProbePoint。14.單擊OK,關閉FileI/O對話框。CCS數據文件格式:頭信息+數據頭信息:MagicNumberFormatStartingAddressPageNumLength其中:MagicNumber:固定為1651Format:1~4,數據存儲格式,分別對應:十六進制數、整數、長整數、浮點數中的一種StartingAddress:數據存放的起始地址PageNum:頁碼,指明數據所在的數據頁Length:數據的長度,以word來表示頭信息一般缺省為16511000。I/O文件的格式(如:sine.dat)2.6觀察數值的圖形在這個例子中,可以查看關于時間的信號圖形。1.選擇View/Graph/Time/Frequency。2.在GraphPropertyDialog對話框,更改GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType,Autoscale,

和MaximumY-value屬性,下拉或重新拉大對話框,查看所有屬性。GraphPropertyDialog對話框4.右擊Inputgraph窗口,從下拉菜單中選擇ClearDisplay。5.再次選擇View/Graph/Time/Frequency。6.這次更改GraphTitle為Output,StartAddress

為out_buffer,所有其他設置都正確。7.單擊OK,顯示輸出圖形Outputgraph窗口,右擊Outputgraph窗口,從下拉菜單中選擇ClearDisplay。3.單擊OK。出現InputBuffer的Input圖形窗口。2.7動態(tài)執(zhí)行程序和顯示圖形至此,已經放置斷點,傳遞主PC中的數據,到目標DSP;可暫停目標DSP,或繼續(xù)目標DSP應用程序。但是,ProbePoint不修改圖形。本節(jié)建立斷點(breakpoint),修改圖形,使用

Animate命令,遇到斷點后繼續(xù)自動執(zhí)行。1.在volume.c窗口,將光標放在調用dataIO的行上。2.單擊(ToggleBreakpoint),或按F9,選中空白區(qū)域放置紅色圖標,代表斷點。將斷點breakpoin和探測點ProbePoint放在同一行,這樣傳遞數據和修改圖形時目標只須暫停一次。3.調整窗口,使得兩個窗口都可以看見。5.每遇到探測點ProbePoint一次,CCS就從sine.dat文件獲得100個數值,并將它們寫入inp_buffer地址。4.單擊(Animate),或按F12運行程序。Animate=Run—halt—continue增益Gain=12.8調整增益Gain

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論