keil單步調(diào)試課件_第1頁
keil單步調(diào)試課件_第2頁
keil單步調(diào)試課件_第3頁
keil單步調(diào)試課件_第4頁
keil單步調(diào)試課件_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Keil的調(diào)試命令電子工程系2010.121精選課件ppt調(diào)試的重要性以前我們學(xué)習(xí)了如何建立工程、寫C源文件、連接工程,并獲得目標(biāo)代碼,但是做到這一步僅僅代表你的源程序沒有語法錯(cuò)誤,至于源程序中存在著的其它錯(cuò)誤,必須通過調(diào)試才能發(fā)現(xiàn)并解決。事實(shí)上,除了極簡(jiǎn)單的程序以外,絕大部份的程序都要通過反復(fù)調(diào)試才能得到正確的結(jié)果,因此,調(diào)試是軟件開發(fā)中重要的一個(gè)環(huán)節(jié)。2精選課件ppt主要內(nèi)容常用調(diào)試命令常用窗口 輸出窗口 觀察窗口 反匯編窗口結(jié)合實(shí)例3精選課件ppt常用調(diào)試命令在對(duì)工程成功地進(jìn)行匯編、連接以后,按Ctrl+F5或者使用菜單Debug->Start/StopDebugSession即可進(jìn)入調(diào)試狀態(tài),Keil內(nèi)建了一個(gè)仿真CPU用來模擬執(zhí)行程序,該仿真CPU功能強(qiáng)大,可以在沒有硬件和仿真機(jī)的情況下進(jìn)行程序的調(diào)試4精選課件ppt進(jìn)入調(diào)試狀態(tài)后,界面與編緝狀態(tài)相比有明顯的變化,Debug菜單項(xiàng)中原來不能用的命令現(xiàn)在已可以使用了,工具欄會(huì)多出一個(gè)用于運(yùn)行和調(diào)試的工具條,如圖1所示,Debug菜單上的大部份命令可以在此找到對(duì)應(yīng)的快捷按鈕,從左到右依次是復(fù)位、運(yùn)行、暫停、單步、過程單步、執(zhí)行完當(dāng)前子程序、運(yùn)行到當(dāng)前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1#串行窗口、內(nèi)存窗口、性能分析、工具按鈕等命令。5精選課件ppt學(xué)習(xí)程序調(diào)試,必須明確兩個(gè)重要的概念:?jiǎn)尾綀?zhí)行與全速運(yùn)行。全速執(zhí)行是指一行程序執(zhí)行完以后緊接著執(zhí)行下一行程序,中間不停止,這樣程序執(zhí)行的速度很快,并可以看到該段程序執(zhí)行的總體效果,即最終結(jié)果正確還是錯(cuò)誤,但如果程序有錯(cuò),則難以確認(rèn)錯(cuò)誤出現(xiàn)在哪些程序行。單步執(zhí)行是每次執(zhí)行一行程序,執(zhí)行完該行程序以后即停止,等待命令執(zhí)行下一行程序,此時(shí)可以觀察該行程序執(zhí)行完以后得到的結(jié)果,是否與我們寫該行程序所想要得到的結(jié)果相同,借此可以找到程序中問題所在。程序調(diào)試中,這兩種運(yùn)行方式都要用到。6精選課件ppt使用菜單STEP或相應(yīng)的命令按鈕或使用快捷鍵F11可以單步執(zhí)行程序,使用菜單STEPOVER或功能鍵F10可以以過程單步形式執(zhí)行命令,所謂過程單步,是指將匯編語言中的子程序或高級(jí)語言中的函數(shù)作為一個(gè)語句來全速執(zhí)行。7精選課件ppt觀察窗口觀察窗口是很重要的一個(gè)窗口,工程窗口中僅可以觀察到工作寄存器和有限的寄存器如A、B、DPTR等,如果需要觀察其它的寄存器的值或者在高級(jí)語言編程時(shí)需要直接觀察變量,就要借助于觀察窗口了。8精選課件ppt#include"reg51.h"sbitP1_0=P1^0;voidmDelay(unsignedcharDelayTime){ unsignedintj=0; for(;DelayTime>0;DelayTime--) {for(j=0;j<125;j++) {;} }}voidmain(){ unsignedinti; for(;;) { mDelay(10); i++; if(i==10) { P1_0=!P1_0; i=0; } }}9精選課件ppt編譯、連接后按Ctrl+F5進(jìn)入調(diào)試,按F10單步執(zhí)行。注意觀察窗口,其中有一個(gè)標(biāo)簽頁為Locals,這一頁會(huì)自動(dòng)顯示當(dāng)前模塊中的變量名及變量值??梢钥吹酱翱谥杏忻麨镮的變量,其值隨著執(zhí)行的次數(shù)而逐漸加大,如果在執(zhí)行到mDelay(10)行時(shí)按F11跟蹤到mDelay函數(shù)內(nèi)部,該窗口的變量自動(dòng)變?yōu)镈elayTime和j。另外兩個(gè)標(biāo)簽頁Watch#1和Watch#2可以加入自定義的觀察變量,點(diǎn)擊“typeF2toedit”然后再按F2即可輸入變量,試著在Watch#1中輸入I,觀察它的變化。觀察窗口10精選課件ppt觀察窗口中變量的值不僅可以觀察,還可以修改,以該程序?yàn)槔琁須加10次才能到10,為快速驗(yàn)證是否可以正確執(zhí)行到P1_0=!P1_0行,點(diǎn)擊I后面的值,再按F2,該值即可修改,將I的值改到9,再次按F10單步執(zhí)行,即可以很快執(zhí)行到P1_0=!P1_0程序行。該窗口顯示的變量值可以以十進(jìn)制或十六進(jìn)制形式顯示,方法是在顯示窗口點(diǎn)右鍵,在快捷菜單中選擇如圖5所示。11精選課件ppt點(diǎn)擊View->DissamblyWindow可以打開反匯編窗口,該窗口可以顯示反匯編后的代碼、源程序和相應(yīng)反匯編代碼的混合代碼,可以在該窗口進(jìn)行在線匯編、利用該窗口跟蹤已找行的代碼、在該窗口按匯編代碼的方式單步執(zhí)行,這也是一個(gè)重要的窗口。打開反匯編窗口,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)快捷菜單,如圖6所示,其中MixedMode是以混合方式顯示,AssemblyMode是以反匯編碼方式顯示。12精選課件ppt程序調(diào)試中常使用設(shè)置斷點(diǎn)然后全速運(yùn)行的方式,在斷點(diǎn)處可以獲得各變量值,但卻無法知道程序到達(dá)斷點(diǎn)以前究竟執(zhí)行了哪些代碼,而這往往是需要了解的,為此,Keil提供了跟蹤功能,在運(yùn)行程序之前打開調(diào)試工具條上的允許跟蹤代碼開關(guān),然后全速運(yùn)行程序,當(dāng)程序停止運(yùn)行后,點(diǎn)擊查看跟蹤代碼按鈕,自動(dòng)切換到反匯編窗口,如圖6所示,其中前面標(biāo)有“-”號(hào)的行就是中斷以前執(zhí)行的代碼,可以按窗口邊的上卷按鈕向上翻查看代碼執(zhí)行記錄。13精選課件ppt利用工程窗口可以觀察程序執(zhí)行的時(shí)間,下面我們觀察一下該例中延時(shí)程序的延時(shí)時(shí)間是否滿足我們的要求,即是否確實(shí)延時(shí)10毫秒,展開工程窗口Regs頁中的Sys目錄樹,其中的Sec項(xiàng)記錄了從程序開始執(zhí)行到當(dāng)前程序流逝的秒數(shù)。點(diǎn)擊RST按鈕以復(fù)位程序,Sec的值回零,按下F10鍵,程序窗口中的黃色箭頭指向mDelay(10)行,此時(shí),記錄下Sec值為0.00038900,然后再按F10執(zhí)行完該段程序,再次查看Sec的值為0.01051200,兩者相減大約是0.01秒,所以延時(shí)時(shí)間大致是正確的。

溫馨提示

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

評(píng)論

0/150

提交評(píng)論