專利名稱:一種軟件自動升級控制方法、裝置及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于軟件領(lǐng)域,尤其涉及一種軟件自動升級控制方法、裝置及設(shè)備。
背景技術(shù):
為了解決產(chǎn)品使用過程中出現(xiàn)的問題和不斷完善產(chǎn)品功能,網(wǎng)絡(luò)電視和IPTV機 頂盒等產(chǎn)品目前都有帶有軟件升級模塊,不斷更新其產(chǎn)品軟件功能以更好的滿足用戶使用需求。常用的軟件升級策略有開機自動升級和進入升級頁面手動升級兩種,在開機自動 升級時,用戶開機后系統(tǒng)自動檢查當(dāng)前軟件版本和網(wǎng)絡(luò)上的最新版本,如果發(fā)現(xiàn)有更新版 本則立即進入升級系統(tǒng)完成升級任務(wù)。在進入升級頁面手動升級時,用戶點擊菜單中的升 級按鈕,完成升級任務(wù)。采用這兩種升級手段升級時,在執(zhí)行升級的過程中用戶只能被動等待,停止使用 系統(tǒng)提供的娛樂功能,占用較多用戶對網(wǎng)絡(luò)電視和IPTV機頂盒等的使用時間,一旦升級過 程中發(fā)生故障就必須重新啟動進入備份系統(tǒng)繼續(xù)升級直到升級成功為止。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種軟件自動升級控制方法,旨在解決現(xiàn)有軟件升 級時需要停止設(shè)備的運行,影響用戶正常使用設(shè)備的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種軟件自動升級控制方法,所述方法包括下述步 驟將存儲空間配置為兩個互為備份的代碼區(qū);軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并將啟動標(biāo)識指向最新 升級的代碼區(qū)代碼。本發(fā)明實施例的另一目的在于提供一種軟件自動升級控制裝置,所述裝置包括存儲空間配置單元,用于將存儲空間配置為兩個互為備份的代碼區(qū);以及升級控制單元,用于在軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并 將啟動標(biāo)識指向最新升級的代碼區(qū)代碼。本發(fā)明實施例的另一目的在于一種包含上述軟件自動升級控制裝置的設(shè)備。本發(fā)明實施例的另一目的在于一種包含上述軟件自動升級控制裝置的網(wǎng)絡(luò)電視。本發(fā)明實施例的另一目的在于一種包含上述軟件自動升級控制裝置的IPTV機頂
品.ο本發(fā)明實施例將存儲空間劃分為互為備份的兩個代碼區(qū),在軟件升級時升級處于 空閑狀態(tài)的代碼區(qū)中的代碼,不影響設(shè)備的正常運行,從而不影響用戶對設(shè)備的正常使用, 有效提高了升級模塊的健壯性和容錯性,避免了在升級過程中出現(xiàn)的異常對系統(tǒng)的破壞, 而且由于升級可以在后臺進行,不占用用戶使用時間。
圖1是本發(fā)明實施例提供的存儲空間劃分示意圖;圖2是本發(fā)明實施例提供的軟件自動升級控制方法的實現(xiàn)流程圖;圖3是本發(fā)明實施例提供的系統(tǒng)啟動方法的實現(xiàn)流程圖;圖4是本發(fā)明實施例提供的軟件自動升級控制裝置的結(jié)構(gòu)圖;圖5是本發(fā)明實施例提供的升級控制單元的結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。本發(fā)明實施例中,將存儲空間劃分為互為備份的第一代碼區(qū)和第二代碼區(qū),在軟 件升級時,選擇對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,升級完成后將系統(tǒng)標(biāo)志更新為 最新升級的代碼區(qū),使得系統(tǒng)重啟時使用最新升級的代碼區(qū)中的代碼啟動。如圖1所示,在本發(fā)明實施例中,將設(shè)備的存儲區(qū)域劃分為引導(dǎo)加載區(qū) (Bootloader)、第一代碼區(qū)、第二代碼區(qū)和分區(qū)配置區(qū),其中引導(dǎo)加載區(qū)為不可代碼區(qū)域,存儲引導(dǎo)加載程序,引導(dǎo)加載程序是系統(tǒng)加電后運 行的第一段軟件代碼,在操作系統(tǒng)內(nèi)核運行之前運行,BootLoader的主要運行任務(wù)就是將 內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行。通過這段程序,可以初始 化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便 為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。第一代碼區(qū)和第二代碼區(qū)互為備份,存儲系統(tǒng)運行程序,包括三個部分操作系統(tǒng)內(nèi)核,例如Linux內(nèi)核;文件系統(tǒng),例如SF編碼庫;以及用戶應(yīng)用程序,例如網(wǎng)絡(luò)電視(NTV)應(yīng)用。分區(qū)配置區(qū)存儲分區(qū)配置信息。軟件升級過程可以根據(jù)系統(tǒng)的資源使用情況在CPU空閑時進行,升級開始時系 統(tǒng)下載升級包,然后判斷當(dāng)前是運行在第一代碼區(qū)還是第二代碼區(qū),如果當(dāng)前系統(tǒng)使用 的第一代碼區(qū)代碼時,可升級第二代碼區(qū)中的代碼,反之亦然。當(dāng)升級成功完成時修改 Bootloader配置域中的啟動標(biāo)識,改為使用剛剛升級過的代碼。重新啟動,系統(tǒng)即可完成正 常的升級流程。當(dāng)升級過程中出現(xiàn)斷電或其他異常時,對于第二代碼區(qū)的升級可能會失敗,但重 啟后不影響用戶的正常使用,用戶仍然可以使用第一代碼區(qū)的代碼,直到用戶再次升級第 二代碼區(qū)的代碼,直到成功。重啟后,Bootloader自動跳轉(zhuǎn)到第二代碼區(qū),使用第二代碼區(qū) 的代碼啟動。圖2示出了本發(fā)明實施例提供的軟件升級控制方法的實現(xiàn)流程,詳述如下在步驟S201中,讀取CPU資源利用率;在步驟S202中,檢測本地軟件版本,判斷是否需要升級,是則執(zhí)行步驟S203,否則 返回執(zhí)行步驟S201 ;
在步驟S203中,連接網(wǎng)絡(luò),下載升級包;在步驟S204中,讀取升級標(biāo)志,該升級標(biāo)志標(biāo)識了升級哪個代碼區(qū)內(nèi)的代碼;在本發(fā)明實施例中,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級。在步驟S205中,根據(jù)升級標(biāo)志選擇對應(yīng)的代碼區(qū),執(zhí)行升級過程;在步驟S206中,判斷升級是否完成,是則執(zhí)行步驟S207,否則返回執(zhí)行步驟 S201 ;在步驟S207中,更新啟動標(biāo)識,將啟動標(biāo)識指向最新升級的代碼區(qū)內(nèi)的代碼。
如圖3所示,當(dāng)系統(tǒng)重啟后,首先進入Bootloader,在Bootloader配置域中包含啟 動標(biāo)識,該標(biāo)識決定系統(tǒng)當(dāng)前應(yīng)該使用第一代碼區(qū)還是第二代碼區(qū),如果使用第一代碼區(qū), Bootloader將載入第一代碼區(qū)的內(nèi)核(kernel)地址進而引導(dǎo)應(yīng)用程序完成啟動過程。在步驟S301 中,Bootloader 啟動;在步驟S302中,讀取啟動標(biāo)識;在步驟S303中,根據(jù)啟動標(biāo)識,載入最新升級的代碼區(qū)代碼啟動。圖4示出了本發(fā)明實施例提供的軟件自動升級控制裝置的結(jié)構(gòu),為了便于說明, 僅示出了與本發(fā)明實施例相關(guān)的部分。該軟件自動升級控制裝置可以是內(nèi)置于網(wǎng)絡(luò)電視、IPTV機頂盒等設(shè)備中。存儲空間配置單元41將存儲空間配置為兩個互為備份的代碼區(qū),包括第一代碼 區(qū)和第二代碼區(qū)。作為本發(fā)明的一個實施例,存儲空間配置單元41將存儲空間配置為四個區(qū)引導(dǎo)加載區(qū),用于存儲引導(dǎo)加載程序;互為備份的第一代碼區(qū)和第二代碼區(qū),用于存儲系統(tǒng)運行程序;以及分區(qū)配置區(qū),用于存儲分區(qū)配置信息。升級控制單元42在軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并將 啟動標(biāo)識指向最新升級的代碼區(qū)代碼。圖5示出了本發(fā)明實施例提供的升級控制單元的結(jié)構(gòu),為了便于說明,僅示出了 與本發(fā)明實施例相關(guān)的部分。CPU利用率讀取模塊421讀取CPU資源利用率。升級判斷模塊422在CPU空閑時,檢測本地軟件版本,判斷是否需要升級。升級包下載模塊423在升級判斷模塊422判斷需要升級時,連接網(wǎng)絡(luò),下載升級 包。升級代碼區(qū)選擇模塊4M讀取升級標(biāo)志,根據(jù)升級標(biāo)志選擇處于空閑狀態(tài)的代碼 區(qū),運行升級包,執(zhí)行升級。啟動標(biāo)識更新模塊425判斷升級是否完成,在升級完成后更新啟動標(biāo)識,將啟動 標(biāo)識指向新升級完成的代碼區(qū)代碼。本發(fā)明實施例將存儲空間劃分為互為備份的兩個代碼區(qū),在軟件升級時升級處于 空閑狀態(tài)的代碼區(qū)中的代碼,不影響設(shè)備的正常運行,從而不影響用戶對設(shè)備的正常使用, 有效提高了升級模塊的健壯性和容錯性,避免了在升級過程中出現(xiàn)的異常對系統(tǒng)的破壞, 而且由于升級可以在后臺進行,不占用用戶使用時間。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種軟件自動升級控制方法,其特征在于,所述方法包括下述步驟 將存儲空間配置為兩個互為備份的代碼區(qū);軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并將啟動標(biāo)識指向最新升級 的代碼區(qū)代碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述對處于空閑狀態(tài)的代碼區(qū)的代碼進行 升級,并將啟動標(biāo)識指向最新升級的代碼區(qū)代碼的步驟具體為讀取CPU資源利用率;檢測本地軟件版本,判斷是否需要升級;在判斷需要升級時,連接網(wǎng)絡(luò),下載升級包;讀取升級標(biāo)志,根據(jù)升級標(biāo)志選擇處于空閑狀態(tài)的代碼區(qū),執(zhí)行升級; 判斷升級是否完成;在升級完成后更新啟動標(biāo)識,將啟動標(biāo)識指向新升級完成的代碼區(qū)代碼。
3.如權(quán)利要求1所述的方法,其特征在于,所述存儲空間包括 引導(dǎo)加載區(qū),用于存儲引導(dǎo)加載程序;互為備份的第一代碼區(qū)和第二代碼區(qū),用于存儲系統(tǒng)運行程序;以及 分區(qū)配置區(qū),用于存儲分區(qū)配置信息。
4.一種軟件自動升級控制裝置,其特征在于,所述裝置包括存儲空間配置單元,用于將存儲空間配置為兩個互為備份的代碼區(qū);以及 升級控制單元,用于在軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并將啟 動標(biāo)識指向最新升級的代碼區(qū)代碼。
5.如權(quán)利要求4所述的裝置,其特征在于,所述升級控制單元包括 CPU利用率讀取模塊,用于讀取CPU資源利用率;升級判斷模塊,用于在CPU空閑時,檢測本地軟件版本,判斷是否需要升級; 升級包下載模塊,用于在所述升級判斷模塊判斷需要升級時,連接網(wǎng)絡(luò),下載升級包; 升級代碼區(qū)選擇模塊,用于讀取升級標(biāo)志,根據(jù)升級標(biāo)志選擇處于空閑狀態(tài)的代碼區(qū), 執(zhí)行升級;以及啟動標(biāo)識更新模塊,用于判斷升級是否完成,在升級完成后更新啟動標(biāo)識,將啟動標(biāo)識 指向新升級完成的代碼區(qū)代碼。
6.如權(quán)利要求4所述的裝置,其特征在于,所述存儲空間包括 引導(dǎo)加載區(qū),用于存儲引導(dǎo)加載程序;互為備份的第一代碼區(qū)和第二代碼區(qū),用于存儲系統(tǒng)運行程序;以及 分區(qū)配置區(qū),用于存儲分區(qū)配置信息。
7.一種包含權(quán)利要求4的軟件自動升級控制裝置的設(shè)備。
8.一種包含權(quán)利要求4的軟件自動升級控制裝置的網(wǎng)絡(luò)電視。
9.一種包含權(quán)利要求4的軟件自動升級控制裝置的IPTV機頂盒。
全文摘要
本發(fā)明適用于軟件領(lǐng)域,提供了一種軟件自動升級控制方法、裝置及設(shè)備,所述方法包括下述步驟將存儲空間配置為兩個互為備份的代碼區(qū);軟件升級時,對處于空閑狀態(tài)的代碼區(qū)的代碼進行升級,并將啟動標(biāo)識指向最新升級的代碼區(qū)代碼。本發(fā)明將存儲空間劃分為互為備份的兩個代碼區(qū),在軟件升級時升級處于空閑狀態(tài)的代碼區(qū)中的代碼,不影響設(shè)備的正常運行,從而不影響用戶對設(shè)備的正常使用,有效提高了升級模塊的健壯性和容錯性,避免了在升級過程中出現(xiàn)的異常對系統(tǒng)的破壞,而且由于升級可以在后臺進行,不占用用戶使用時間。
文檔編號G06F9/445GK102110000SQ20091018947
公開日2011年6月29日 申請日期2009年12月25日 優(yōu)先權(quán)日2009年12月25日
發(fā)明者王叢華 申請人:康佳集團股份有限公司