CCS調試教程


包括CCS3.3和CCS5.5兩個版本的調試教程。

CCS3.3

3.3教程來自http://zhujlhome.blog.163.com/blog/static/20562109220126103288550/

 

  1. CCS的布局和結構

 

值得一提的是CC3.3和CCS2.2工具欄的區別,CCS2.2工具欄的圖如下面所示,

  我們將其和CCS3.3的工具欄比

對之后發現CCS.2中的探針工具已經不在CCS3.3的工具欄中了,這是因為CCS3.3中的斷點就包含了探針功能

 

  1. 開始調試程序

 

在編譯完成之后,要來下載程序並進行功能調試。"File","Load Program",在工程文件夾下面的Debug文件夾下,選中**.out文件,點擊打開,便開始下載程序了。將**.out文件下載到目標板上2812的RAM中。

注意,這里是調試,所以將程序下載到RAM。等到最后您要固化程序的時候,就得下載到FLASH了,因為斷電之后,RAM里面所有的數據都會消失。

調試程序常用的一些按鈕

Run和Animate的區別,Run是如果遇到斷點的話它就停下來了。而Animate就算遇到斷點時先停止DSP內核,刷新窗口,然后接着繼續啟動運行,常用來連續刷新變量窗口和生成graph圖形等

1) 如何添加斷點

我們調試代碼時有時候想看看某一行或者某幾行代碼是否有執行,或者想看看執行前后變量的一些變化,那么我們就需要在這行或者這幾行代碼前加上斷點了。加上斷點的方法很簡單,只要在該行代碼前雙擊就行。雙擊之后,這行代碼前面會出現一個紅色圓塊。另外一種添加斷點的方法,就是在剛才的編譯工具欄上,點一下那個小手圖形的按鈕,前提是你要把光標移動到想要設置斷點的哪一行上。這時運行Run按鈕,程序就會在斷點處停下,黃色的小箭頭又出現了。

那如何取消斷點呢,在剛剛設置斷點的那行再雙擊一下,代表斷點的紅色標記就消失了,斷點也就被取消了。如果想要清除文件內的所有斷點,那么我們可以按一下剛才小手按鈕旁邊的那個打了叉叉的小手按鈕"Debug:Remove all breakpoints"。

 

2) 單步調試

讓我們來了解一下CCS給我們提供的調試工具吧。調試工具欄上分兩類,一類是用於在源代碼中調試的,另一類是用於在匯編代碼中調試的。

---Source-single step 源代碼單步調試了,就是按一下,走一步的模式。

---Source-step over   這個按鈕是指在單步執行時,如果在函數內遇到子函數,那么不會進入子函數內單步執行,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。

---Source-step out   當單步執行到子函數內時,用step out就可以執行完子函數余下部分,並返回到上一層函數。

用於匯編調試的兩個工具Assembly-single step和Assembly-step over含義和上面源文件調試的兩個類似,就不再重復敘述了。

3) 使用watch window

Watch window的作用是來觀察程序運行過程中的各個變量的值。調用watch window的方法是點擊菜單欄的"View ","watch window",這時watch window就會顯示在CCS下方的信息區域,如下圖所示:

如果想觀察某個特定的變量,在代碼中選中這個變量,然后右鍵"Add to watch window"

4)其他一些

我們在調試程序的時候經常想讓程序從Main函數開使運行,點擊"Debug"--"Go main"。 既能看到源文件中代碼的執行情況,又能看到匯編指令的執行情況----"View","Mixed Source/Asm"

我們看到,每一行源代碼下面就會有相應的匯編代碼,黃色的指針指示源代碼,綠色的指針指示匯編代碼。如果要取消源代碼和匯編代碼在一個文件內的話,重復剛才的操作就可以了。

  1. 統計代碼運行時間

在CCS3.3中如何統計代碼的運行時間,首先,將代碼的閱覽模式設置成前面的源碼和匯編同時顯示的模式。

點擊"Profile"--"Clock"--"Enable",來使能CLOCK功能。接下來點擊"Profile"--"Clock"--"View",在CCS最下面會出現一個類似於秒表的工具,旁邊顯示數字"0"。

我們關注main函數這一塊,在代碼"int *input = &inp_buffer[0];"前面設置斷點,然后點擊Run,這樣程序就會停在這一行代碼前面,而且黃色指針指示源碼,綠色指針指向匯編。

這時,底下的CLOCK工具開始顯示的是753,當然不同的環境顯示的數字應該是不一樣的。這就是從開始執行到這一語句所花的時間了,那753的單位是"CPU Cycles",CPU的時鍾周期。

統計匯編指令的執行時間,點擊一下Assembly-single step。匯編指令下移一行,CLOCK工具顯示754,也就是剛才這句代碼執行了1個CC。統計執行一段代碼所花的時間,在需要統計的那段代碼開始和結束的地方分別設置斷點,如下圖所示。

將兩個地方的CLOCK工具顯示的值相減就能得到這一段代碼的執行時間了。

 

 

  1. 如何使用CCS3.3來顯示圖表?

CCS3.3的探針功能使用:首先設置斷點,點擊breakpoint manager按鈕(中間有個紅色圓),出現窗口

選擇"Action"下的"read from File"

出現並設置以下窗口

同時我們還可看到。這個是用來控制數據輸入的停止和開始,便於觀測正弦圖形的輸出然后就是選擇圖形菜單觀察了

設置輸入輸出地址等參數

點擊"Animate"開始仿真,就能看到我們想要的圖像了   

 

 

CCS5.5

變化很大,對照着3.3的調試教程嘗試着寫一下教程

  1. CCS5.5的布局和結構

Edit模式

右上角可以改變模式為Debug模式,進入Debug模式后菜單欄會有變化。

Debug模式

 

進入Debug

打開各種需要的窗口

  1. 開始調試程序

完成之后,Debug窗口

 

 

 

添加斷點

方法和3.3一樣

調試

  • step into就是單步執行,遇到子函數就進入並且繼續單步執行;(F5)
  • step over是在單步執行時,在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完再停止,也就是把子函數整個作為一步。(F6)
  • step return就是單步執行到子函數內時,用step return就可以執行完子函數余下部分,並返回到上一層函數。(F7)

step into:進入子函數

step over:越過子函數,但子函數會執行

step return:跳出子函數

使用Watch Expression

選中變量,右擊選擇Add Watch Expression

其它

上電順序不正確可能導致CCS連接不上板子,

可以嘗試這個順序:

  1. 板子上點
  2. 插上jtag
  3. 連接仿真器和電腦的USB接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM