專利名稱:一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及機(jī)頂盒技術(shù)領(lǐng)域,尤其涉及的是一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置。
背景技術(shù):
現(xiàn)在越來越多的高清電視(HDTV)機(jī)頂盒方案在用LINUX系統(tǒng),由于系統(tǒng)大的特點(diǎn),升級(jí)軟件需要比較長的時(shí)間;在機(jī)頂盒大批量出貨的情況下,功能升級(jí)和問題(BUG)修復(fù)后需要升級(jí)軟件;當(dāng)在軟件升級(jí)過程中,突然掉電,就會(huì)導(dǎo)致機(jī)頂盒(STB)啟動(dòng)不了 ;如果在啟動(dòng)引導(dǎo)程序(U-BOOT)里升級(jí)軟件就會(huì)需要很長的等待時(shí)間而影響用戶不能收看節(jié)目,給用戶造成不便。目前一般的機(jī)頂盒的嵌入式系統(tǒng),對(duì)于程序丟失都是采用在U-BOOT里恢復(fù)數(shù)據(jù), 而且是重新從外部獲取數(shù)據(jù),操作復(fù)雜,對(duì)于一般的家庭用戶很難實(shí)現(xiàn),而且恢復(fù)數(shù)據(jù)需要花很長的時(shí)間。因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置,提供了一種利用雙系統(tǒng)來實(shí)現(xiàn)機(jī)頂盒快速恢復(fù)系統(tǒng)啟動(dòng)問題的方法及裝置,其可以解決嵌入式電子設(shè)備由于種種原因引起的系統(tǒng)啟動(dòng)不了的問題, 而且可以自動(dòng)快速修復(fù),不影響系統(tǒng)的正常運(yùn)行時(shí)間,為用戶提供了方便,降低了維護(hù)成本。本發(fā)明解決技術(shù)問題所采用的技術(shù)方案如下
一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,包括步驟
A、在機(jī)頂盒的Nandflash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū);
B、將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū),并在第一程序存儲(chǔ)分區(qū)安裝第一啟動(dòng)系統(tǒng), 在第二程序存儲(chǔ)分區(qū)安裝第二啟動(dòng)系統(tǒng);
C、機(jī)頂盒開機(jī),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;
D、當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng)。所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,所述步驟D還包括
D1、當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng)。所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序、第一文件系統(tǒng)、第一應(yīng)用程序;第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序、第二文件系統(tǒng)、第二應(yīng)用程序。所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,所述步驟C還包括 C11、引導(dǎo)加載程序在啟動(dòng)過程中通過一跳轉(zhuǎn)的地址判斷出要引導(dǎo)的啟動(dòng)系統(tǒng);
C12、根據(jù)該跳轉(zhuǎn)的地址,檢測(cè)當(dāng)前引導(dǎo)的程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性, 如果不正確則跳到下一個(gè)程序存儲(chǔ)分區(qū),檢測(cè)下一個(gè)程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性。所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,第一程序存儲(chǔ)分區(qū)的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)。所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其中,所述第一啟動(dòng)系統(tǒng)和第二啟動(dòng)系統(tǒng)為相同的嵌入式Linux系統(tǒng)。一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其中,包括
分區(qū)劃分模塊,用于在機(jī)頂盒的Nand flash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū);
程序初始存儲(chǔ)模塊,用于將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū),并在第一程序存儲(chǔ)分區(qū)安裝第一啟動(dòng)系統(tǒng),在第二程序存儲(chǔ)分區(qū)安裝第二啟動(dòng)系統(tǒng);
程序檢測(cè)模塊,用于機(jī)頂盒開機(jī)時(shí),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;
第一恢復(fù)模塊,用于當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng)。所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其中,還包括
第二恢復(fù)模塊,用于當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng)。所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其中,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序、第一文件系統(tǒng)、第一應(yīng)用程序;第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序、第二文件系統(tǒng)、第二應(yīng)用程序。所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其中,第一程序存儲(chǔ)分區(qū)的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)。本發(fā)明所提供的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置,其可以利用雙系統(tǒng)來實(shí)現(xiàn)機(jī)頂盒快速恢復(fù)系統(tǒng)啟動(dòng),解決了嵌入式電子設(shè)備由于種種原因引起的系統(tǒng)啟動(dòng)不了的問題,而且可以自動(dòng)快速修復(fù),不影響系統(tǒng)的正常運(yùn)行時(shí)間,為用戶提供了方便,降低了維護(hù)成本。
圖1是本發(fā)明實(shí)施例的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法流程圖。圖2是本發(fā)明實(shí)施例的機(jī)頂盒的NAND FLASH存儲(chǔ)器分區(qū)結(jié)構(gòu)示意圖。圖3是本發(fā)明實(shí)施例的U-BOOT程序檢測(cè)原理流程圖。圖4是本發(fā)明實(shí)施例的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置原理框圖。
具體實(shí)施例方式本發(fā)明所提供的一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置,為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。 應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例提供的一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,如圖1所示,主要包括步驟
步驟S100、在機(jī)頂盒的Nand flash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū)。本實(shí)施例中,采用在機(jī)頂盒的NAND FLASH存儲(chǔ)器中(Nand-flash內(nèi)存是flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實(shí)現(xiàn)提供了廉價(jià)有效的解決方案)設(shè)置有兩個(gè)完整的程序存儲(chǔ)分區(qū),用來保存程序。譬如如圖2所示,本在機(jī)頂盒的 Nand flash存儲(chǔ)器500中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū)510,以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)520、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū) 530。其中,第一程序存儲(chǔ)分區(qū)520的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)530。步驟 S200、將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū)510,如圖2所示,并在第一程序存儲(chǔ)分區(qū)520安裝第一啟動(dòng)系統(tǒng),在第二程序存儲(chǔ)分區(qū)530安裝第二啟動(dòng)系統(tǒng),所述第一啟動(dòng)系統(tǒng)和第二啟動(dòng)系統(tǒng)為相同的嵌入式Linux系統(tǒng)。圖2所示,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng) (FS 1) 522、第一應(yīng)用程序(APP 1) 523,所述第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng) (FS 1) 522、第一應(yīng)用程序(APP 1) 523依次安裝在所述第一程序存儲(chǔ)分區(qū)520。第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序(KERNEL 2) 531、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序(APP 2) 533,所述第二內(nèi)核程序(KERNEL 2) 531、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序(APP 2) 依次安裝在所述第二程序存儲(chǔ)分區(qū)530。其中,如圖2所示,安裝在第一引導(dǎo)分區(qū)510的引導(dǎo)加載程序(u-boot,Universal Boot Loader,嵌入式Linux系統(tǒng)的引導(dǎo)程序)是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。Linux kernel (內(nèi)核程序,Iinux的內(nèi)核程序,簡稱KERNEL),如第一內(nèi)核程序和第二內(nèi)核程序是用于提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。內(nèi)核設(shè)備驅(qū)動(dòng)程序如第一內(nèi)核程序和第二內(nèi)核程序可以完全訪問硬件??梢苑奖愕匾阅K化 (modularize)的形式設(shè)置,并在系統(tǒng)運(yùn)行期間可直接裝載或卸載。文件系統(tǒng)(file system,簡稱FS)如第一文件系統(tǒng)和第二文件系統(tǒng)是包括在一個(gè)磁盤(包括光盤、軟盤、閃盤及其它存儲(chǔ)設(shè)備)或分區(qū)的目錄結(jié)構(gòu);其包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上的文件系統(tǒng)(EXT,CRAMFS等等,其中EXT是Linux擴(kuò)展文件系統(tǒng); CRAMFS是CRAMFS文件系統(tǒng)是專門針對(duì)閃存設(shè)計(jì)的只讀壓縮的文件系統(tǒng))。它是提供管理系統(tǒng)的各種配置文件以及系統(tǒng)執(zhí)行用戶應(yīng)用程序的良好運(yùn)行環(huán)境的載體。應(yīng)用程序(APP用戶程序)的第一應(yīng)用程序和第二應(yīng)用程序是用戶自定義的應(yīng)用程序,存放于文件系統(tǒng)之中。而本實(shí)施例方法的實(shí)現(xiàn)主要是在U-BOOT (引導(dǎo)加載程序)和應(yīng)用程序?qū)崿F(xiàn),U-BOOT (引導(dǎo)加載程序)檢測(cè),應(yīng)用程序后臺(tái)處理。在U-BOOT (啟動(dòng)引導(dǎo)程序)里實(shí)現(xiàn)開機(jī)檢測(cè)當(dāng)前所引導(dǎo)的程序的校驗(yàn)正確性,如果有問題則引導(dǎo)另一個(gè)程序;同時(shí)做程序錯(cuò)誤標(biāo)記,當(dāng)啟動(dòng)到應(yīng)用程序,則在后臺(tái)處理系統(tǒng)的恢復(fù)備份工作。具體如下
步驟S300、機(jī)頂盒開機(jī),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤。其中,U-BOOT程序檢測(cè)原理如圖3所示。U-boot (引導(dǎo)加載程序)在啟動(dòng)過程中有個(gè)跳轉(zhuǎn)的地址,在U-BOOT (引導(dǎo)加載程序)里可以根據(jù)這個(gè)跳轉(zhuǎn)地址判斷出要引導(dǎo)哪個(gè)程序,然后根據(jù)這個(gè)一道地址。先檢測(cè)當(dāng)前引導(dǎo)程序區(qū)的校驗(yàn)碼的正確性,如果不正確會(huì)檢測(cè)下個(gè)程序區(qū)的校驗(yàn)碼的正確性,跳到下個(gè)程序區(qū);如果正確就執(zhí)行當(dāng)前的程序區(qū)。機(jī)頂盒開機(jī),U-BOOT (引導(dǎo)加載程序)啟動(dòng),引導(dǎo)加載程序在啟動(dòng)過程中通過一跳轉(zhuǎn)的地址判斷出要引導(dǎo)的啟動(dòng)系統(tǒng);然后根據(jù)該跳轉(zhuǎn)的地址,檢測(cè)當(dāng)前引導(dǎo)的程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性,如果不正確則跳到下一個(gè)程序存儲(chǔ)分區(qū),檢測(cè)下一個(gè)程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性。具體如圖3所示,610、當(dāng)通過一跳轉(zhuǎn)的地址判斷出是從第一內(nèi)核程序(KERNEL 1) 啟動(dòng)時(shí)則啟動(dòng)第一啟動(dòng)系統(tǒng);611、在啟動(dòng)第一啟動(dòng)系統(tǒng)之前需檢測(cè)第一啟動(dòng)系統(tǒng)的程序完整性是否有錯(cuò)誤,即檢測(cè)第一啟動(dòng)系統(tǒng)的第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng)(FS 1)522、第一應(yīng)用程序(APP 1)523程序完整性是否有錯(cuò)誤?當(dāng)檢測(cè)第一啟動(dòng)系統(tǒng)有錯(cuò)誤即檢測(cè)失敗時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記;當(dāng)檢測(cè)第一啟動(dòng)系統(tǒng)沒有錯(cuò)誤即檢測(cè)通過則進(jìn)入步驟612、啟動(dòng)第一啟動(dòng)系統(tǒng)的第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng)(FS 1)522、 第一應(yīng)用程序(APP 1) 523。620、當(dāng)通過一跳轉(zhuǎn)的地址判斷出是從第二內(nèi)核程序(KERNEL 2)啟動(dòng)時(shí)則啟動(dòng)第二啟動(dòng)系統(tǒng)。621、在啟動(dòng)第二啟動(dòng)系統(tǒng)之前需檢測(cè)第一啟動(dòng)系統(tǒng)的程序完整性是否有錯(cuò)誤,即檢測(cè)第二啟動(dòng)系統(tǒng)的第二內(nèi)核程序(KERNEL 2) 523、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序(APP 2) 533程序完整性是否有錯(cuò)誤?當(dāng)檢測(cè)第二啟動(dòng)系統(tǒng)有錯(cuò)誤即檢測(cè)失敗時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記;當(dāng)檢測(cè)第二啟動(dòng)系統(tǒng)沒有錯(cuò)誤即檢測(cè)通過則進(jìn)入步驟 622、啟動(dòng)第二啟動(dòng)系統(tǒng)的第二內(nèi)核程序(KERNEL 2) 531、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序(APP 2) 533。步驟S410、當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)520內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)530的第二啟動(dòng)系統(tǒng)正確時(shí),則產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng)。步驟S420、而當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)530內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)520的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng)。如圖4所示,當(dāng)應(yīng)用程序完全啟動(dòng)后,后臺(tái)程序檢測(cè)程序的錯(cuò)誤標(biāo)記,如果是第一程序存儲(chǔ)分區(qū)520的系統(tǒng)有錯(cuò)誤,就從第二程序存儲(chǔ)分區(qū)530完全COPY程序到第一程序存儲(chǔ)分區(qū)520,如果是第二程序存儲(chǔ)分區(qū)530的系統(tǒng)有錯(cuò)誤,就從第一程序存儲(chǔ)分區(qū)520全完 COPY到第二程序存儲(chǔ)分區(qū)530,這樣就可以保證程序一直有備份,避免了程序的丟失而導(dǎo)致機(jī)器啟動(dòng)不了。由上可見,本發(fā)明實(shí)施例提供的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,提供了一種利用雙系統(tǒng)來實(shí)現(xiàn)機(jī)頂盒快速恢復(fù)系統(tǒng)啟動(dòng)問題的方法及裝置,其可以解決嵌入式電子設(shè)備由于種種原因引起的系統(tǒng)啟動(dòng)不了的問題,而且可以自動(dòng)快速修復(fù),不影響系統(tǒng)的正常運(yùn)行時(shí)間,為用戶提供了方便,降低了維護(hù)成本?;谏鲜鰧?shí)施例,本發(fā)明實(shí)施例還提供了一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,如圖4所示,包括
分區(qū)劃分模塊710,用于在機(jī)頂盒的Nand flash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū);具體如上述步驟SlOO如述。程序初始存儲(chǔ)模塊720,用于將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū),并在第一程序存儲(chǔ)分區(qū)安裝第一啟動(dòng)系統(tǒng),在第二程序存儲(chǔ)分區(qū)安裝第二啟動(dòng)系統(tǒng);;具體如上述步驟 S200如述。程序檢測(cè)模塊730,用于機(jī)頂盒開機(jī)時(shí),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;具體如上述步驟S300如述。第一恢復(fù)模塊740,用于當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng);具體如上述步驟S410如述。第二恢復(fù)模塊750,用于當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng);具體如上述步驟SlOO如述。其中,如圖2所示,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng)(FS 1) 522、第一應(yīng)用程序(APP 1) 523,所述第一內(nèi)核程序(KERNEL 1)521、第一文件系統(tǒng)(FS 1) 522、第一應(yīng)用程序(APP 1) 523依次安裝在所述第一程序存儲(chǔ)分區(qū)520。第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序(KERNEL 2) 531、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序(APP 2) 533,所述第二內(nèi)核程序(KERNEL 2) 531、第二文件系統(tǒng)(FS 2) 532、第二應(yīng)用程序 (APP 2)依次安裝在所述第二程序存儲(chǔ)分區(qū)530,其中,第一程序存儲(chǔ)分區(qū)的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)。綜上所述,本發(fā)明所提供的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置,其可以利用雙系統(tǒng)來實(shí)現(xiàn)機(jī)頂盒快速恢復(fù)系統(tǒng)啟動(dòng),解決了嵌入式電子設(shè)備由于種種原因引起的系統(tǒng)啟動(dòng)不了的問題,而且可以自動(dòng)快速修復(fù),不影響系統(tǒng)的正常運(yùn)行時(shí)間,為用戶提供了方便,降低了維護(hù)成本。應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,包括步驟A、在機(jī)頂盒的Nandflash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū);B、將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū),并在第一程序存儲(chǔ)分區(qū)安裝第一啟動(dòng)系統(tǒng), 在第二程序存儲(chǔ)分區(qū)安裝第二啟動(dòng)系統(tǒng);C、機(jī)頂盒開機(jī),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;D、當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,所述步驟D 還包括D1、當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序、第一文件系統(tǒng)、第一應(yīng)用程序;第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序、第二文件系統(tǒng)、第二應(yīng)用程序。
4.根據(jù)權(quán)利要求1所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,所述步驟C 還包括C11、引導(dǎo)加載程序在啟動(dòng)過程中通過一跳轉(zhuǎn)的地址判斷出要引導(dǎo)的啟動(dòng)系統(tǒng);C12、根據(jù)該跳轉(zhuǎn)的地址,檢測(cè)當(dāng)前引導(dǎo)的程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性, 如果不正確則跳到下一個(gè)程序存儲(chǔ)分區(qū),檢測(cè)下一個(gè)程序存儲(chǔ)分區(qū)的啟動(dòng)系統(tǒng)校驗(yàn)碼的正確性。
5.根據(jù)權(quán)利要求4所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,第一程序存儲(chǔ)分區(qū)的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)。
6.根據(jù)權(quán)利要求1-5任一所述的機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法,其特征在于,所述第一啟動(dòng)系統(tǒng)和第二啟動(dòng)系統(tǒng)為相同的嵌入式Linux系統(tǒng)。
7.一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其特征在于,包括分區(qū)劃分模塊,用于在機(jī)頂盒的Nand flash存儲(chǔ)器中設(shè)置用于存儲(chǔ)引導(dǎo)加載程序的第一引導(dǎo)分區(qū),以及設(shè)置用于存儲(chǔ)第一啟動(dòng)系統(tǒng)的第一程序存儲(chǔ)分區(qū)、用于存儲(chǔ)第二啟動(dòng)系統(tǒng)的第二程序存儲(chǔ)分區(qū);程序初始存儲(chǔ)模塊,用于將引導(dǎo)加載程序存儲(chǔ)在第一引導(dǎo)分區(qū),并在第一程序存儲(chǔ)分區(qū)安裝第一啟動(dòng)系統(tǒng),在第二程序存儲(chǔ)分區(qū)安裝第二啟動(dòng)系統(tǒng);程序檢測(cè)模塊,用于機(jī)頂盒開機(jī)時(shí),通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;第一恢復(fù)模塊,用于當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng)。
8.根據(jù)權(quán)利要求7所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其特征在于,還包括第二恢復(fù)模塊,用于當(dāng)檢測(cè)到存儲(chǔ)在第二程序存儲(chǔ)分區(qū)內(nèi)的第二啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第二啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第一啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第一程序存儲(chǔ)分區(qū)的第一啟動(dòng)系統(tǒng)完全拷貝到第二程序存儲(chǔ)分區(qū)作為新的第二啟動(dòng)系統(tǒng)。
9.根據(jù)權(quán)利要求7所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其特征在于,所述第一啟動(dòng)系統(tǒng)包括第一內(nèi)核程序、第一文件系統(tǒng)、第一應(yīng)用程序;第二啟動(dòng)系統(tǒng)包括第二內(nèi)核程序、第二文件系統(tǒng)、第二應(yīng)用程序。
10.根據(jù)權(quán)利要求7所述機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)裝置,其特征在于,第一程序存儲(chǔ)分區(qū)的下一個(gè)程序存儲(chǔ)分區(qū)為第二程序存儲(chǔ)分區(qū)。
全文摘要
本發(fā)明公開了一種機(jī)頂盒的嵌入式系統(tǒng)自動(dòng)恢復(fù)方法及裝置,所述方法包括通過引導(dǎo)加載程序進(jìn)行開機(jī)檢測(cè),檢測(cè)存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng),以及檢測(cè)存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)是否有錯(cuò)誤;當(dāng)檢測(cè)到存儲(chǔ)在第一程序存儲(chǔ)分區(qū)內(nèi)的第一啟動(dòng)系統(tǒng)錯(cuò)誤,存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)正確時(shí),產(chǎn)生第一啟動(dòng)系統(tǒng)錯(cuò)誤標(biāo)記,啟動(dòng)第二啟動(dòng)系統(tǒng);并自動(dòng)將存儲(chǔ)在第二程序存儲(chǔ)分區(qū)的第二啟動(dòng)系統(tǒng)完全拷貝到第一程序存儲(chǔ)分區(qū)作為新的第一啟動(dòng)系統(tǒng),其可以利用雙系統(tǒng)來實(shí)現(xiàn)機(jī)頂盒快速恢復(fù)系統(tǒng)啟動(dòng),而且可以自動(dòng)快速修復(fù),不影響系統(tǒng)的正常運(yùn)行時(shí)間,為用戶提供了方便,降低了維護(hù)成本。
文檔編號(hào)G06F11/14GK102289397SQ201110269908
公開日2011年12月21日 申請(qǐng)日期2011年9月13日 優(yōu)先權(quán)日2011年9月13日
發(fā)明者謝輝 申請(qǐng)人:全星科技(珠海)有限公司