在使用基于Eclipse的IDE調(diào)試嵌入式系統(tǒng)時(shí),毫無(wú)疑問(wèn),讀者在調(diào)試透視圖中遇到了重置和重新啟動(dòng)按鈕。從高層次來(lái)看,這兩個(gè)選項(xiàng)可能看起來(lái)相同,但在嵌入式開(kāi)發(fā)人員何時(shí)應(yīng)該使用重啟而不是重置方面存在重要差異。讓我們看看如何在標(biāo)準(zhǔn)應(yīng)用程序中以及在使用引導(dǎo)加載程序時(shí)使用它們。
首先,讓我們討論基礎(chǔ)知識(shí)和可能顯而易見(jiàn)的問(wèn)題。按下復(fù)位按鈕會(huì)使程序在“開(kāi)機(jī)復(fù)位”時(shí)復(fù)位到應(yīng)用程序條目。當(dāng)按下重置按鈕時(shí),開(kāi)發(fā)人員會(huì)發(fā)現(xiàn)自己處于處理器重置處理程序中。然后,開(kāi)發(fā)人員可以單步執(zhí)行所有代碼,包括低級(jí)初始化。在應(yīng)用程序進(jìn)入 main 之前通常會(huì)發(fā)生很多事情。
如果開(kāi)發(fā)人員不關(guān)心 main 之前發(fā)生的事情,只是想重新啟動(dòng)應(yīng)用程序并返回到 main,他們可以按下重新啟動(dòng)按鈕。重啟是一種組合操作。結(jié)果與開(kāi)發(fā)人員按下復(fù)位鍵然后使用位于 main 第一行的斷點(diǎn)進(jìn)行操作相同。重新啟動(dòng)有時(shí)被定義為從入口點(diǎn)開(kāi)始的應(yīng)用程序。(請(qǐng)注意,這與開(kāi)機(jī)入口點(diǎn)不同)。
其次,對(duì)于在內(nèi)存中使用單個(gè)應(yīng)用程序的開(kāi)發(fā)人員來(lái)說(shuō),重置和重啟似乎幾乎相同,但如果開(kāi)發(fā)人員有一個(gè)引導(dǎo)加載程序和一個(gè)應(yīng)用程序,那就是有趣的地方。在引導(dǎo)加載程序開(kāi)發(fā)期間,嵌入式開(kāi)發(fā)人員可以使用調(diào)試器命令直接訪問(wèn)應(yīng)用程序代碼空間。這些命令可能類似于以下內(nèi)容:
set $sp = *0x280000
set $pc = *0x280004
set {int}0xe000ed08 = 0x280000
這些告訴調(diào)試器在啟動(dòng)時(shí)將堆棧指針、程序計(jì)數(shù)器和中斷向量表設(shè)置到內(nèi)存中第一個(gè)位置以外的位置。當(dāng)執(zhí)行這些命令時(shí),開(kāi)發(fā)人員需要注意一些有趣且有用的事情。重置按鈕仍按預(yù)期運(yùn)行。按下它將返回到復(fù)位入口點(diǎn),這將是引導(dǎo)加載程序復(fù)位向量。但是,如果開(kāi)發(fā)人員按下重新啟動(dòng)按鈕,他們不會(huì)在運(yùn)行后重置。相反,他們會(huì)發(fā)現(xiàn)自己處于應(yīng)用程序代碼的重置處理程序中!
僅在單個(gè)應(yīng)用程序空間中工作的開(kāi)發(fā)人員幾乎不會(huì)注意到重置和重新啟動(dòng)之間的任何區(qū)別。事實(shí)上,他們大多傾向于重啟。在具有引導(dǎo)加載程序的環(huán)境中工作的嵌入式開(kāi)發(fā)人員仍然傾向于重新啟動(dòng)以調(diào)試和使用他們的應(yīng)用程序,但重置也將為他們提供一種進(jìn)入引導(dǎo)加載程序和調(diào)試組合引導(dǎo)加載程序/應(yīng)用程序的方法。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹(shù)莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長(zhǎng)沙市天心區(qū)芙蓉中路三段398號(hào)新時(shí)空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運(yùn)營(yíng)網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)