專利名稱:斷點調(diào)試功能的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于在微處理器中實現(xiàn)斷點調(diào)試功能的方法,提出了一種高效、低復(fù)雜度的,在微處理器中實現(xiàn)指令級調(diào)試功能的方法?;谶@種方法實現(xiàn)的斷點調(diào)試功能能提高軟件開發(fā)的效率。
背景技術(shù):
眾所周知,處理器按照一定的順序執(zhí)行指令碼。在針對一個處理器進行軟件開發(fā)時,常常用到斷點調(diào)試技術(shù),即開發(fā)人員在某個指令或某個語句處設(shè)置斷點標志,當微處理器執(zhí)行到該條指令時,因為遇到斷點而暫停執(zhí)行,進入待命狀態(tài),必須等到外部調(diào)試接口的繼續(xù)運行命令或者收到復(fù)位信號,才會重新開始執(zhí)行指令。
更進一步說,處理器必須遇到斷點才會進入斷點調(diào)試模式,通常產(chǎn)生這個必要條件的方式有兩種,一種是在調(diào)試專用的寄存器中寫入斷點地址,通過地址比較來生成特定的斷點信號,這個斷點信號通知微處理器暫停指令的執(zhí)行,進入斷點調(diào)試模式。這種利用寄存器存貯斷點地址的方法非常消耗資源,能夠存貯的斷點地址數(shù)目有限,而且消耗的硬件資源較多。另一種方式是,微處理器設(shè)計有專用的外部調(diào)試命令輸入接口,微處理器通過判別調(diào)試命令/狀態(tài)接口的信號狀態(tài)來決定是否進入斷點調(diào)試模式。當處于微處理器外部的調(diào)試模塊通過調(diào)試接口發(fā)現(xiàn)程序計數(shù)器到達斷點地址時,立即產(chǎn)生斷點命令,并發(fā)送到微處理器的調(diào)試命令輸入接口,通知微處理器進入斷點調(diào)試模式。這種外部的調(diào)試命令接口對外部調(diào)試器的要求很高,外部調(diào)試器必須能夠?qū)崟r獲取處理的執(zhí)行狀態(tài)和程序計數(shù)器的位置。
因此,我們提出一種在指令碼中包含特定的標志位,微處理器通過判別標志位來決定是否進入斷點模式,從而實現(xiàn)斷點調(diào)試功能的方法,以提高調(diào)試的效率,減少微處理器硬件資源的消耗,并降低對外部調(diào)試器的要求。
發(fā)明內(nèi)容
本發(fā)明公開了一種在指令碼中包含標志位來實現(xiàn)斷點調(diào)試功能的方法。微處理器按照一定順序執(zhí)行指令碼。微處理器在取指階段、譯碼階段或執(zhí)行階段檢測指令碼中是否包含有效的斷點功能標志位,以及是何種斷點標志,來產(chǎn)生相應(yīng)得判決信號。根據(jù)判決信號,來決定下一步操作。如果斷點標志有效,則處理器進入相應(yīng)的斷點調(diào)試模式。并且,微處理器暫停程序計數(shù)器的更新,從而中止正常指令的執(zhí)行,使處理器進入待命階段。微處理器處于暫停狀態(tài)時,可以通過調(diào)試接口讀取微處理器內(nèi)部功能寄存器和狀態(tài)寄存器的具體數(shù)據(jù),以及當前程序計數(shù)器的值。根據(jù)這些數(shù)據(jù),可以輔助軟件程序的修正和改進。
本發(fā)明公開的斷點調(diào)試功能的實現(xiàn)方法,提供了一種能提高軟件調(diào)試效率、降低外部調(diào)試器要求、減少處理器資源消耗的途徑。
圖一給出了本發(fā)明所公開的實現(xiàn)微處理器斷點調(diào)試功能的兩種指令碼結(jié)構(gòu)范例。
圖二給出了本發(fā)明所公開的實現(xiàn)微處理器的斷點調(diào)試功能的一種處理流程圖范例。
具體實施例方式
本發(fā)明提供了一種可以使處理器盡可能簡單的實現(xiàn)指令碼級斷點調(diào)試功能的方法,以便可以簡化處理器外部的調(diào)試接口模塊,并使指令調(diào)試效率進一步提高。
圖一給出了本發(fā)明所公開的實現(xiàn)微處理器斷點調(diào)試功能的兩種指令碼結(jié)構(gòu)范例100。
指令碼102給出一個1位斷點標志的范例。指令碼102由14位二進制數(shù)據(jù)組成,包括1位斷點標志104和13位其他功能編碼106。假設(shè)斷點標志104為“1”表示斷點有效,當微處理器檢測到有效的斷點標志時,立即暫停執(zhí)行指令,進入斷點調(diào)試模式,若斷點標志無效,則正常執(zhí)行指令功能。
指令碼112給出一個多位斷點標志的范例,在這里是3位組合斷點標志。指令碼112由14位二進制數(shù)據(jù)組成,包括3位斷點標志114和11位其他功能編碼116。假設(shè)斷點標志114等于“101”時表示斷點有效。當微處理器檢測到有效的斷點標志時,立即暫停執(zhí)行指令,進入斷點調(diào)試模式,若斷點標志無效,則正常執(zhí)行指令功能。
圖二給出了本發(fā)明所公開的實現(xiàn)微處理器的斷點調(diào)試功能的一種處理流程圖范例200。指令210被取出之后,要經(jīng)過譯碼階段202,判決階段204,然后進入執(zhí)行階段。首先,指令210進入譯碼階段202,根據(jù)指令譯碼結(jié)果產(chǎn)生判決信號214,判決信號進入判決階段204。然后,根據(jù)判決信號產(chǎn)生狀態(tài)信號216并輸出。如果判決結(jié)果為不包含斷點調(diào)試標志位,則使能正常運行信號218,無效斷點信號220,指令進入執(zhí)行階段206,在指令執(zhí)行之后輸出結(jié)果212。如果判決結(jié)果中包含斷點調(diào)試標志位,則使能斷點信號220,無效正常運行信號218,微處理器進入斷點模式,微處理器在斷點模式處于待命狀態(tài),等待重運行命令222。通常,這個重運行命令來自外部調(diào)試接口,首先,由軟件調(diào)試平臺給調(diào)試接口下達命令,調(diào)試接口再把命令送給微處理器。如果沒有接收到重運行命令,則處理器停留在斷點模式。此時,調(diào)試軟件平臺還可以通過調(diào)試接口讀取微處理器的功能寄存器、狀態(tài)寄存器的值,存儲器中的數(shù)據(jù)以及程序計數(shù)器的值等等內(nèi)部信息,以輔助軟件功能的調(diào)試。直到微處理器收到期望的重運行命令之后,進入執(zhí)行階段206,執(zhí)行被斷點暫停掉的指令,并輸出執(zhí)行結(jié)果212。本發(fā)明所公開的微處理器斷點調(diào)試功能的實現(xiàn)方法,消耗的內(nèi)部寄存器少,易于實現(xiàn),電路邏輯簡單,響應(yīng)快速,而且由于斷點標志包含在指令碼中,故可設(shè)置的斷點數(shù)目最多可以達到與軟件程序中的指令數(shù)目相同,從而很大程度的提高了電路的調(diào)試能力和調(diào)試效率,減少了軟硬件的開銷。
以上所述僅為本發(fā)明中涉及的指令碼構(gòu)造和相應(yīng)處理流程的幾個具體實施范例,并非用以限定本發(fā)明的申請專利范圍;凡其它未脫離本發(fā)明所揭示的原理下所完成的等效改變或修飾,均應(yīng)包含在所述的申請專利范圍內(nèi)。
權(quán)利要求
1.一種通過在指令碼中嵌入標志位實現(xiàn)斷點調(diào)試功能的方法,其特征在于,指令碼中包含特定的標志位,該標志位決定微處理器是否進入斷點調(diào)試模式;該標志位可以由指令碼中的一個位組成,也可以是指令碼中的幾個位的組合而成。
2.如權(quán)利要求1所述方法,其特征在于,微處理器根據(jù)指令碼中包含的斷點調(diào)試標志位產(chǎn)生一個暫停信號,該暫停信號指示程序計數(shù)器(PC)停止更新,從而暫停正常指令的執(zhí)行。
3.如權(quán)利要求1所述方法,其特征在于,微處理器的不同指令碼均可以在其中包含用于實現(xiàn)斷點調(diào)試功能的標志位。
全文摘要
通過在微處理器的指令碼中嵌入標志位,實現(xiàn)指令級的斷點調(diào)試功能。通過判別指令碼中所包含的標志位,微處理器可以在取指階段、譯碼階段或執(zhí)行階段進入相應(yīng)的斷點調(diào)試模式,從而提高了程序調(diào)試的效率,降低了微處理器硬件實現(xiàn)調(diào)試功能的電路規(guī)模和復(fù)雜度。斷點標志可以由指令碼的一個位組成,或者由指令碼的若干位組合而成。
文檔編號G06F11/36GK1648873SQ200510037710
公開日2005年8月3日 申請日期2005年2月1日 優(yōu)先權(quán)日2005年2月1日
發(fā)明者朱小茅, 吳俊輝 申請人:蘇州超銳微電子有限公司