通常在調試代碼中需要直到某個函數或者某段代碼的實際執行時間,在IAR中可以直接借助軟件提供的工具來計算代碼執行時間。
第一種方法
進入仿真調試界面,在需要測量的代碼前面打斷點。
工具欄中選擇 ST-LINK — Data Log Summary
在 Data Log Summary 窗口中鼠標右鍵 選擇 Enable
全速運行代碼到斷點處
這時可以看到窗口中的時間值為133.12 us
再次單步運行程序
這次的時間值變成了 201129.56 us, 兩次的時間差為 200996.53us,也就是200.996ms .說明這個延時函數函數還是比較準確的.
第二種方法
計算寄存器CYCLECOUNTER值的差
工具欄中選擇 view — Registers — Registers 1
全速運行代碼到斷點處
記住這個值,然后單步執行執行,延時函數這行代碼
計算這兩個值的差 為 34169 410 ,這個值剛好等于CCSTEP這個寄存器的值,所以直接看 CCSTEP這個寄存器的值也可以.
這個值為代碼執行的指令周期數,要計算時間,需要用指令周期值乘以每個指令的執行時間,當前用的CPU 時鐘為170MHz,那么每天指令的執行時間就為 1/170M ,所以延時函數的執行時間就為 1/170 000 000 * 34 169 410 = 200.996529ms .