




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
51TRACER 仿真調(diào)試高級(jí)技巧進(jìn)入調(diào)試狀態(tài)后,Debug 菜單項(xiàng)中的命令可以使用了,有關(guān)編譯的工具欄按鈕消失了,出現(xiàn)了一個(gè)用于運(yùn)行和調(diào)試的工具欄,Debug 菜單上的大部份命令都有相應(yīng)的快捷按鈕。 從左到右依次是復(fù)位、運(yùn)行、暫停、單步跟蹤、單步、執(zhí)行完當(dāng)前子程序、運(yùn)行到當(dāng)前行、下一狀態(tài)、打開跟蹤、觀察跟蹤、反匯編窗口、觀察窗口、代碼作用范圍分析、1串行窗口、內(nèi)存窗口、性能分析、工具按鈕命令; 然后按一下圖示第二個(gè)“運(yùn)行”按鈕。連接上相關(guān)的實(shí)驗(yàn)資源,本實(shí)驗(yàn)用一條8PIN的數(shù)據(jù)排線把實(shí)驗(yàn)儀的CPU部份的P1口(JP44)連接到八路指示燈部份的JP32。這時(shí)你會(huì)看到實(shí)驗(yàn)儀的八個(gè)紅色LED,輪流點(diǎn)亮,表示運(yùn)行成功,也可以查看相關(guān)的變量和參數(shù),非常方便。單步跟蹤運(yùn)行使用菜單Debug-Step 或上圖第四個(gè)單步運(yùn)行按鈕或使用快捷鍵 F11 可以單步跟蹤執(zhí)行程序,在這里我們按下 F11 鍵,即可執(zhí)行該箭頭所指程序行,每按一次 F11,可以看到源程序窗口的左邊黃色調(diào)試箭頭指向下一行,如果程序中有Delay延時(shí)子程序,則會(huì)進(jìn)入延時(shí)程序中運(yùn)行。單步運(yùn)行 如果Delay 程序有錯(cuò)誤,可以通過單步跟蹤執(zhí)行來查找錯(cuò)誤,但是如果 Delay 程序已正確,每次進(jìn)行程序調(diào)試都要反復(fù)執(zhí)行這些程序行,會(huì)使得調(diào)試效率很低,為此,可以在調(diào)試時(shí)使用 F10 來替代 F11(也可使用菜單 Step Over 或相應(yīng)的命令按鈕),在 main 函數(shù)中執(zhí)行到 Delay時(shí)將該行作為一條語句快速執(zhí)行完畢。為了更好的進(jìn)行對(duì)比,我們重新進(jìn)入仿真環(huán)境,將反匯編窗口關(guān)閉,不斷按 F10 鍵,可以看到在源程序窗口中的左邊黃色調(diào)試箭頭不會(huì)進(jìn)入到延時(shí)子程序。全速運(yùn)行點(diǎn)擊工具欄上的“運(yùn)行”按鈕或按F5 鍵啟動(dòng)全速運(yùn)行,全速執(zhí)行程序,此時(shí)用戶板上的 P1 口所接 LED 以流水燈狀態(tài)顯示。暫停點(diǎn)擊工具欄上的按鈕,此時(shí)用戶板上的P1 口所接 LED 停止以流水燈狀態(tài)顯示,只有一個(gè) LED 燈點(diǎn)亮(取決于暫停前的 P1 的值)。觀察修改寄存器的值Project 窗口在進(jìn)入調(diào)試狀態(tài)后顯示 Regs 頁的內(nèi)容,包括工作寄存器 R0R7 的內(nèi)容和累加器 A、寄存器 B、堆棧指針 SP 的內(nèi)容。 用戶除了可以觀察以外還可自行修改,例如將寄存器a 的值 0x62 改為 0x85。方法一:用鼠標(biāo)點(diǎn)擊選中單元a, 然后再單擊其數(shù)值位置,出現(xiàn)文字框后輸入 0x85 按回車鍵即可;方法二:在命令行窗口,輸入A=0x85,按回車鍵將把 A 的數(shù)值設(shè)置為 0x856.觀察修改存儲(chǔ)器的數(shù)據(jù) 點(diǎn)擊菜單“視圖View-儲(chǔ)存器窗口Memory Windows”,便會(huì)打開 儲(chǔ)存器Memory 窗口(如窗口已打開,則會(huì)關(guān)閉), Memory 窗口可以同時(shí)顯示 4 個(gè)不同的存儲(chǔ)器區(qū)域,點(diǎn)擊窗口下部分的編號(hào)可以相互切換顯示。在儲(chǔ)存器1(Memory#1) 的地址輸入欄內(nèi)輸入“D:0e0h”,按回車鍵后,可以從內(nèi)部可直接尋址 RAM 的e0H 地址處開始顯示, e0H 地址的值就是寄存器 a 的值,應(yīng)與主寄存器窗口下的值相同。點(diǎn)擊窗口下部分的儲(chǔ)存器2(Memory#2),在 Address 輸入欄內(nèi)輸入“D:0e0h”,按回車鍵后,可以從內(nèi)部可間接尋址 RAM 的 e0H 地址處開始顯示。點(diǎn)擊窗口下部分的Memory#3,在 Address 輸入欄內(nèi)輸入“C:0x0021”,按回車鍵后,可以從代碼區(qū)域 0000H 地址處開始顯示,這時(shí)各地址值應(yīng)與在反匯編窗口中的值相同。點(diǎn)擊窗口下部分的Memory#4,在 Address 輸入欄內(nèi)輸入“X:00h”,按回車鍵后,可以從xdata RAM 區(qū)域 0000H 地址處開始顯示。通過 Memory 窗口修改數(shù)據(jù) 在Memory 窗口中顯示的數(shù)據(jù)可以修改。例如,要改動(dòng) data 區(qū)域 OXE0 地址的數(shù)據(jù)內(nèi)容:把鼠標(biāo)移動(dòng)到該數(shù)據(jù)的顯示位置,按動(dòng)鼠標(biāo)右鍵在彈出的菜單中選中:更新儲(chǔ)存器“Modify Memory at D:0xE0”,在彈出對(duì)話框的文本輸入欄內(nèi)輸入相應(yīng)數(shù)值,按回車鍵或點(diǎn)擊 OK,修改完成。通過命令行查看數(shù)據(jù) 例如,我們想查看data 空間從 0x01 到 0x03 地址的內(nèi)容,可在命令輸入窗口輸入“d d:0x01,03H”, 回車即可完成,d 表示 data 空間,0x01 表示起始地址,03H 表示結(jié)束地址(注意兩種 16 進(jìn)制的表示方法在這里都可以接受),輸出結(jié)果在信息輸出窗口中顯示出來。通過命令行修改數(shù)據(jù) 例如,我們想把 p1口的值從0x02數(shù)據(jù)修改成 0x04 ,可在命令輸入窗口輸入p10x04”,回車即可完成,此時(shí)如果p1口接有l(wèi)ed,將立即看到led狀態(tài)改變。通過 Memory 窗口可以看到修改后的數(shù)據(jù):在地址欄輸入 d:00H然后回車。儲(chǔ)存器1 的d:0x90后的第一個(gè)數(shù)據(jù)就變成了04 ,這正是我們剛才修改的結(jié)果。7.觀察修改變量的值 在暫停程序運(yùn)行時(shí),可以觀察到有關(guān)的變量值。在 監(jiān)視/調(diào)用堆棧(Watch)窗口“局部”頁自動(dòng)顯示當(dāng)前正在使用的局部變量,不需要用戶自己添加。監(jiān)視(Watch)頁顯示用戶指定的程序變量。(先按F2鍵,然后輸入變量的名稱例如“delay”然后回車)移動(dòng)鼠標(biāo)光標(biāo)到要觀察的變量“delay”上停留大約一秒鐘,就彈出一個(gè)“變量提示”塊出來。將鼠標(biāo)移動(dòng)到一個(gè)變量名“d1”的上面,點(diǎn)擊鼠標(biāo)右鍵,出現(xiàn)快捷菜單,選中:“增加d1到觀察窗口”(Add “d1” to Watch Windows) 選項(xiàng),子菜單中會(huì)出現(xiàn)#1 和#2 的選項(xiàng),點(diǎn)擊后該變量就會(huì)加入對(duì)應(yīng)的監(jiān)視/調(diào)用堆棧(Watch) 窗口。增加d1到觀察窗口”(Add “d1” to Watch Windows)選項(xiàng)后 對(duì)應(yīng)的監(jiān)視窗口顯示了d1 的值。修改變量的數(shù)值方法:用鼠標(biāo)左鍵點(diǎn)擊該行的變量數(shù)據(jù)欄,然后按F2 鍵出現(xiàn)文本輸入欄后,輸入修改的數(shù)據(jù),確認(rèn)正確后按回車鍵。8.復(fù)位 如果用戶想重新開始運(yùn)行用戶程序,可以點(diǎn)擊工具欄上的復(fù)位按鈕,對(duì)仿真器的用戶程序進(jìn)行復(fù)位。仿真器復(fù)位后,程序計(jì)數(shù)器PC 指針將復(fù)位成 0000H,另外,一些內(nèi)部特殊功能寄存器在復(fù)位期間也將重新賦值,例如 A 將變?yōu)?00H, DPTR 變?yōu)?0000H, SP 變?yōu)?07H, I/O 口變?yōu)?0FFH,此時(shí)用戶板上的 P1 口所接 LED 指示燈會(huì)全部熄滅。9.設(shè)置斷點(diǎn) 將光標(biāo)移至待設(shè)置斷點(diǎn)的源程序行,如 “MOV P1,#0B6H”行。點(diǎn)擊工具欄上的“斷點(diǎn)”圖標(biāo),可以看到源程序窗口中該行的左邊出現(xiàn)了一個(gè)紅色的斷點(diǎn)標(biāo)記。(如果再點(diǎn)一下這個(gè)圖標(biāo)則清除這個(gè)斷點(diǎn))同樣的方法,您可以設(shè)置多個(gè)斷點(diǎn)。10.帶斷點(diǎn)的全速運(yùn)行 按動(dòng)F5 啟動(dòng)全速運(yùn)行,全速執(zhí)行程序,當(dāng)程序執(zhí)行到第一個(gè)斷點(diǎn)時(shí),會(huì)暫停下來,這時(shí)你可以觀察程序中各變量的值及各端口的狀態(tài),如下圖:第一個(gè)斷點(diǎn)在mov p1,#06dh 之后,此時(shí)在儲(chǔ)存器窗口Memory Windows”, 儲(chǔ)存器1(Memory#1) 的地址輸入欄內(nèi)輸入“D:000h”,按回車鍵后,可以從內(nèi)部可直接尋址地址數(shù)據(jù)為6D 和程序設(shè)計(jì)的相同!此時(shí)用戶目標(biāo)板上會(huì)顯示當(dāng)前斷點(diǎn)的狀態(tài),繼續(xù)按動(dòng)F5 啟動(dòng)全速運(yùn)行,程序執(zhí)行到第二個(gè)斷點(diǎn)時(shí),會(huì)暫停下來,在變量觀察窗口中,RAM的值應(yīng)為B6;繼續(xù)按動(dòng) F5 啟動(dòng)全速運(yùn)行,程序又會(huì)執(zhí)行到第一個(gè)斷點(diǎn)處暫停,此時(shí)用戶目標(biāo)板上的燈又顯示相應(yīng)的狀態(tài)。斷點(diǎn)是仿真器調(diào)試的重要手段,請(qǐng)您仔細(xì)反復(fù)的練習(xí)直到熟練。清除程序中所有斷點(diǎn) 如果想取消全部的斷點(diǎn)全速運(yùn)行時(shí),要是逐個(gè)取消將是很煩瑣的事,我們只要點(diǎn)擊工具欄相應(yīng)的圖標(biāo),就可清除程序中所有斷點(diǎn)。執(zhí)行到光標(biāo)處 在體驗(yàn)“執(zhí)行到光標(biāo)處”之前,我們先點(diǎn)擊工具欄上復(fù)位的圖標(biāo),對(duì)仿真器的用戶程序進(jìn)行復(fù)位,把鼠標(biāo)放在想要停止的行點(diǎn)一下,再按“執(zhí)行到光標(biāo)處”程序全速執(zhí)行到光標(biāo)所在行,這與我們?cè)谇懊婵吹降膸帱c(diǎn)的全速運(yùn)行相類似。13.退出仿真 先點(diǎn)擊調(diào)試工具欄“暫?!卑粹o,再點(diǎn)擊調(diào)試工具欄的“復(fù)位”復(fù)位,再點(diǎn)擊 開啟/關(guān)閉調(diào)試模式按鈕,則退出仿真狀態(tài),就又重新回到編輯模式。(如果不能
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙協(xié)議書變更8篇
- 2025年錦州貨運(yùn)上崗證考試題答案
- 《Reuse and recycle》作業(yè)設(shè)計(jì)方案
- 第06講 文言文斷句 講義 中考語文復(fù)習(xí)
- 2025年高中化學(xué)新教材同步 必修第一冊(cè) 第4章 第1節(jié) 第3課時(shí) 原子結(jié)構(gòu)與元素的性質(zhì)
- 綠化費(fèi)合同范本
- 出售肉牛批發(fā)合同范本
- 個(gè)人借款擔(dān)保合同
- 加工銷售合同范本
- 化工儀表習(xí)題庫及參考答案
- 我國互聯(lián)網(wǎng)公司資本結(jié)構(gòu)分析-以新浪公司為例
- 【藍(lán)天幼兒園小一班早期閱讀現(xiàn)狀的調(diào)查報(bào)告(含問卷)7800字(論文)】
- 第二次全國土地調(diào)查技術(shù)規(guī)程完整版
- 客戶答謝活動(dòng)承包合同
- AQ/T 5201-2007 涂裝工程安全設(shè)施驗(yàn)收規(guī)范(正式版)
- 華南師范大學(xué)333教育綜合專業(yè)碩士歷年考研真題匯編(含部分答案)合集
- 環(huán)保監(jiān)測設(shè)備運(yùn)維服務(wù)
- 醫(yī)德醫(yī)風(fēng)考評(píng)內(nèi)容及量化考評(píng)標(biāo)準(zhǔn)
- 小學(xué)信息技術(shù)-第8冊(cè)全冊(cè)-6年級(jí)下-電子工業(yè)出版社
- 《網(wǎng)絡(luò)攻擊與防御》課件第四章 基于系統(tǒng)的攻擊與防御
- 供電一把手講安全課
評(píng)論
0/150
提交評(píng)論