本發明實施例涉及斷電保護技術領域,尤其涉及一種斷電保護方法及裝置。
背景技術:
隨著計算機和信息技術的飛速發展,數字信號處理技術應運而生并得到迅速的發展,數字信號處理(digitalsignalprocessing,簡稱dsp)設備已經在通信、計算機等領域得到了極為廣泛的應用。dsp以其精度高、實時性強以及體積小等優點,成為了控制領域的核心器件之一,能夠滿足高性能的控制要求。在使用dsp芯片的設備進行軟件升級的過程中,需要先擦除舊的程序再重新寫入新的程序,在這個過程中,如果出現斷電的情況,將會導致設備故障,即使重新供電,也無法重新啟動dsp程序,只能返回設備的原廠進行重新燒制芯片。
現有技術中,在設備中安裝電池,通過檢測電池的電量來決定是否進行軟件升級。如果電池的電量低于某個臨界值,則不允許設備進行軟件升級的操作。這種方法雖然避免了突然斷電導致設備故障的問題,但是不具有便捷性,對于大多數采用外接電源供電的設備是無效的,且安裝電池增加了設備的成本,可應用范圍也不廣泛。
技術實現要素:
本發明實施例提供一種斷電保護方法及裝置,以解決現有技術中基于dsp設備在軟件升級過程中斷電導致設備故障的問題。
第一方面,本發明實施例提供了一種斷電保護方法,包括:
于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值;
于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序;
于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
進一步地,所述于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值之前,包括:
將所述應用程序的源程序復制至所述第二存儲區域;
于檢測到應用程序處于進入升級狀態下,擦除與所述應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序;
于第一存儲區域中存儲所述應用程序升級后的源程序和/或安裝程序,并于存儲完成后將第一預制值賦值于所述標識位。
進一步地,所述將所述應用程序的源程序復制至所述第二存儲區域之前,包括:
設置預存儲區域,為所述預存儲區域分配存儲地址;
設置第一存儲區域,為所述第一存儲區域分配存儲地址;
設置第二存儲區域,為所述第二存儲區域分配存儲地址。
進一步地,設置的區域至少還包括:引導加載區域、引導加載存儲區域、向量區域以及數據存儲區域,并為每一個設置的區域分配對應的存儲地址。
進一步地,于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值之前,包括:
初始化操作,將所述引導加載區域的內容復制到所述引導加載存儲區域中執行。
第二方面,本發明實施例還提供了一種斷電保護裝置,包括:
匹配模塊,用以于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值;
第一匹配結果模塊,用以于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序;
第二匹配結果模塊,用以于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
進一步地,所述裝置還包括:
復制模塊,用于將所述應用程序的源程序復制至所述第二存儲區域;
擦除模塊,用以于檢測到應用程序處于進入升級狀態下,擦除與所述應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序;
還原模塊,用以于第一存儲區域中存儲所述應用程序升級后的源程序和/或安裝程序,并于存儲完成后將第一預制值賦值于所述標識位。
進一步地,所述裝置還包括:
第一區域設置單元,用于設置預存儲區域,為所述預存儲區域分配存儲地址;
第二區域設置單元,用于設置第一存儲區域,為所述第一存儲區域分配存儲地址;
第三區域設置單元,用于設置第二存儲區域,為所述第二存儲區域分配存儲地址。
進一步地,所述裝置還包括:
區域設置單元,用于設置的區域至少還包括:引導加載區域、引導加載存儲區域、向量區域以及數據存儲區域,并為每一個設置的區域分配對應的存儲地址。
進一步地,所述裝置還包括:
初始化單元,用于初始化操作,將所述引導加載區域的內容復制到所述引導加載存儲區域中執行。
本發明實施例在設備斷電后再次上電的情況下,通過判斷預存儲區域中標識位的值是否匹配第一預制值,來決定運行第一存儲區域或第二存儲區域中的程序,能夠避免數字信號處理設備在軟件升級過程中斷電導致無法重新啟動程序的問題,提升了數字信號處理設備的安全性,增強了數字信號處理設備的可靠性,可應用于外接電源供電的設備,節約成本,具有便捷性,可應用范圍廣泛。
附圖說明
圖1是本發明實施例一中的一種斷電保護方法的流程圖;
圖2a是本發明實施例二中的一種斷電保護方法的流程圖;
圖2b是本發明實施例二中的一種斷電保護方法的流程圖;
圖3是本發明實施例三中的一種斷電保護方法的流程圖;
圖4a是本發明實施例四中的一種斷電保護方法的流程圖;
圖4b是本發明實施例四中的一種斷電保護方法的流程圖;
圖5是本發明實施例五中的一種斷電保護裝置的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。
實施例一
圖1為本發明實施例一提供的一種斷電保護方法的流程圖,本實施例可適用于在數字信號處理設備軟件升級過程中來進行斷電保護的情況,該方法可以由一種斷電保護裝置執行,該裝置可以采用軟件和/或硬件的方式實現,一般集成于數字信號處理設備中。
本發明實施例一的方法具體包括:
s101、于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值。
具體的,預存儲區域為存儲標識位的區域,即標識位存儲區域,可以對標識位進行賦值操作,賦值為第一預制值。如果檢測到軟件升級的操作,系統會首先擦除標識位存儲區域內存儲的第一預制值,然后擦除已安裝的軟件程序,成功寫入新的軟件程序后,在標識位存儲區域還原第一預制值。如果在軟件升級的過程中發生斷電的情況,則還原第一預制值的操作將寫入不完整。第一預制值可以設置為除了端值以外的中間值,例如,第一預制值可以設置為0x1234,不可以設置為端值0x0000和0xffff,在預存儲區域中讀取標識位的值,判斷標識位的值是否為0x1234。
s102、于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序。
具體的,第一存儲區域為存儲程序的區域,即程序存儲區域。在軟件升級的過程中斷電后再上電,如果檢測到標識位匹配第一預制值,則說明在軟件升級成功后發生斷電,在程序存儲區域中讀取和標識位匹配的應用程序的安裝文件,并安裝升級后的應用程序。
s103、于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
具體的,第二存儲區域為備份應用程序的區域,即備份存儲區域。在軟件升級的過程中斷電后再上電,如果檢測到標識位不匹配第一預制值,則說明在軟件升級過程中發生斷電,并沒有完成軟件升級的操作,在備份存儲區域中讀取應用程序,并運行該應用程序。
本發明實施例一提供的一種斷電保護方法,能夠避免基于數字信號處理設備在軟件升級過程中斷電導致無法重新啟動程序的問題,提升了數字信號處理設備的安全性,增強了數字信號處理設備的可靠性,可應用于外接電源供電的設備,節約成本,具有便捷性,可應用范圍廣泛。
實施例二
圖2a為本發明實施例二提供的一種斷電保護方法的流程圖,本發明實施例二以實施例一為基礎進行了優化,具體是對于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值之前的操作進一步優化,如圖2a所示,本發明實施例二的具體包括:
s201、將所述應用程序的源程序復制至所述第二存儲區域。
s202、于檢測到應用程序處于進入升級狀態下,擦除與所述應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序。
s203、于第一存儲區域中存儲所述應用程序升級后的源程序和/或安裝程序,并于存儲完成后將第一預制值賦值于所述標識位。
具體的,預先在數字信號處理設備中設置第二存儲區域,將應用程序的源程序復制至第二存儲區域進行備份,如果檢測到應用程序處于升級的狀態下,參見圖2b,擦除預存儲區域內存儲的與應用程序匹配的標識位賦值,標識位可以賦值為第一預制值,在將源程序復制到第二存儲區域的操作完成后,刪除第一存儲區域存儲的源程序。然后在第一存儲區域中寫入應用程序升級后的源程序和/或安裝程序,在存儲完成后還原標識位的賦值,即重新寫入第一預制值,應用程序升級過程結束。如果在應用程序升級的過程中發生斷電的情況,則停止讀寫操作,造成升級后的源程序和/或安裝程序寫入不完整或第一預制值還原不完整,應用程序升級失敗。
s204、于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值。
s205、于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序。
s206、于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
本發明實施例二提供的一種斷電保護方法,針對數字信號處理設備軟件升級過程中斷電后再上電的情況,在軟件升級成功的狀態下,運行第一存儲區域的應用程序,在軟件升級失敗的狀態下,運行第二存儲區域的應用程序,無論軟件是否升級成功,都可以避免數字信號處理設備在軟件升級過程中斷電導致程序無法運行的問題,提升了數字信號處理設備的可靠性。
實施例三
圖3為本發明實施例三提供的一種斷電保護方法的流程圖,本發明實施例三以上述各實施例為基礎進行了優化改進,對將所述應用程序的源程序復制至所述第二存儲區域之前進行了進一步說明,如圖3所示,本發明實施例三的方法具體包括:
s301、設置預存儲區域,為所述預存儲區域分配存儲地址;設置第一存儲區域,為所述第一存儲區域分配存儲地址;設置第二存儲區域,為所述第二存儲區域分配存儲地址。
優選的,設置的區域至少還包括:引導加載區域、引導加載存儲區域、向量區域以及數據存儲區域,并為每一個設置的區域分配對應的存儲地址。
具體的,在數字信號處理設備中分配扇區,并且為每個扇區分配存儲地址。本實施例中,分配的扇區為引導加載區域、引導加載存儲區域、預存儲區域、向量區域、數據存儲區域、第一存儲區域以及第二存儲區域。引導加載區域存儲地址的起始地址可以為0000000h,區域長度可以設置為0000400h,引導加載存儲區域存儲地址的起始地址可以為0000400h,區域長度可以設置為0003c00h,預存儲區域存儲地址的起始地址可以為0004000h,區域長度可以設置為0002000h,向量區域存儲地址的起始地址可以為0006000h,區域長度可以設置為0000200h,數據存儲區域存儲地址的起始地址可以為0006200h,區域長度可以設置為0000080h,第一存儲區域存儲地址的起始地址可以為0006280h,區域長度可以設置為0014000h,第二存儲區域存儲地址的起始地址可以為001a280h,區域長度可以設置為0025000h。
本領域的技術人員可知,至少分配上述區域,但不限于上述區域,扇區的分配情況依據實際應用的具體情況而設置。
s302、將所述應用程序的源程序復制至所述第二存儲區域。
s303、于檢測到應用程序處于進入升級狀態下,擦除與所述應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序。
s304、于第一存儲區域中存儲所述應用程序升級后的源程序和/或安裝程序,并于存儲完成后將第一預制值賦值于所述標識位。
s305、于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值。
s306、于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序。
s307、于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
本發明實施例三提供的一種斷電保護方法,為數字信號處理設備分配扇區,各個扇區分工協作,提升了數字信號處理設備斷電保護的效率,防止軟件升級過程中掉電使數字信號處理設備出現故障,提升了數字信號處理設備的安全性。
實施例四
圖4a為本發明實施例四提供的一種斷電保護方法的流程圖,本發明實施例四以上述各實施例為基礎進行了優化改進,對于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值之前進行了進一步說明,如圖4a所示,本發明實施例四的方法具體包括:
s401、初始化操作,將所述引導加載區域的內容復制到所述引導加載存儲區域中執行。
具體的,在數字信號處理設備斷電后再上電的情況下,進行初始化操作,將引導加載區域的內容復制到引導加載存儲區域中執行。
s402、于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值。
s403、于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序。
s404、于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
本實施例中,參見圖4b,在數字信號處理設備斷電后再上電的情況下,進行初始化操作,在預存儲區域中讀取標識位的值,判斷標識位的值是否和第一預制值匹配,如果讀取的標識位的值與第一預制值相等,運行第一存儲區域中存儲的程序,如果讀取的標識位的值與第一預制值不相等,運行第二存儲區域中存儲的程序。
本發明實施例四提供的一種斷電保護方法,能夠避免數字信號處理設備在軟件升級過程中斷電導致無法重新啟動程序的問題,保護數字信號處理設備不受斷電的影響,增強了數字信號處理設備的可靠性。
實施例五
圖5是本發明實施例五中的一種斷電保護裝置的結構示意圖,該裝置應用于在數字信號處理設備軟件升級過程中來進行斷電保護的情況,一般集成于數字信號處理設備中。如圖5所示,裝置包括:匹配模塊501、第一匹配結果模塊502以及第二匹配結果模塊503。
匹配模塊501,用以于預存儲區域中讀取標識位,判斷所述標識位是否匹配第一預制值;
第一匹配結果模塊502,用以于所述標識位匹配所述第一預制值的狀態下,于第一存儲區域中讀取并加載與所述標識位匹配的應用程序;
第二匹配結果模塊503,用以于所述標識位不匹配所述第一預制值的狀態下,于第二存儲區域中讀取并加載所述應用程序。
本發明實施例在設備斷電后再次上電的情況下,通過判斷預存儲區域中標識位的值是否匹配第一預制值,來決定運行第一存儲區域或第二存儲區域中的程序,能夠避免數字信號處理設備在軟件升級過程中斷電導致無法重新啟動程序的問題,提升了數字信號處理設備的安全性,增強了數字信號處理設備的可靠性,可應用于外接電源供電的設備,節約成本,具有便捷性,可應用范圍廣泛。
在上述各實施例的基礎上,所述裝置可以包括:
復制模塊,用于將所述應用程序的源程序復制至所述第二存儲區域;
擦除模塊,用以于檢測到應用程序處于進入升級狀態下,擦除與所述應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序;
還原模塊,用以于第一存儲區域中存儲所述應用程序升級后的源程序和/或安裝程序,并于存儲完成后將第一預制值賦值于所述標識位。
在上述各實施例的基礎上,所述裝置還可以包括:
第一區域設置單元,用于設置預存儲區域,為所述預存儲區域分配存儲地址;
第二區域設置單元,用于設置第一存儲區域,為所述第一存儲區域分配存儲地址;
第三區域設置單元,用于設置第二存儲區域,為所述第二存儲區域分配存儲地址。
在上述各實施例的基礎上,所述裝置還可以包括:
區域設置單元,用于設置的區域至少還包括:引導加載區域、引導加載存儲區域、向量區域以及數據存儲區域,并為每一個設置的區域分配對應的存儲地址。
在上述各實施例的基礎上,所述裝置還可以包括:
初始化單元,用于初始化操作,將所述引導加載區域的內容復制到所述引導加載存儲區域中執行。
本實施例中,通過第一區域設置單元、第二區域設置單元、第三區域設置單元以及區域設置單元分配數字信號處理設備的扇區,至少分配扇區為引導加載區域、引導加載存儲區域、預存儲區域、向量區域、數據存儲區域、第一存儲區域以及第二存儲區域,并為每個扇區分配對應的存儲地址。在復制模塊將應用程序的源程序復制至第二存儲區域,在檢測到應用程序處于進入升級狀態下,利用擦除模塊擦除與應用程序匹配的標識位賦值,并于源程序復制完成后刪除第一存儲區域中存儲的源程序。在還原模塊中,在第一存儲區域中存儲應用程序升級后的源程序和/或安裝程序之后,將第一預制值賦值于標識位。在數字信號處理設備的軟件升級過程中斷電后再上電,在初始化單元對數字信號處理設備進行初始化操作,通過匹配模塊,讀取預存儲區域中的標識位的值,并判斷標識位的值與第一預制值是否匹配。如果標識位的值與第一預制值匹配,利用第一匹配結果模塊在第一存儲區域中讀取與標識位匹配的應用程序的安裝文件并安裝,如果標識位的值與第一預制值不匹配,利用第二匹配結果模塊在第二存儲區域中讀取并運行應用程序。
本發明實施例五提供的一種斷電保護裝置,在數字信號處理設備軟件升級的過程斷電的情況下,保護數字信號處理設備,避免數字信號處理設備因斷電而無法正常運行程序,可應用于外接電源供電的設備,應用范圍廣泛。
本發明實施例提供的斷電保護裝置可執行本發明任意實施例提供的斷電保護方法,具備執行方法相應的功能模塊和有益效果。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。