專利名稱:嵌入式設備調試方法及其調試工具的制作方法
技術領域:
本發明涉及計算機領域,特別是有關于一種嵌入式設備調試方法及其調試工具。
背景技術:
當前,應用于PDA(Personal Digital Assistant,個人數字助理)等嵌入式設備的主要調試方法是直接觀察調試信息或遠程做一些系統運行狀況的監視。這種現有嵌入式設備調試方法的軟件系統如圖1所示,最底層的若干個驅動程序和類驅動程序負責驅動各自的設備,這些驅動程序由操作系統內核統一管控,操作系統內核通過標準應用庫與應用程序相連,從而構成一個以驅動程序為底層,應用程序為最高層的完整的軟件系統。應用程序通過其人機界面接收指令通過標準應用庫傳達給操作系統內核,操作系統內核將該指令分析歸類傳達給某一個或數個驅動程序來驅動該設備。設備的反饋由驅動程序回饋給操作系統內核再經操作系統內核通過標準應用庫送至應用程序,并在其人機界面上顯示出來。這樣,測試者可以在本機或遠程計算機上觀察到設備狀態數據,并可以繼續輸入指令進行下一步調試。
上述的現有測試方法存在的缺點是,首先需要編寫完備的驅動架構,應用程序和驅動程序依托操作系統,只有在建立了完整的軟件系統后才能進行調試。對于驅動程序而言,在嵌入式設備上,對硬件的控制就是通過內存映像或寄存器訪問來實現的。通常對不同的外部設備,操作系統內核將其歸并到相應的類中去。工程師就要開發不同類型的驅動程序。不同類型的驅動程序與操作系統的接口也不盡相同。
其次,通常驅動程序都采用內置的方式,包含在系統映像中。每次改動,都要重新編譯系統。尤其是在開發設備驅動程序的過程中,需要多次改寫程序,進而不得不多次編譯操作系統部分。這樣,大量的時間被花費在編譯、燒錄的過程中,降低了開發的效率。這種被動的調試方法并不能即時檢測問題設備的狀態,尤其不適合開發/量產過程中的調試作業。
發明內容
本發明的目的在于提供一種嵌入式設備調試方法,以克服上述現有技術的不足,能夠在無需編寫完備的驅動架構的情況下,直接對硬件進行控制,從而簡化硬件功能驗證和檢測的過程。
為實現上述目的,本發明提供一種嵌入式設備調試方法,包括以下步驟a.提供一個硬件調試驅動程序,通過內存映像訪問存儲器和寄存器;b.提供一個控制程序,獨立控制硬件調試驅動程序讀寫存儲器和寄存器;c.采用操作系統內核提供的標準系統接口連接該硬件調試驅動程序和該控制程序的接口;d.設置一個用戶界面,并通過該用戶界面輸入、傳送測試指令給控制程序并顯示系統狀態。
其中,所述的控制程序可以設置在遠端計算機上,也可以設置在該嵌入式設備上,還可以分為遠端計算機端控制程序和設備端控制程序分別設置在遠端計算機上和嵌入式設備上。
在具有遠端計算機的情況下,所述的嵌入式設備調試方法還包括以下步驟硬件調試驅動程序復制顯示緩沖區,實時地將圖像傳送到遠端計算機上的控制程序,進而傳送到用戶界面程序并顯示在其創建的顯示窗口中;用戶界面程序截取用戶在窗口中的點擊及鍵盤輸入,回饋給嵌入式設備。
所述的硬件調試驅動程序采用動態安裝的模式,可以根據需要改變硬件調試驅動程序,復制到嵌入式設備上去,然后由控制程序動態啟動已被改變的硬件調試驅動程序。硬件調試驅動程序還可以通過保存文件的方式,將調試的動作和相應的系統狀態保存下來。
所述的調試方法采用腳本控制方式,控制程序讀取/分析/執行相關的腳本。所述的控制程序在設備死機時,觸發硬件中斷,在中斷處理程序中導出系統的狀態。
本發明的另一目的在于提供一種與本發明的嵌入式設備調試方法相對應的嵌入式設備調試工具。
為實現上述目的,本發明提供一種嵌入式設備調試工具,包括設置在該嵌入式設備上的用戶界面和命令解析與平臺控制元件,其特征在于該設備還設有可通過內存映像訪問存儲器和寄存器的硬件調試驅動程序,以及獨立控制硬件調試驅動程序讀寫存儲器和寄存器的控制程序。
進一步的,所述的調試工具還包括一臺遠程計算機,該遠端計算機上設有用戶界面、負責控制命令的組裝和命令響應的解析的遠端控制元件、與該嵌入式設備進行通信的通信端口;嵌入式設備上設有通信端口與遠端計算機上的通信接口進行通信。
所述的硬件調試驅動程序可以復制顯示緩沖區,實時地將圖像傳送到遠端計算機上的控制程序,由用戶界面負責創建一個顯示窗口并截取用戶在窗口中的點擊及鍵盤輸入,回饋給嵌入式設備。該硬件調試驅動程序采用動態安裝的模式,可以根據需要改變硬件調試驅動程序,復制到嵌入式設備上去,然后由控制程序動態啟動已被改變的硬件調試驅動程序。硬件調試驅動程序還可以通過保存文件的方式,將調試的動作和相應的系統狀態保存下來。
所述的調試工具采用腳本控制方式,控制程序讀取/分析/執行相關的腳本。所述的控制程序可在設備死機時,觸發硬件中斷,在中斷處理程序中導出系統的狀態。
本發明能夠在無需編寫完備的驅動架構的情況下,直接對硬件進行控制,從而簡化了硬件功能驗證和檢測的過程。本發明采用非內置式/動態裝載設計,減少對操作系統的依賴,無需多次重新編譯操作系統,節省開發時間;本發明采用Log文件記錄狀態信息,以及熱鍵激活設備狀態的導出。使得調試程序更為方便安全地進行。在遠端調試工作模式下,采用遠端顯示輸入,即使設備的顯示/輸入部件工作不正常,也可以完成調試。
以下結合附圖與實施例對本發明作進一步的說明。
圖1為現有調試方法的軟件系統示意圖。
圖2為本發明的調試方法的軟件系統示意圖。
圖3為遠端調試工作模式下采用遠端顯示輸入的方塊圖。
圖4為本發明調試工具的一個實施例的的方塊圖。
具體實施例方式
有關本發明的詳細說明及技術內容,現就結合
如下首先參閱圖2,圖2為本發明的調試方法的軟件系統示意圖(設備端)。本發明的軟件系統主要包括一個硬件調試驅動程序(可以獨立存在或與硬件真正的驅動程序編寫在一起),該硬件調試驅動程序實現最簡單的驅動程序接口,通過內存映像訪問存儲器和寄存器,監控硬件中斷,生成記錄現場信息的Log文件;一個控制程序,解析腳本及手動命令,控制硬件調試驅動程序讀寫存儲器和寄存器,在遠程調試的狀態下負責與遠端程序的交互,轉發狀態信息。連接該硬件調試驅動程序和該控制程序的接口是內核提供的標準系統接口;一個用戶界面,用于接收用戶輸入,傳送給控制程序并顯示系統狀態。
在嵌入式設備上,對硬件的控制就是通過內存映像或寄存器訪問來實現的。通常對不同的外部設備,操作系統將其歸并到相應的類中去。就需要開發不同類型的驅動程序。本發明提供一個特殊的驅動程序,專門負責訪問存儲器和寄存器。從而提供了一個簡化的功能驗證接口。本方法能夠在無需編寫完備的驅動架構的情況下,將對直接對硬件進行控制的通用模組由單一驅動來完成,從而簡化了硬件功能驗證和檢測的過程。
在Windows CE等嵌入式操作系統中,應用程序工作在保護模式,因而不能直接訪問特定的物理內存和寄存器。通過提供一個完成內存映像功能的硬件調試驅動程序,用戶程序就可以完成物理內存和寄存器的訪問,從而能夠實現指定物理內存/寄存器內容進行檢查和改寫。
本發明的硬件調試驅動程序采用非內置式的動態安裝的模式,減少對操作系統的依賴,無需多次重新編譯操作系統,節省開發時間。通常硬件調試驅動程序都采用內置的方式,包含在系統映像中。每次改動,都要重新編譯系統。本發明的硬件調試驅動程序采用動態安裝的模式,開發人員可以根據需要改變硬件調試驅動程序,復制到嵌入式設備上去,然后由控制程序動態啟動已被改變的硬件調試驅動程序,而不必每次改變都重新編譯系統。
為了便于后期的分析,調試程序需要將調試的動作和相應的系統狀態保存。本發明的硬件調試驅動程序通過保存文件的方式,將調試的動作和相應的系統狀態保存下來。
相應的,本發明的控制程序負責對本發明的硬件調試驅動程序的讀寫存儲器和寄存器的過程進行控制,以及遠程控制的處理。
連接該硬件調試驅動程序和該控制程序的是標準的系統接口。因為本發明的硬件調試驅動程序采用的是操作系統支持的最簡單的驅動程序架構,故可以通過標準系統接口相連接。
本發明的控制程序可以設置在該嵌入式設備上,也可以設置在遠端計算機上,還可以分為遠端計算機端控制程序和設備端控制程序分別設置在遠端計算機上和嵌入式設備上。
在具有遠端計算機的情況下,還可以采用遠端顯示輸入方法,這樣即使設備端顯示/輸入部件工作不正常,也可以完成調試。在嵌入式設備上,有顯示驅動程序和鍵盤驅動程序,分別負責顯示輸出和通知系統用戶的輸入。嵌入式系統通常利用顯示緩沖區來保存待顯示的信息。在顯示硬件沒有完全配置好的情況下,用戶無法看到正常的顯示。本發明可以利用復制顯示緩沖區的方式,實時地將圖像傳送到主計算機上的控制程序,進而輸送給用戶界面程序創建的顯示窗口。用戶界面程序截取用戶在窗口中的點擊及鍵盤輸入,回饋給嵌入式設備,再由相應的程序將輸入通知系統。
請參閱圖3,圖3為遠端調試工作模式下采用遠端顯示輸入的方塊圖。為清晰起見,本圖只描述了模塊間的主要數據流向。在這個實施例中,遠端計算機是一臺PC,其具有普通的PC顯示器和鼠標/鍵盤,在這臺PC上設有PC端控制程序,即前述的控制程序的一部分——遠端計算機端控制程序。相應的設備端設有設備端顯示緩沖和設備端控制程序,在這個實施例中設備端由操作系統對輸入、輸出做最終的處理。設備端控制程序將從設備顯示緩沖獲取的圖像數據復制傳送給PC端控制程序。PC端控制程序將該圖像數據傳給PC顯示器顯示。另一方面PC端的鼠標/鍵盤可以進行輸入,輸入的事件由PC端控制程序傳送到設備端控制程序,進而發送給操作系統。
由于有些硬件的控制具有嚴格的時序要求,例如利用GPIO實現I2C總線傳輸。這時,單條控制執行的手動方式無法滿足需求。因此,本發明提供基于腳本的控制方式,預先建立所需要輸入的指令的腳本文件。控制程序讀取/分析/執行相關的腳本,從而實現對復雜時序控制的支持,滿足了復雜時序要求。
通常在設備調試階段,系統比較容易出現死機狀況。這時,通常應用程序不能繼續執行,但硬件中斷服務還能被觸發。本發明定義了觸發硬件中斷的熱鍵,利用按鍵的動作觸發一次硬件中斷,從而在中斷處理程序中導出系統的狀態,便于分析癥結所在。
根據本發明的調試工具既可以設置在嵌入式設備本機上也可以通過遠端計算來進行遠程測試。設置在嵌入式設備本機上的調試工具,包括設置在該嵌入式設備上的用戶界面和命令解析與平臺控制元件,其內部設有可通過內存映像訪問存儲器和寄存器的硬件調試驅動程序,以及獨立控制硬件調試驅動程序讀寫存儲器和寄存器的控制程序。
請參閱圖4,圖4為本發明調試工具的一個實施例的的方塊圖。這是一個具有遠端計算機可進行遠端調試的實施例,在設備端具有設備端用戶界面、設備端控制程序、硬件調試驅動程序、以及通信端口。
在PC機端,這里的遠端計算機是一臺PC機,具有PC端用戶界面、PC端控制程序、以及通信端口。其中,通信端口負責雙方的數據通訊管理,雙方的信息傳遞可以通過有線(如串行數據線、通用串行總線等)/無線(如802.11、藍牙等)多種方式實現。PC機上的用戶界面提供運行在主機上的用戶接口,如控制選擇/受控設備狀態顯示等,支持圖形界面和命令行控制兩種模式;設備端用戶界面運行于受控設備上的用戶接口模塊,可以進行調試指令的手動或腳本輸入以及調試狀態的顯示。它們可以是任何輸入/顯示設備。PC端控制程序負責控制命令的組裝和命令響應的解析;設備端控制程序負責解析主機/本地的腳本/手動控制命令,轉發狀態信息等工作;硬件調試驅動程序接受上層指令,完成設備訪問,熱鍵監測,回饋信息,記錄Log文件等任務。運行于受控設備上的軟件模塊,獨立于操作系統映像文件,單獨編譯,采用調試時動態安裝的工作模式。
以上所介紹的,僅僅是本發明的較佳實施例而已,不能以此來限定本發明實施的范圍,即本技術領域內的一般技術人員根據本發明所作的均等的變化,例如將以上實施例中的各個器件進行功能替換或對各個步驟進行組合。以及本領域內技術人員熟知的改進,都應仍屬于本發明專利涵蓋的范圍。
權利要求
1.一種嵌入式設備調試方法,其特征在于包括以下步驟a.提供一個硬件調試驅動程序,通過內存映像訪問存儲器和寄存器;b.提供一個控制程序,獨立控制硬件調試驅動程序讀寫存儲器和寄存器;c.采用操作系統內核提供的標準系統接口連接該硬件調試驅動程序和該控制程序的接口;d.設置一個用戶界面,并通過該用戶界面輸入、傳送測試指令給控制程序并顯示系統狀態。
2.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的控制程序可以設置在該嵌入式設備上。
3.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的控制程序可以設置在遠端計算機上。
4.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的控制程序可以分為遠端計算機端控制程序和設備端控制程序分別設置在遠端計算機上和嵌入式設備上。
5.如權利要求3或4任一項所述的嵌入式設備調試方法,其特征在于所述的嵌入式設備調試方法還包括以下步驟硬件調試驅動程序復制顯示緩沖區,實時地將圖像傳送到遠端計算機上的控制程序,進而傳送到用戶界面程序并顯示在其創建的顯示窗口中;用戶界面程序截取用戶在窗口中的點擊及鍵盤輸入,回饋給嵌入式設備。
6.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的硬件調試驅動程序采用動態安裝的模式,可以根據需要改變硬件調試驅動程序,復制到嵌入式設備上去,然后由控制程序動態啟動已被改變的硬件調試驅動程序。
7.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的硬件調試驅動程序通過保存文件的方式,將調試的動作和相應的系統狀態保存下來。
8.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的調試方法采用腳本控制方式,控制程序讀取/分析/執行相關的腳本。
9.如權利要求1所述的嵌入式設備調試方法,其特征在于所述的控制程序在設備死機時,觸發硬件中斷,在中斷處理程序中導出系統的狀態。
10.一種嵌入式設備調試工具,包括設置在該嵌入式設備上的用戶界面和命令解析與平臺控制元件,其特征在于該設備還設有可通過內存映像訪問存儲器和寄存器的硬件調試驅動程序,以及獨立控制硬件調試驅動程序讀寫存儲器和寄存器的控制程序。
11.如權利要求10所述的嵌入式設備調試工具,其特征在于所述的調試工具還包括一臺遠程計算機,該遠端計算機上設有用戶界面、負責控制命令的組裝和命令響應的解析的遠端控制元件、與該嵌入式設備進行通信的通信端口;嵌入式設備上設有通信端口與遠端計算機上的通信接口進行通信。
12.如權利要求11所述的嵌入式設備調試工具,其特征在于所述的硬件調試驅動程序可以復制顯示緩沖區,實時地將圖像傳送到遠端計算機上的控制程序,由用戶界面負責創建一個顯示窗口并截取用戶在窗口中的點擊及鍵盤輸入,回饋給嵌入式設備。
13.如權利要求10或11任一項所述的嵌入式設備調試工具,其特征在于所述的硬件調試驅動程序采用動態安裝的模式,可以根據需要改變硬件調試驅動程序,復制到嵌入式設備上去,然后由控制程序動態啟動已被改變的硬件調試驅動程序。
14.如權利要求10或11任一項所述的嵌入式設備調試工具,其特征在于所述的硬件調試驅動程序通過保存文件的方式,將調試的動作和相應的系統狀態保存下來。
15.如權利要求10或11任一項所述的嵌入式設備調試工具,其特征在于所述的調試工具采用腳本控制方式,控制程序讀取/分析/執行相關的腳本。
16.如權利要求10或11任一項所述的嵌入式設備調試工具,其特征在于所述的控制程序在設備死機時,觸發硬件中斷,在中斷處理程序中導出系統的狀態。
全文摘要
一種嵌入式設備調試方法,包括以下步驟a.提供一個硬件調試驅動程序,通過內存映像訪問存儲器和寄存器;b.提供一個控制程序,獨立控制硬件調試驅動程序讀寫存儲器和寄存器;c.采用標準應用程序接口連接該硬件調試驅動程序和該控制程序。本發明能夠在無需編寫完備的驅動架構的情況下,直接對硬件進行控制,從而簡化了硬件功能驗證和檢測的過程。
文檔編號G06F11/36GK1770119SQ20041006772
公開日2006年5月10日 申請日期2004年10月29日 優先權日2004年10月29日
發明者田志剛 申請人:上海環達計算機科技有限公司