Keil軟件仿真調(diào)試.doc_第1頁
Keil軟件仿真調(diào)試.doc_第2頁
Keil軟件仿真調(diào)試.doc_第3頁
Keil軟件仿真調(diào)試.doc_第4頁
Keil軟件仿真調(diào)試.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

51TRACER 仿真調(diào)試高級技巧進入調(diào)試狀態(tài)后,Debug 菜單項中的命令可以使用了,有關(guān)編譯的工具欄按鈕消失了,出現(xiàn)了一個用于運行和調(diào)試的工具欄,Debug 菜單上的大部份命令都有相應(yīng)的快捷按鈕。 從左到右依次是復(fù)位、運行、暫停、單步跟蹤、單步、執(zhí)行完當前子程序、運行到當前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1串行窗口、內(nèi)存窗口、性能分析、工具按鈕命令; 然后按一下圖示第二個“運行”按鈕。連接上相關(guān)的實驗資源,本實驗用一條8PIN的數(shù)據(jù)排線把實驗儀的CPU部份的P1口(JP44)連接到八路指示燈部份的JP32。這時你會看到實驗儀的八個紅色LED,輪流點亮,表示運行成功,也可以查看相關(guān)的變量和參數(shù),非常方便。單步跟蹤運行使用菜單Debug-Step 或上圖第四個單步運行按鈕或使用快捷鍵 F11 可以單步跟蹤執(zhí)行程序,在這里我們按下 F11 鍵,即可執(zhí)行該箭頭所指程序行,每按一次 F11,可以看到源程序窗口的左邊黃色調(diào)試箭頭指向下一行,如果程序中有Delay延時子程序,則會進入延時程序中運行。單步運行 如果Delay 程序有錯誤,可以通過單步跟蹤執(zhí)行來查找錯誤,但是如果 Delay 程序已正確,每次進行程序調(diào)試都要反復(fù)執(zhí)行這些程序行,會使得調(diào)試效率很低,為此,可以在調(diào)試時使用 F10 來替代 F11(也可使用菜單 Step Over 或相應(yīng)的命令按鈕),在 main 函數(shù)中執(zhí)行到 Delay時將該行作為一條語句快速執(zhí)行完畢。為了更好的進行對比,我們重新進入仿真環(huán)境,將反匯編窗口關(guān)閉,不斷按 F10 鍵,可以看到在源程序窗口中的左邊黃色調(diào)試箭頭不會進入到延時子程序。全速運行點擊工具欄上的“運行”按鈕或按F5 鍵啟動全速運行,全速執(zhí)行程序,此時用戶板上的 P1 口所接 LED 以流水燈狀態(tài)顯示。暫停點擊工具欄上的按鈕,此時用戶板上的P1 口所接 LED 停止以流水燈狀態(tài)顯示,只有一個 LED 燈點亮(取決于暫停前的 P1 的值)。觀察修改寄存器的值Project 窗口在進入調(diào)試狀態(tài)后顯示 Regs 頁的內(nèi)容,包括工作寄存器 R0R7 的內(nèi)容和累加器 A、寄存器 B、堆棧指針 SP 的內(nèi)容。 用戶除了可以觀察以外還可自行修改,例如將寄存器a 的值 0x62 改為 0x85。方法一:用鼠標點擊選中單元a, 然后再單擊其數(shù)值位置,出現(xiàn)文字框后輸入 0x85 按回車鍵即可;方法二:在命令行窗口,輸入A=0x85,按回車鍵將把 A 的數(shù)值設(shè)置為 0x856.觀察修改存儲器的數(shù)據(jù) 點擊菜單“視圖View-儲存器窗口Memory Windows”,便會打開 儲存器Memory 窗口(如窗口已打開,則會關(guān)閉), Memory 窗口可以同時顯示 4 個不同的存儲器區(qū)域,點擊窗口下部分的編號可以相互切換顯示。在儲存器1(Memory#1) 的地址輸入欄內(nèi)輸入“D:0e0h”,按回車鍵后,可以從內(nèi)部可直接尋址 RAM 的e0H 地址處開始顯示, e0H 地址的值就是寄存器 a 的值,應(yīng)與主寄存器窗口下的值相同。點擊窗口下部分的儲存器2(Memory#2),在 Address 輸入欄內(nèi)輸入“D:0e0h”,按回車鍵后,可以從內(nèi)部可間接尋址 RAM 的 e0H 地址處開始顯示。點擊窗口下部分的Memory#3,在 Address 輸入欄內(nèi)輸入“C:0x0021”,按回車鍵后,可以從代碼區(qū)域 0000H 地址處開始顯示,這時各地址值應(yīng)與在反匯編窗口中的值相同。點擊窗口下部分的Memory#4,在 Address 輸入欄內(nèi)輸入“X:00h”,按回車鍵后,可以從xdata RAM 區(qū)域 0000H 地址處開始顯示。通過 Memory 窗口修改數(shù)據(jù) 在Memory 窗口中顯示的數(shù)據(jù)可以修改。例如,要改動 data 區(qū)域 OXE0 地址的數(shù)據(jù)內(nèi)容:把鼠標移動到該數(shù)據(jù)的顯示位置,按動鼠標右鍵在彈出的菜單中選中:更新儲存器“Modify Memory at D:0xE0”,在彈出對話框的文本輸入欄內(nèi)輸入相應(yīng)數(shù)值,按回車鍵或點擊 OK,修改完成。通過命令行查看數(shù)據(jù) 例如,我們想查看data 空間從 0x01 到 0x03 地址的內(nèi)容,可在命令輸入窗口輸入“d d:0x01,03H”, 回車即可完成,d 表示 data 空間,0x01 表示起始地址,03H 表示結(jié)束地址(注意兩種 16 進制的表示方法在這里都可以接受),輸出結(jié)果在信息輸出窗口中顯示出來。通過命令行修改數(shù)據(jù) 例如,我們想把 p1口的值從0x02數(shù)據(jù)修改成 0x04 ,可在命令輸入窗口輸入p10x04”,回車即可完成,此時如果p1口接有l(wèi)ed,將立即看到led狀態(tài)改變。通過 Memory 窗口可以看到修改后的數(shù)據(jù):在地址欄輸入 d:00H然后回車。儲存器1 的d:0x90后的第一個數(shù)據(jù)就變成了04 ,這正是我們剛才修改的結(jié)果。7.觀察修改變量的值 在暫停程序運行時,可以觀察到有關(guān)的變量值。在 監(jiān)視/調(diào)用堆棧(Watch)窗口“局部”頁自動顯示當前正在使用的局部變量,不需要用戶自己添加。監(jiān)視(Watch)頁顯示用戶指定的程序變量。(先按F2鍵,然后輸入變量的名稱例如“delay”然后回車)移動鼠標光標到要觀察的變量“delay”上停留大約一秒鐘,就彈出一個“變量提示”塊出來。將鼠標移動到一個變量名“d1”的上面,點擊鼠標右鍵,出現(xiàn)快捷菜單,選中:“增加d1到觀察窗口”(Add “d1” to Watch Windows) 選項,子菜單中會出現(xiàn)#1 和#2 的選項,點擊后該變量就會加入對應(yīng)的監(jiān)視/調(diào)用堆棧(Watch) 窗口。增加d1到觀察窗口”(Add “d1” to Watch Windows)選項后 對應(yīng)的監(jiān)視窗口顯示了d1 的值。修改變量的數(shù)值方法:用鼠標左鍵點擊該行的變量數(shù)據(jù)欄,然后按F2 鍵出現(xiàn)文本輸入欄后,輸入修改的數(shù)據(jù),確認正確后按回車鍵。8.復(fù)位 如果用戶想重新開始運行用戶程序,可以點擊工具欄上的復(fù)位按鈕,對仿真器的用戶程序進行復(fù)位。仿真器復(fù)位后,程序計數(shù)器PC 指針將復(fù)位成 0000H,另外,一些內(nèi)部特殊功能寄存器在復(fù)位期間也將重新賦值,例如 A 將變?yōu)?00H, DPTR 變?yōu)?0000H, SP 變?yōu)?07H, I/O 口變?yōu)?0FFH,此時用戶板上的 P1 口所接 LED 指示燈會全部熄滅。9.設(shè)置斷點 將光標移至待設(shè)置斷點的源程序行,如 “MOV P1,#0B6H”行。點擊工具欄上的“斷點”圖標,可以看到源程序窗口中該行的左邊出現(xiàn)了一個紅色的斷點標記。(如果再點一下這個圖標則清除這個斷點)同樣的方法,您可以設(shè)置多個斷點。10.帶斷點的全速運行 按動F5 啟動全速運行,全速執(zhí)行程序,當程序執(zhí)行到第一個斷點時,會暫停下來,這時你可以觀察程序中各變量的值及各端口的狀態(tài),如下圖:第一個斷點在mov p1,#06dh 之后,此時在儲存器窗口Memory Windows”, 儲存器1(Memory#1) 的地址輸入欄內(nèi)輸入“D:000h”,按回車鍵后,可以從內(nèi)部可直接尋址地址數(shù)據(jù)為6D 和程序設(shè)計的相同!此時用戶目標板上會顯示當前斷點的狀態(tài),繼續(xù)按動F5 啟動全速運行,程序執(zhí)行到第二個斷點時,會暫停下來,在變量觀察窗口中,RAM的值應(yīng)為B6;繼續(xù)按動 F5 啟動全速運行,程序又會執(zhí)行到第一個斷點處暫停,此時用戶目標板上的燈又顯示相應(yīng)的狀態(tài)。斷點是仿真器調(diào)試的重要手段,請您仔細反復(fù)的練習直到熟練。清除程序中所有斷點 如果想取消全部的斷點全速運行時,要是逐個取消將是很煩瑣的事,我們只要點擊工具欄相應(yīng)的圖標,就可清除程序中所有斷點。執(zhí)行到光標處 在體驗“執(zhí)行到光標處”之前,我們先點擊工具欄上復(fù)位的圖標,對仿真器的用戶程序進行復(fù)位,把鼠標放在想要停止的行點一下,再按“執(zhí)行到光標處”程序全速執(zhí)行到光標所在行,這與我們在前面看到的帶斷點的全速運行相類似。13.退出仿真 先點擊調(diào)試工具欄“暫停”按鈕,再點擊調(diào)試工具欄的“復(fù)位”復(fù)位,再點擊 開啟/關(guān)閉調(diào)試模式按鈕,則退出仿真狀態(tài),就又重新回到編輯模式。(如果不能

溫馨提示

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

評論

0/150

提交評論