自行修復嵌入式設備的主控應用程式的方法及設備的製作方法
2023-09-18 15:47:00 1
專利名稱:自行修復嵌入式設備的主控應用程式的方法及設備的製作方法
技術領域:
本發明涉及一種自行修復嵌入式設備的主控應用程式的方法及設備,能夠利用完全獨立於嵌入式設備的主控應用程式存儲部分的修復裝置來修復主控應用程式存儲部分的應用程式。
背景技術:
目前的嵌入式電子設備涵蓋範圍廣泛,包括消費電子設備、工業電子設備、網絡和通信設備等等。目前這類設備基本都採用獨立的嵌入式計算機系統方案,由設計者編寫的軟體進行獨立控制。在嵌入式系統中,軟體經常是和硬體緊密結合的,可稱為固件。目前嵌入式系統用來存儲程序代碼的存儲設備多採用非易失存儲晶片,例如FLASH晶片(閃速存儲器)。當然,也可以將程序代碼部分或全部存儲在其他類型的介質上,例如硬碟或光碟。
在這種設備中,如果出現異常故障,如程序運行故障導致固件內的部分代碼被誤改寫;或者存儲晶片發生硬體故障,則系統就會陷入崩潰,無法繼續運行和使用。目前大量用來作為存儲晶片的FLASH晶片,有較大概率出現區塊損壞,如果這種損壞發生在主控應用程式存儲區,就會導致系統運行出現故障。硬碟、光碟等存儲介質同樣可能出現類似故障。
在消費電子設備產品中,目前解決這種問題的方法是提供基於PC的修復軟體,通過USB接口來修復設備的固件。這種方法使用起來比較不方便,並且需要用戶比較了解修復軟體的操作。
在消費電子設備,如手機、數碼娛樂產品中,用戶可能在各種環境中使用產品。如果由於軟體或硬體的原因系統發生故障,無法正常工作,用戶很可能無法及時將其連接到PC上,並通過專用工具軟體進行系統修復。
因此,需要提供一種自行修復嵌入式設備的主控應用程式的方法及設備來解決上述缺陷。
發明內容
本發明的目的是提供一種自行修復嵌入式設備的主控應用程式的方法及設備,能夠通過用戶不可訪問的專用存儲區來存儲修復程序,該修復程序的全部操作完全獨立於嵌入式設備的主控應用程式,並且當主控應用程式軟體和部分硬體發生故障時,可以利用該修復程序快速方便地修復系統的相應部分(例如,主控應用程式)。此外,基於本發明的方案,用戶可以隨時通過特殊的操作方法(如嵌入式設備上的特殊按鍵組合),或者當檢測到加載主控程序失敗的標誌時,啟動修復程序進行自動恢復,更為方便快捷。
根據本發明,提出了一種自行修復嵌入式設備的主控應用程式的方法,包括以下步驟判斷是否存在來自用戶的特定硬體輸入,以及檢測主控應用程式加載是否成功;在存在特定硬體輸入的情況下或當所述嵌入式設備無法正常加載應用程式時,啟動修復程序;在啟動所述修復程序之後,所述修復程序讀取用戶不可訪問的專用存儲區中的主控應用程式代碼備份並覆寫到主控應用程式的存儲區,並且屏蔽主控應用程式存儲區中發生損壞的存儲部分。
優選地,在不存在特定硬體輸入的情況下,啟動主控應用程式存儲區中的主控應用程式以操作嵌入式設備。
優選地,所述特定硬體輸入是嵌入式設備上的任意按鍵或按鈕組合。
優選地,用戶不可訪問的專用存儲區中的主控應用程式代碼備份根據硬體和標誌位變化執行更新。
根據本發明,還提出了一種自行修復嵌入式設備的主控應用程式的設備,包括主控應用程式存儲裝置,用於存儲用於執行嵌入式設備的操作的主控應用程式;啟動調用裝置,判斷是否存在來自用戶的特定硬體輸入,以及檢測主控應用程式加載是否成功;在存在特定硬體輸入的情況下,或者當所述嵌入式設備無法正常加載應用程式時,啟動修復裝置中所存儲的修復程序;否則,啟動主控應用程式存儲裝置中所存儲的主控應用程式;以及修復裝置,用於存儲主控應用程式代碼備份以及修復程序,並且當所述啟動調用裝置啟動所述修復裝置中所存儲的修復程序時,所述修復程序讀取用戶不可訪問的專用存儲區中的主控應用程式代碼備份並覆寫到主控應用程式存儲裝置上,並且屏蔽主控應用程式存儲區中發生損壞的存儲部分。
通過參考以下結合附圖對所採用的優選實施例的詳細描述,本發明的上述目的、優點和特徵將變得顯而易見,其中圖1是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的設備的功能方框圖;圖2是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的方法的修復功能激活過程的流程圖;以及圖3是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的方法的修復過程的流程圖。
具體實施例方式
圖1是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的設備的功能方框圖。
如圖1所示,根據本發明實施例的自行修復嵌入式設備的主控應用程式的設備包括主控應用程式存儲裝置10、啟動調度裝置20、以及修復裝置30。
啟動調度裝置20為可存儲程序的ROM和微處理器(中央處理器,在圖中未示出)的上電和復位入口,包含以下兩種功能讀取特定硬體的輸入信息和檢測主控程序加載失敗標誌位,例如特定管腳的數字電平值(0或者1);以及根據讀取到的值來判斷是進入主控應用程式存儲裝置10還是進入修復裝置30。
主控應用程式存儲裝置10存儲用於實現嵌入式設備的全部應用功能的主控應用程式代碼。需要注意的是,主控應用程式為控制嵌入式設備的功能操作的所有應用程式。在正常情況下,當在啟動調度裝置20的引導下進入該主控應用程式存儲裝置10時,微處理器執行該主控應用程式存儲裝置10所存儲的主控應用程式代碼,以實現所需功能。
修復裝置30存儲了主控應用程式備份文件和修復程序,當發生故障時,在特定硬體輸入下,啟動調度裝置20被引導到該修復裝置30。此時,修復裝置30的修復程序將所存儲的主控應用程式備份文件寫入主控應用程式存儲裝置10,覆蓋主控應用程式存儲裝置10原有的主控應用程式、以及屏蔽發生損壞的存儲區域,以實現對嵌入式設備的自行修復。
對本領域的人員顯而易見,以上所述的主控應用程式存儲裝置10、啟動調度裝置20、修復裝置30能夠以軟體、硬體或其組合的形式來實現。
下面將結合圖2和圖3對根據本發明實施例的自行修復嵌入式設備的主控應用程式的方法進行描述。
圖2是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的方法的修復功能激活過程的流程圖。
所有用於嵌入式系統的微處理器,都具有一個固定的入口地址。每當處理器上電或收到復位中斷信號,就會從這個地址開始執行程序代碼。
在本發明中,如圖2所示,啟動調度裝置20的起始指令就存放在入口地址處,根據該入口地址,該啟動調度裝置20被激活(步驟201)。然後,在步驟203,啟動調度裝置20讀取指定管腳的電平和指定標誌位。例如,在管腳電平為高的狀態下,跳轉到修復裝置30執行根據本發明的修復過程(步驟207)。而在管腳電平為低的狀態下,跳轉到主控應用程式存儲裝置10以啟動主控應用程式(步驟205)。
需要注意的是,管腳電平的高低電平分別代表存在特定的硬體輸入和嵌入式設備處於默認狀態。通常,嵌入式設備處於默認狀態表示嵌入式設備操作正常,而在嵌入式設備出現故障和異常的情況下,則可以由用戶輸入特定的按鍵組合(硬體輸入)來激活修復裝置30。
當然,本發明並不局限於此。例如,也可以在嵌入式設備正常操作情況下通過用戶的硬體輸入來激活修復裝置30,以使主控應用程式進入復位狀態。亦可以通過檢測相應的標誌位、寄存器等激活修復裝置30。
圖3是示出了根據本發明實施例的自行修復嵌入式設備的主控應用程式的方法的修復過程的流程圖。
如圖3所示,在步驟301,進入修復過程。在步驟303,修復裝置30讀取其中所存儲的主控應用程式代碼備份。在步驟305,將主控應用程式代碼備份覆寫到主控應用程式存儲裝置10上,並且屏蔽發生損壞的存儲區域。在步驟307,在上述覆寫和屏蔽操作結束之後,由啟動調度裝置20引導到初始復位狀態。
在實際中,主控應用程式代碼為最複雜、運行最頻繁的代碼區域,主控應用程式存儲裝置則是讀寫操作最頻繁、存儲空間最大的區域。因此這一部分出現故障的可能性也最大,一旦出現故障,就可以用硬體輸入操作或者自我檢測標誌位,通過調度程序進入修復程序以修復主控應用程式。
此外,在通常情況下,可能會在主控應用程式中添加功能。此時,可以更新修復裝置30中的主控應用程式代碼備份,從而避免這一部分出現故障導致修復裝置30不再可用。用戶不可訪問專用存儲區中的主控應用程式代碼備份,並根據硬體和標誌位變化執行更新。
儘管以上已經結合本發明的優選實施例示出了本發明,但是本領域的技術人員將會理解,在不脫離本發明的精神和範圍的情況下,可以對本發明進行各種修改、替換和改變。因此,本發明不應由上述實施例來限定,而應由所附權利要求及其等價物來限定。
權利要求
1.一種自行修復嵌入式設備的主控應用程式的方法,包括以下步驟判斷是否存在來自用戶的特定硬體輸入,以及檢測主控應用程式加載是否成功;在存在特定硬體輸入的情況下或當所述嵌入式設備無法正常加載應用程式時,啟動修復程序;在啟動所述修復程序之後,所述修復程序讀取用戶不可訪問的專用存儲區中的主控應用程式代碼備份並覆寫到主控應用程式的存儲區,並且屏蔽主控應用程式存儲區中發生損壞的存儲部分。
2.根據權利要求1所述的方法,其特徵在於在不存在特定硬體輸入的情況下,啟動主控應用程式存儲區中的主控應用程式以操作嵌入式設備。
3.根據權利要求1所述的方法,其特徵在於所述特定硬體輸入是嵌入式設備上的任意按鍵或按鈕組合。
4.根據權利要求1所述的方法,其特徵在於用戶不可訪問的專用存儲區中的主控應用程式代碼備份根據硬體和標誌位變化執行更新。
5.一種自行修復嵌入式設備的主控應用程式的設備,包括主控應用程式存儲裝置,用於存儲用於執行嵌入式設備的操作的主控應用程式;啟動調用裝置,判斷是否存在來自用戶的特定硬體輸入,以及檢測主控應用程式加載是否成功;在存在特定硬體輸入的情況下,或者當所述嵌入式設備無法正常加載應用程式時,啟動修復裝置中所存儲的修復程序;否則,啟動主控應用程式存儲裝置中所存儲的主控應用程式;以及修復裝置,用於存儲主控應用程式代碼備份以及修復程序,並且當所述啟動調用裝置啟動所述修復裝置中所存儲的修復程序時,所述修復程序讀取用戶不可訪問的專用存儲區中的主控應用程式代碼備份並覆寫到主控應用程式存儲裝置上,並且屏蔽主控應用程式存儲區中發生損壞的存儲部分。
6.根據權利要求5所述的設備,其特徵在於所述特定硬體輸入是嵌入式設備上的任意按鍵或按鈕組合。
7.根據權利要求5所述的設備,其特徵在於所述用戶不可訪問的專用存儲區中的主控應用程式代碼備份根據硬體和標誌位變化執行更新。
全文摘要
根據本發明,提出了一種自行修復嵌入式設備的主控應用程式的方法,包括以下步驟判斷是否存在來自用戶的特定硬體輸入;在存在特定硬體輸入的情況下,啟動修復過程;在啟動所述修復過程之後,所述修復過程讀取用戶不可訪問的專用存儲區中的主控應用程式代碼備份並覆寫到主控應用程式的存儲區,並且屏蔽主控應用程式存儲區中發生損壞的存儲部分。
文檔編號G06F11/14GK1940887SQ20051011334
公開日2007年4月4日 申請日期2005年9月28日 優先權日2005年9月28日
發明者徐琳 申請人:聯想(北京)有限公司