CCS應用中常見的一些小技巧


 

在單片機開發中,通常需要精確估算代碼運行時間,用於對算法優化以及對項目平台選擇提供參考,通常算法如果用匯編編寫,可以人工計算出運行時間,用C語言編寫也可以通過反匯編代碼而計算到較為精確的運行時間,但當程序中出現很多函數的調用,以及程序嵌套是,使用人工計算程序運行時間則比較費時費力。在CCS中可以對程序運行時間進行測量。CCS官方給出了兩種測試代碼運行時間的辦法,有興趣的可以閱讀一下官方文檔原文

​1、Profile clock in CCS(此方法適用於非Stellaris系列,因為我的Stellaris用這種方法不行,我也就不說了,自己看看文檔,很簡單)

2、​Watchpoints for Stellaris in CCS(此方法理論上使用TI所有單片機(包括Stellaris),我只測試了Stellaris,其他系列入MSP430有興趣的可以自己試試。我講的也是這種方法)

步驟:​

1、現將程序編譯並Debug下載到開發板。然后​點擊Window->Show View->Breakpoints

 

 

打開斷點窗口

然后在右上角(默認設置)窗口中會多出一個斷點窗口(默認有這個窗口可以跳過第一步)

 

 

 

2、點擊斷點下拉框選擇Count Event

 

 

下拉框

彈出提示框后選擇Clock Cycles,然后點擊OK

 

 

點擊OK

3、經過第二部后在讀斷點窗口中會多出一個Count Event斷點,在Count Event上鼠標點擊右鍵選擇Breakpoint Properties對此斷點進行配置。

 

 

右擊斷點

將Reset Count on Run改為true,點擊OK保存。

 

 

修改配置

4、將要測試的代碼代碼加上斷點,如圖,假如我要測試程序從1到2需要運行對少時間,則將1所在的行設置斷點同時把2設置斷點,此時可以看到斷點窗口多了兩個斷點。(注:此時Count Event顯示67941表示程序運行到main函數是已經運行了67941個時鍾周期(啟動代碼消耗),剛加進來Count Event是的計數值很大,那個值不准,重新Debug程序到開發板時因為之前已經添加了Count Event,所以計數是准的)

 

 

添加斷點

5、單擊運行按鈕當程序運行到第一個斷點時​​​​Count Event數值變為93210,說明從main函數運行到這一代碼之前一條代碼(斷點處代碼在程序暫停時還沒有運行)用了93210個時鍾周期,這個始終中期不包括之前啟動代碼運行消耗的67941個時鍾周期,因為之前設置了Reset Count on Run為True,所以每一次點擊運行按鈕這個值都會清零。

 

 

運行1

在此點擊運行按鈕,當程序運行到2處時自動暫停運行,此時看到count event 變為了229938,說明程序從1運行到2用了229938個時鍾周期。

 

 

 

6、運行時間計算

由第5步知道從代碼1到代碼2用了229938個機器中期,假如我設置看法板時鍾頻率為40Mhz,那這段代碼運行時間就是​229938 * (1/(40*1000000)=0.00574845,約為5.75MS

了解更多知識內容


免責聲明!

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



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