專利名稱:一種嵌入式系統(tǒng)和嵌入式軟件升級(jí)方法
一種嵌入式系統(tǒng)和嵌入式軟件升級(jí)方法
技術(shù)領(lǐng) 域本發(fā)明涉及電子技術(shù)領(lǐng)域,更具體地說,涉及一種嵌入式系統(tǒng)和嵌入式軟件升級(jí)方法。
背景技術(shù):
嵌入式系統(tǒng)是指用于執(zhí)行獨(dú)立功能的專用計(jì)算機(jī)系統(tǒng)。它由包括微處理器、定時(shí) 器、微控制器、存儲(chǔ)器、傳感器等一系列微電子芯片與器件,和嵌入在存儲(chǔ)器中的微型操作 系統(tǒng)、控制應(yīng)用軟件組成,共同實(shí)現(xiàn)諸如實(shí)時(shí)控制、監(jiān)視、管理、移動(dòng)計(jì)算、數(shù)據(jù)處理等各種 自動(dòng)化處理任務(wù)。嵌入式系統(tǒng)以應(yīng)用為中心,以微電子技術(shù)、控制技術(shù)、計(jì)算機(jī)技術(shù)和通訊 技術(shù)為基礎(chǔ),強(qiáng)調(diào)硬件軟件的協(xié)同性與整合性,軟件與硬件可剪裁,以滿足系統(tǒng)對(duì)功能、成 本、體積和功耗等要求。嵌入式軟件就是基于嵌入式系統(tǒng)設(shè)計(jì)的軟件,它也是計(jì)算機(jī)軟件的 一種,同樣由程序及其文檔組成,可細(xì)分成系統(tǒng)軟件、支撐軟件、應(yīng)用軟件三類,是嵌入式系 統(tǒng)的重要組成部分。嵌入式系統(tǒng)設(shè)備在升級(jí)過程中,可能存在某些原因,如突然斷電、誤操 作等,造成升級(jí)失敗,這要求對(duì)軟件升級(jí)的可靠性提供保障,確保升級(jí)成功?,F(xiàn)有技術(shù)中,通常的做法是采用可讀可寫的閃存(flash memory)作為升級(jí)專用存 儲(chǔ)器,內(nèi)部存放升級(jí)鏡像文件,通過燒錄座將鏡像文件燒錄到閃存里或者進(jìn)入升級(jí)模式執(zhí) 行相應(yīng)的命令來升級(jí)程序。這種方式雖然升級(jí)的實(shí)現(xiàn)過程比較簡(jiǎn)單,但是存在如下缺點(diǎn)如 果嵌入式軟件有更新需要頻繁升級(jí)軟件則不方便,升級(jí)過程中遇到斷電,誤操作等則需要 重新擦除已有鏡像文件燒入新鏡像文件,增加了技術(shù)支持人員的操作的復(fù)雜性,從而增加 了成本。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有升級(jí)容易發(fā)生誤操作、復(fù)雜、不方便的缺 陷,提供一種嵌入式系統(tǒng)和嵌入式軟件升級(jí)方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種嵌入式系統(tǒng),其包括升級(jí)壓縮包裝載模塊,用于從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,讀取所述升級(jí)壓 縮包的校驗(yàn)碼;升級(jí)壓縮包解壓模塊,用于將預(yù)置的校驗(yàn)碼與所述讀取的校驗(yàn)碼進(jìn)行比較,如果 相同,則開始解壓所述升級(jí)壓縮包,如果不同則程序退出,提示升級(jí)失?。豢截惸K,用于將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;檢測(cè)模塊,用于檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行 升級(jí)。其中,優(yōu)選的,該系統(tǒng)還包括升級(jí)狀態(tài)顯示模塊,用于在顯示終端上顯示升級(jí)狀 態(tài)。其中,進(jìn)一步的,所述升級(jí)狀態(tài)包括升級(jí)成功狀態(tài)或者升級(jí)失敗狀態(tài)。
其中,進(jìn)一步的,所述拷貝模塊,用于將解壓所述升級(jí)壓縮包后得到內(nèi)核程序復(fù) 制到內(nèi)核程序目錄,將解壓所述升級(jí)壓縮包后得到保護(hù)程序復(fù)制到保護(hù)程序目錄,將解壓 所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到應(yīng)用程序目錄。本發(fā)明還提供一種嵌入式軟件升級(jí)方法,其包括步驟從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,獲取所述升級(jí)壓縮包的校驗(yàn)碼;將預(yù)置的校驗(yàn)碼與所述獲取的校驗(yàn)碼進(jìn)行比較,如果相同,則開始解壓所述升級(jí) 壓縮包,如果不同則程序退出,提示升級(jí)失敗;將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí)。其中,檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí);或者 提示升級(jí)失敗,之后進(jìn)一步包括步驟在顯示終端上顯示升級(jí)狀態(tài)。其中,進(jìn)一步的,所述將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目 錄;具體包括將解壓所述升級(jí)壓縮包后得到內(nèi)核程序復(fù)制到內(nèi)核程序目錄,將解壓所述升級(jí)壓 縮包后得到保護(hù)程序復(fù)制到保護(hù)程序目錄,將解壓所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到 應(yīng)用程序目錄。實(shí)施本發(fā)明的技術(shù)方案,具有以下有益效果使嵌入式系統(tǒng)設(shè)備在升級(jí)過程中,防 止可能存在的某些原因,如突然斷電、誤操作等,造成的升級(jí)失敗,為嵌入式系統(tǒng)設(shè)備的軟 件升級(jí)的可靠性提供保障,確保升級(jí)成功。適用于在已有閃存分區(qū)基礎(chǔ)上,對(duì)需要頻繁升級(jí) 的設(shè)備頻繁升級(jí)。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中圖1是本發(fā)明實(shí)施例提供的嵌入式軟件升級(jí)方法的流程圖;圖2是本發(fā)明實(shí)施例提供的嵌入式軟件升級(jí)方法的應(yīng)用實(shí)施例流程圖;圖3是本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。本發(fā)明實(shí)施例提供一種嵌入式軟件升級(jí)方法,如圖1所示,包括步驟11、從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,獲取所述升級(jí)壓縮包的校驗(yàn)碼;所述外界設(shè)備包括U盤、移動(dòng)硬盤等,所述升級(jí)壓縮包是嵌入式系統(tǒng)所要升級(jí)的 壓縮包。12、將預(yù)置的校驗(yàn)碼與所述獲取的校驗(yàn)碼進(jìn)行比較,如果相同,則開始解壓所述升 級(jí)壓縮包,如果不同則程序退出,提示升級(jí)失??; 該預(yù)置的校驗(yàn)碼是嵌入式系統(tǒng)中已經(jīng)存放的校驗(yàn)碼,把該已經(jīng)存放的校驗(yàn)碼與該壓縮包的校驗(yàn)碼進(jìn)行對(duì)比。
13、將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;將解壓所述升級(jí)壓縮包后得到內(nèi)核程序復(fù)制到內(nèi)核程序目錄,將解壓所述升級(jí)壓 縮包后得到保護(hù)程序復(fù)制到保護(hù)程序目錄,將解壓所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到 應(yīng)用程序目錄。具體為將內(nèi)核(kernel)程序(vmlinux.bin)復(fù)制到閃存(flash)分區(qū)/ boot/目錄下,將內(nèi)核(kernel)包含文件系統(tǒng)的保護(hù)程序(vmlinuxjescue. bin)復(fù)制到閃 存(flash)分區(qū)/boot/目錄下,該保護(hù)程序用于升級(jí)失敗時(shí),作為內(nèi)核(kernel)程序保護(hù) 程序來升級(jí),將應(yīng)用程序(home, img)拷貝到閃存(flash)分區(qū)/dev/mmc6目錄下。14、檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí)。具體為檢測(cè)復(fù)制到閃存的內(nèi)核程序(vmlinux. bin)是否正確,檢測(cè)拷貝到閃存 kernel包含文件系統(tǒng)的保護(hù)程序(vmlinux_rescue.bin)是否正確,檢測(cè)復(fù)制到閃存的應(yīng) 用程序(home, img)是否正確。如果正確則進(jìn)行升級(jí)。如果不正確,則升級(jí)失敗,向用戶顯 示升級(jí)失敗狀態(tài)。下面結(jié)合圖2描述上述實(shí)施例的一個(gè)應(yīng)用實(shí)施例。如圖2所示,該嵌入式軟件升 級(jí)方法應(yīng)用實(shí)施例包括步驟101、裝載升級(jí)壓縮包;102、判斷該裝載是否失敗,如果失敗,則進(jìn)行步驟117,退出壓縮包的升級(jí),如果沒 有失敗,則進(jìn)行步驟103;103、驗(yàn)證升級(jí)包校驗(yàn)碼是否正確;104、判斷驗(yàn)證校驗(yàn)碼是否失?。蝗绻?,則進(jìn)行步驟117 ;如果沒有失敗,則進(jìn) 行步驟105 ;105、退出主程序;106、執(zhí)行升級(jí)程序;107、判斷執(zhí)行升級(jí)程序是否失敗,如果失敗,則進(jìn)行步驟117,如果沒有失敗,則進(jìn) 行步驟108 ;108、解壓縮升級(jí)壓縮包;109、判斷解壓縮升級(jí)壓縮包是否失敗,如果失敗,則進(jìn)行步驟117,如果沒有失敗, 則進(jìn)行步驟110 ;110、將內(nèi)核(kernel)程序(vmlinux. bin)復(fù)制到閃存(flash)分區(qū) /boot/ 目錄 下;111、檢測(cè)所述內(nèi)核程序(vmlinux.bin)是否正確,如果正確,則進(jìn)行步驟112,如 果不正確,則進(jìn)行步驟117;112、將內(nèi)核(kernel)包含文件系統(tǒng)的保護(hù)程序(vmlinux rescue, bin)復(fù)制到閃 存(flash)分區(qū)/boot/目錄下;113、檢測(cè)拷貝到閃存kernel包含文件系統(tǒng)的保護(hù)程序(vmlinuxjescue. bin)是 否正確,如果不正確,則進(jìn)行步驟117,如果正確,則進(jìn)行步驟114 ;114、將應(yīng)用程序(home, img)拷貝到閃存(flash)分區(qū)/dev/mmc6目錄下;115、檢測(cè)復(fù)制到閃存的應(yīng)用程序(home, img)是否正確,如果不正確,則進(jìn)行步驟 118,如果正確,則進(jìn)行步驟116 ;
116、軟 件升級(jí)成功,重新啟動(dòng)設(shè)備,進(jìn)行步驟118。117、軟件升級(jí)失敗,下次重新升級(jí),進(jìn)行步驟118 ;118、退出該升級(jí)過程。本發(fā)明實(shí)施例還提供一種嵌入式系統(tǒng),如圖3所示,該系統(tǒng)包括升級(jí)壓縮包裝載模塊201,用于從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,讀取所述升級(jí) 壓縮包的校驗(yàn)碼;升級(jí)壓縮包解壓模塊202,用于將預(yù)置的校驗(yàn)碼與所述讀取的校驗(yàn)碼進(jìn)行比較,如 果相同,則開始解壓所述升級(jí)壓縮包,如果不同則程序退出,提示升級(jí)失?。豢截惸K203,用于將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄; 具體的將解壓所述升級(jí)壓縮包后得到內(nèi)核程序復(fù)制到內(nèi)核程序目錄,將解壓所述升級(jí)壓 縮包后得到保護(hù)程序復(fù)制到保護(hù)程序目錄,將解壓所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到 應(yīng)用程序目錄。檢測(cè)模塊204,用于檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn) 行升級(jí)。進(jìn)一步的實(shí)施例中,該系統(tǒng)還包括升級(jí)狀態(tài)顯示模塊205,用于在顯示終端上 顯示升級(jí)狀態(tài)。其中,所述升級(jí)狀態(tài)包括升級(jí)成功狀態(tài)或者升級(jí)失敗狀態(tài)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種嵌入式系統(tǒng),其特征在于,包括升級(jí)壓縮包裝載模塊,用于從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,讀取所述升級(jí)壓縮包 的校驗(yàn)碼;升級(jí)壓縮包解壓模塊,用于將預(yù)置的校驗(yàn)碼與所述讀取的校驗(yàn)碼進(jìn)行比較,如果相同, 則開始解壓所述升級(jí)壓縮包,如果不同則程序退出,提示升級(jí)失??;拷貝模塊,用于將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;檢測(cè)模塊,用于檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí)。
2.如權(quán)利要求1所述嵌入式系統(tǒng),其特征在于,還包括升級(jí)狀態(tài)顯示模塊,用于在顯 示終端上顯示升級(jí)狀態(tài)。
3.如權(quán)利要求2所述嵌入式系統(tǒng),其特征在于,所述升級(jí)狀態(tài)包括升級(jí)成功狀態(tài)或者 升級(jí)失敗狀態(tài)。
4.如權(quán)利要求1所述嵌入式系統(tǒng),其特征在于,拷貝模塊,用于將解壓所述升級(jí)壓縮 包后得到內(nèi)核程序復(fù)制到內(nèi)核程序目錄,將解壓所述升級(jí)壓縮包后得到保護(hù)程序復(fù)制到保 護(hù)程序目錄,將解壓所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到應(yīng)用程序目錄。
5.一種嵌入式軟件升級(jí)方法,其特征在于,包括步驟從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,獲取所述升級(jí)壓縮包的校驗(yàn)碼;將預(yù)置的校驗(yàn)碼與所述獲取的校驗(yàn)碼進(jìn)行比較,如果相同,則開始解壓所述升級(jí)壓縮 包,如果不同則程序退出,提示升級(jí)失?。粚⒔鈮核錾?jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí)。
6.如權(quán)利要求5所述嵌入式軟件升級(jí)方法,其特征在于,檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目 錄的程序是否正確,如果正確則進(jìn)行升級(jí);或者提示升級(jí)失敗,之后進(jìn)一步包括步驟在顯示終端上顯示升級(jí)狀態(tài)。
7.如權(quán)利要求5所述嵌入式軟件升級(jí)方法,其特征在于,所述將解壓所述升級(jí)壓縮包 后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;具體包括將解壓所述升級(jí)壓縮包后得到內(nèi)核程序復(fù)制到內(nèi)核程序目錄,將解壓所述升級(jí)壓縮包 后得到保護(hù)程序復(fù)制到保護(hù)程序目錄,將解壓所述升級(jí)壓縮包后得到應(yīng)用程序復(fù)制到應(yīng)用 程序目錄。
全文摘要
本發(fā)明涉及一種嵌入式系統(tǒng)和嵌入式軟件升級(jí)方法,該系統(tǒng)包括升級(jí)壓縮包裝載模塊,用于從外界存儲(chǔ)設(shè)備上裝載升級(jí)壓縮包,讀取所述升級(jí)壓縮包的校驗(yàn)碼;升級(jí)壓縮包解壓模塊,用于將預(yù)置的校驗(yàn)碼,與所述讀取的校驗(yàn)碼進(jìn)行比較,如果相同,則開始解壓所述升級(jí)壓縮包,如果不同則程序退出,提示升級(jí)失??;拷貝模塊,用于將解壓所述升級(jí)壓縮包后得到程序分別復(fù)制到相對(duì)應(yīng)的目錄;檢測(cè)模塊,用于檢測(cè)所述復(fù)制到相對(duì)應(yīng)的目錄的程序是否正確,如果正確則進(jìn)行升級(jí)。為嵌入式系統(tǒng)設(shè)備的軟件升級(jí)的可靠性提供保障,確保升級(jí)成功。適用于在已有閃存分區(qū)基礎(chǔ)上,對(duì)需要頻繁升級(jí)的設(shè)備頻繁升級(jí)。
文檔編號(hào)G06F9/445GK102043634SQ200910110580
公開日2011年5月4日 申請(qǐng)日期2009年10月23日 優(yōu)先權(quán)日2009年10月23日
發(fā)明者何銀南, 劉紅冰, 周曉俊, 管偉, 蔡章盛, 邱揚(yáng)英 申請(qǐng)人:康佳集團(tuán)股份有限公司