keil調(diào)試經(jīng)驗(yàn).doc

keil調(diào)試經(jīng)驗(yàn).doc

ID:26483410

大?。?27.00 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2018-11-27

keil調(diào)試經(jīng)驗(yàn).doc_第1頁(yè)
keil調(diào)試經(jīng)驗(yàn).doc_第2頁(yè)
keil調(diào)試經(jīng)驗(yàn).doc_第3頁(yè)
keil調(diào)試經(jīng)驗(yàn).doc_第4頁(yè)
keil調(diào)試經(jīng)驗(yàn).doc_第5頁(yè)
資源描述:

《keil調(diào)試經(jīng)驗(yàn).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、KEIL調(diào)試高級(jí)技巧在調(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)、打開(kā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)行成

2、功,也可以查看相關(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ò)誤,可以通過(guò)單步跟蹤執(zhí)行來(lái)查找錯(cuò)誤,但是如果Delay程序已正確,每次進(jìn)行程序調(diào)試都要反復(fù)執(zhí)行這些程序行,會(huì)使得調(diào)試效率很低,為此,可以在調(diào)試時(shí)使用F10來(lái)替代F11(也可使用菜單StepOver或相應(yīng)的命令按鈕),在main函數(shù)中執(zhí)行

3、到Delay時(shí)將該行作為一條語(yǔ)句快速執(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頁(yè)的內(nèi)容,包括工作寄存器R0~R7的內(nèi)容和累加器A、寄存器B、堆棧指針SP的內(nèi)容。用戶除了

4、可以觀察以外還可自行修改,例如將寄存器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ǔ)存器窗口MemoryWindows”,便會(huì)打開(kāi)儲(chǔ)存器Memory窗口(如窗口已打開(kāi),則會(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地址處開(kāi)始

5、顯示,e0H地址的值就是寄存器a的值,應(yīng)與主寄存器窗口下的值相同。點(diǎn)擊窗口下部分的儲(chǔ)存器2(Memory#2),在Address輸入欄內(nèi)輸入“D:0e0h”,按回車鍵后,可以從內(nèi)部可間接尋址RAM的e0H地址處開(kāi)始顯示。點(diǎn)擊窗口下部分的Memory#3,在Address輸入欄內(nèi)輸入“C:0x0021”,按回車鍵后,可以從代碼區(qū)域0000H地址處開(kāi)始顯示,這時(shí)各地址值應(yīng)與在反匯編窗口中的值相同。點(diǎn)擊窗口下部分的Memory#4,在Address輸入欄內(nèi)輸入“X:00h”,按回車鍵后,可以從xdataRAM區(qū)域0000H地址處開(kāi)始顯示。通過(guò)Memory窗口修改數(shù)據(jù)在Memory窗口中顯示

6、的數(shù)據(jù)可以修改。例如,要改動(dòng)data區(qū)域OXE0地址的數(shù)據(jù)內(nèi)容:把鼠標(biāo)移動(dòng)到該數(shù)據(jù)的顯示位置,按動(dòng)鼠標(biāo)右鍵在彈出的菜單中選中:更新儲(chǔ)存器“ModifyMemoryatD:0xE0”,在彈出對(duì)話框的文本輸入欄內(nèi)輸入相應(yīng)數(shù)值,按回車鍵或點(diǎn)擊OK,修改完成。通過(guò)命令行查看數(shù)據(jù)例如,我們想查看data空間從0x01到0x03地址的內(nèi)容,可在命令輸入窗口輸入“dd:0x01,03H”,回車即可完成,d表示data空間,0x01表示起始地址,03H表示結(jié)束地址(注意兩種16進(jìn)制的表示方法在這里都可以接受),輸出結(jié)果在信息輸出窗口中顯示出來(lái)。通過(guò)命令行修改數(shù)據(jù)例如,我們想把p1口的值從0x02數(shù)據(jù)

7、修改成0x04,可在命令輸入窗口輸入p1=0x04”,回車即可完成,此時(shí)如果p1口接有l(wèi)ed,將立即看到led狀態(tài)改變。通過(guò)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)窗口“局部”頁(yè)自動(dòng)顯示當(dāng)前正在使用的局部變量,不需要用戶自己添加。監(jiān)視(Watch)頁(yè)顯示用戶指

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。