Keil精確測(cè)量代碼運(yùn)行時(shí)間
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在工程設(shè)置中“Debug”下,選右邊硬件仿真,點(diǎn)下拉框選“J-LINK/J-TRACE”,再點(diǎn)“Setting”
在彈出窗口中“Debug”下,選“JTAG”或“SW”,在后面選好下載速率。
點(diǎn)到Trace”標(biāo)簽下,如果是選擇的“SW”
則勾選“Enable”選項(xiàng),在“Core”框中輸入MCU實(shí)際工作時(shí)鐘頻率(就是單片機(jī)以什么頻率來執(zhí)行指令的,MDK會(huì)用它來計(jì)算時(shí)間),再勾選“Autodetect max SW0 Clock”
如果是選擇的“JTAG”,
先勾選“Enable”,在“Core”中設(shè)好時(shí)鐘頻率,最后去掉剛才勾選的“Enable”
因?yàn)椤癑TAG”模式不支持“Trace”功能,不把“Enable”去掉,仿真會(huì)報(bào)錯(cuò)。
接下來點(diǎn)進(jìn)入仿真,界面右下角就會(huì)有時(shí)間窗口
鼠標(biāo)放在上面右鍵點(diǎn)擊,就會(huì)有:
上面兩個(gè)是復(fù)位“t1”和“t2”的,下面3個(gè)是選擇在狀態(tài)欄上顯示哪個(gè)時(shí)間。
“t0”表示程序開始運(yùn)行到現(xiàn)在的時(shí)間,是不能復(fù)位的。另外兩個(gè)可以隨便復(fù)位,就可以用來測(cè)具體某一個(gè)函數(shù)或某一行程序的運(yùn)行時(shí)間。
具體操作為:在要測(cè)試的代碼前加一個(gè)斷點(diǎn),當(dāng)程序運(yùn)行到目標(biāo)行時(shí)會(huì)停下,然后復(fù)位“t1”或“t2”,并在下一行代碼前加斷點(diǎn),然后繼續(xù)運(yùn)行程序,程序會(huì)停在下一行代碼前,這個(gè)時(shí)候“t1”的值就是目標(biāo)行程序的運(yùn)行時(shí)間。