專利名稱:一種嵌入式程序調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機應(yīng)用技術(shù),具體地說是一種通過在調(diào)試器(主機)與 被調(diào)試程序間插入斷點建立通信的嵌入式應(yīng)用程序調(diào)試方法。
背景技術(shù):
調(diào)試是開發(fā)過程中必不可少的環(huán)節(jié),通用的PC操作系統(tǒng)與嵌入式操作系統(tǒng)在 調(diào)試環(huán)境上有巨大差異。其中,基于PC操作系統(tǒng)調(diào)試工具與被調(diào)試的程序往往在
同一臺設(shè)備、同一個操作系統(tǒng)上運行的兩個進程,調(diào)試器進程通過操作系統(tǒng)專門 提供的調(diào)用接口控制、訪問被調(diào)試進程。嵌入式操作系統(tǒng)調(diào)試又稱為遠程調(diào)試, 調(diào)試器可以由基于特定硬件平臺的嵌入式設(shè)備本身或由桌面操作系統(tǒng)的應(yīng)用程序 擔當。為了提供靈活、友好的調(diào)試界面,調(diào)試器往往運行于后者,而被調(diào)試的程 序則運行于嵌入式系統(tǒng)中。
對于嵌入式程序的調(diào)試來說,面臨下列問題調(diào)試器與被調(diào)試程序如何通信, 被調(diào)試程序產(chǎn)生異常如何及時通知調(diào)試器,調(diào)試器如何控制、訪問被調(diào)試程序、 如何識別有關(guān)被調(diào)試程序的數(shù)據(jù)信息并實時査看,調(diào)試器如何處理某些與目標硬 件平臺相關(guān)的信息等等。
發(fā)明內(nèi)容
本發(fā)明的方法是用軟件接管目標系統(tǒng)的異常處理及部分中斷處理,在其中插 入調(diào)試端口通信模塊,與PC主機的調(diào)試器交互。在目標操作系統(tǒng)初始化,特別是
調(diào)試通信端口初始化完成后,調(diào)試器開始起作用。異常處理程序或中斷處理程序
調(diào)用調(diào)試端口通信模塊,等待調(diào)試器上的調(diào)試器發(fā)送信息;雙方建立連接后調(diào)試 器便等待用戶發(fā)出調(diào)試命令,目標系統(tǒng)等待調(diào)試器根據(jù)用戶命令生成的指令。
本發(fā)明所述方法的有益效果是,可應(yīng)用于調(diào)試運行于目標操作系統(tǒng)之上的應(yīng)用 程序,適用于稅控收款機、金融稅控收款機、金融P0S機、手持終端等具有嵌入 式系統(tǒng)和應(yīng)用程序的終端。
具體實施例方式
本發(fā)明的方法是用軟件接管目標系統(tǒng)的異常處理及部分中斷處理,通過調(diào)用 調(diào)試端口通信模塊,等待調(diào)試器發(fā)送信息;雙方建立連接后調(diào)試器便等待用戶發(fā) 出調(diào)試命令,目標系統(tǒng)等待調(diào)試器根據(jù)用戶命令生成的指令。其實現(xiàn)步驟如下 l)嵌入端-調(diào)試器的指令集
根據(jù)嵌入端數(shù)據(jù)結(jié)構(gòu)的特點以及調(diào)試的需要,確定哪些數(shù)據(jù)可能會在調(diào)試中被
輸出,然后定義一個"嵌入端-調(diào)試器"的指令集。該指令集詳細定義調(diào)試器與嵌 入端的物理接口、通信傳輸協(xié)議,以及每個程序指令的命令字、參數(shù)、返回值以 及兩端的交互方式,用以說明調(diào)試器如何命令嵌入端返回數(shù)據(jù),以及嵌入端把調(diào) 試信息傳給調(diào)試器的數(shù)據(jù)格式。
2) 嵌入端的程序?qū)崿F(xiàn)
編寫一個功能函數(shù),也就是上述"偽斷點"。該函數(shù)無需參數(shù)和返回值,主程 序調(diào)用它時,則進入斷點調(diào)試狀態(tài),只有專門操作才可以跳出這段斷點繼續(xù)運行 主程序。該斷點程序要實現(xiàn)的功能有以下3部分
a、 中斷和結(jié)束中斷的能力
該函數(shù)中,必須用循環(huán)控制指令將程序的運行中斷,中斷后的程序停留在循環(huán) 體內(nèi),達到"中斷"的目的。同時,跳出循環(huán),也就是完成本次"中斷"的條件 可以在循環(huán)體中根據(jù)需要來定義,它必須是某種消息,如按鍵消息或端口接受到 數(shù)據(jù)的消息,故必須在循環(huán)體中增加消息處理機制。
b、 接收和處理調(diào)試器指令的能力
在嵌入端進入中斷狀態(tài)后,"偽斷點"的循環(huán)體中反復(fù)偵聽端口狀態(tài),等待調(diào) 試器端指令,這是中斷的目的所在——調(diào)試。 一旦端口數(shù)據(jù)出現(xiàn),即終端收到調(diào) 試器指令時,嵌入端程序隨即根據(jù)指令集的格式對其進行解析,分別得到命令字 及其參數(shù)。
c、 獲取和輸出數(shù)據(jù)值的能力
解析出調(diào)試器指令后,嵌入端程序把這個"偽斷點"狀態(tài)下的調(diào)試器需要的數(shù) 據(jù)逐一整理,包括變量值、RAM數(shù)據(jù)以及FLASH數(shù)據(jù);并根據(jù)該指令返回數(shù)據(jù)格式 的要求,將數(shù)據(jù)打包、傳回調(diào)試器。
3) 調(diào)試器的功能實現(xiàn)
a、 友好的圖形界面
調(diào)試器是該調(diào)試方法的最終輸出, 一個友好的圖形界面是必不可少的。可以按 照終端數(shù)據(jù)結(jié)構(gòu)的特點來進行布局,既要明確輸出各個斷點在程序中的標識和位 置,又要合理布局各個變量值、RAM數(shù)據(jù)以及FLASH數(shù)據(jù)的顯示輸出區(qū)域和輸出方 式。這里不再細述,可以根據(jù)不同的PC軟件開發(fā)工具具體設(shè)計。
b、 斷點調(diào)試
在嵌入端進入某個"偽斷點"后,調(diào)試器就可以開始調(diào)試。端同樣按照指令集 的格式將調(diào)試指令打包并發(fā)給嵌入端,待嵌入端返回調(diào)試數(shù)據(jù)后,調(diào)試器根據(jù)指 令集的格式對其進行解析,分別得到命令字極其參數(shù),整理出包括變量值、RAM數(shù) 據(jù)以及FLASH數(shù)據(jù)等,然后顯示在圖形界面中,達到嵌入式程序開發(fā)的斷點調(diào)試 與分析的目的。
權(quán)利要求
1、一種嵌入式應(yīng)用程序的調(diào)試方法,其特征在于通過在調(diào)試器主機與被調(diào)試程序間插入斷點建立通信用軟件接管目標系統(tǒng)的異常處理及部分中斷處理,在其中插入調(diào)試端口通信模塊與PC主機的調(diào)試器交互,實現(xiàn)對嵌入式應(yīng)用程序的調(diào)試,具體步驟如下1)在嵌入端定義調(diào)試器的指令集根據(jù)嵌入端數(shù)據(jù)結(jié)構(gòu)的特點以及調(diào)試的需要,定義“嵌入端-調(diào)試器”的指令集;2)嵌入端的程序?qū)崿F(xiàn)編寫“偽斷點”功能函數(shù),主程序調(diào)用它時,則進入斷點調(diào)試狀態(tài),“偽斷點”功能函數(shù)實現(xiàn)的功能包括以下3部分a、中斷和結(jié)束中斷的能力b、接收和處理調(diào)試器指令的能力c、獲取和輸出數(shù)據(jù)值的能力3)調(diào)試器的功能實現(xiàn)a、友好的圖形界面b、斷點調(diào)試。
全文摘要
本發(fā)明提供一種嵌入式程序調(diào)試方法,該方法是通過在調(diào)試器主機與被調(diào)試程序間插入斷點建立通信用軟件接管目標系統(tǒng)的異常處理及部分中斷處理,在其中插入調(diào)試端口通信模塊與PC主機的調(diào)試器交互,實現(xiàn)對嵌入式應(yīng)用程序的調(diào)試,本發(fā)明的方法可應(yīng)用于調(diào)試運行于目標操作系統(tǒng)之上的應(yīng)用程序,適用于稅控收款機、金融稅控收款機、金融POS機、手持終端等具有嵌入式系統(tǒng)和應(yīng)用程序的終端。
文檔編號G06F11/36GK101354676SQ20081013944
公開日2009年1月28日 申請日期2008年9月10日 優(yōu)先權(quán)日2008年9月10日
發(fā)明者王永軍, 松 門, 黃正茂 申請人:浪潮齊魯軟件產(chǎn)業(yè)有限公司