專利名稱:基于分段式的嵌入式固件升級(jí)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件升級(jí)技術(shù),尤其是涉及一種采用分段式對(duì)嵌入式固件升級(jí)方法及裝置。
背景技術(shù):
嵌入式固件(Firmware)是由一組已經(jīng)編譯好的二進(jìn)制代碼組成,包含引導(dǎo)加載程序 (BootLoader )、內(nèi)核文件和文件系統(tǒng),通常存儲(chǔ)在板上的快閃存儲(chǔ)器(Flash)中,如圖1 所示。其中BootLoader保存在Flash的0x00000000地址,此地址為硬件系統(tǒng)上電啟動(dòng)運(yùn)行 的地址。BootLoader的作用是初始化最基本的硬件,把自身拷貝到RAM里運(yùn)行,把內(nèi)核 文件和文件系統(tǒng)拷貝到RAM里面,并在運(yùn)行完后跳轉(zhuǎn)到內(nèi)核文件去運(yùn)行內(nèi)核文件以及文件 系統(tǒng)。而通常BootLoader是不需要升級(jí)的,只需對(duì)內(nèi)核文件和文件系統(tǒng)進(jìn)行升級(jí)。
嵌入式固件升級(jí)是目前的電子產(chǎn)品必備的一項(xiàng)功能,而且升級(jí)的方便性和穩(wěn)定性直接關(guān) 乎產(chǎn)品的品質(zhì)問題。嵌入式固件升級(jí)時(shí),BootLoader保持不變,應(yīng)用程序放在文件系統(tǒng)中, 需要做應(yīng)用修改升級(jí)時(shí),會(huì)直接升級(jí)內(nèi)核文件或者文件系統(tǒng)。
一般電子產(chǎn)品的固件升級(jí)軟件是放在網(wǎng)絡(luò)上,客戶下載下來后,通過產(chǎn)品已做好的升級(jí) 程序,升級(jí)為此固件版本。通常為了防止用戶下載到破損的固件,廠商在固件發(fā)布前,通常 將升級(jí)文件用壓縮工具(例如WinZip或者WinRar)進(jìn)行打包,用戶下載后先進(jìn)行解壓,如 果解壓成功(WinZIP和WinRAR自帶文件完整性校驗(yàn)功能),再通過嵌入式系統(tǒng)提供的升級(jí) 方法將固件下載到設(shè)備中。
由于現(xiàn)在的電子產(chǎn)品功能越來越多,應(yīng)用程序也越來越大,而應(yīng)用程序是放在文件系統(tǒng) 中,導(dǎo)致文件系統(tǒng)越來越大,因此對(duì)文件系統(tǒng)升級(jí)時(shí)會(huì)耗費(fèi)較長(zhǎng)時(shí)間,給固件升級(jí)增加不穩(wěn) 定和不安全因素若在升級(jí)過程中出4晉,則文件系統(tǒng)容易^皮損壞,甚至導(dǎo)致電子產(chǎn)品不能繼 續(xù)正常使用。
因此,有必要改善和提高對(duì)電子產(chǎn)品進(jìn)行嵌入式固件升級(jí)的穩(wěn)定性和安全性。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種采用分段式對(duì)嵌入式固件升級(jí)方法及裝置,把應(yīng)用程序和文件 系統(tǒng)分開存儲(chǔ),并且通過配置文件來生成升級(jí)程序控制對(duì)應(yīng)用程序進(jìn)行分^L式的單獨(dú)升級(jí), 從而提高固件升級(jí)的穩(wěn)定性和安全性。
為解決上述技術(shù)問題,本發(fā)明公開一種基于分段式的嵌入式固件升級(jí)方法,其包括步驟 獲取對(duì)文件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí)凄t據(jù)包; 從所述升級(jí)數(shù)據(jù)包中提取配置文件,由所述配置文件分別對(duì)所述固件進(jìn)行升級(jí)前檢查, 生成包含對(duì)所述固件進(jìn)行升級(jí)操作的指令的升級(jí)程序; 執(zhí)行升級(jí)程序,對(duì)固件進(jìn)行分段式升級(jí)處理。 優(yōu)選的,所述對(duì)固件進(jìn)行分段式升級(jí)處理的步驟包括 對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理; 對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序進(jìn)行單獨(dú)的升級(jí)處理。
優(yōu)選的,所迷配置文件中設(shè)置有各個(gè)應(yīng)用程序之間的依賴關(guān)系和兼容關(guān)系的信息;所 述升級(jí)前檢查包括
對(duì)內(nèi)核文件、文件系統(tǒng)和各個(gè)應(yīng)用程序分別進(jìn)行版本比較和校驗(yàn); 對(duì)各個(gè)應(yīng)用程序進(jìn)行依賴關(guān)系和兼容關(guān)系的檢查。 優(yōu)選的,所述升級(jí)操作的指令至少包括對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理的文件系統(tǒng)刪除和寫入 指令、內(nèi)核文件刪除和寫入指令;
對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序的刪除刪除和寫入指令。
優(yōu)選的,所述固件存儲(chǔ)于快閃存儲(chǔ)器中,該快閃存儲(chǔ)器包括分別用于存儲(chǔ)引導(dǎo)加栽程 序、內(nèi)核文件、文件系統(tǒng)的存儲(chǔ)區(qū);存儲(chǔ)應(yīng)用程序的應(yīng)用存儲(chǔ)區(qū);備份原始的內(nèi)核文件、文 件系統(tǒng)和應(yīng)用程序的備份區(qū)。
優(yōu)選的,當(dāng)升級(jí)出錯(cuò)時(shí)的處理方式包括通過觸發(fā)將所述備份區(qū)中的所述原始的內(nèi)核文 件、文件系統(tǒng)和應(yīng)用程序分別復(fù)制至所述內(nèi)核文件存儲(chǔ)區(qū)、所迷文件系統(tǒng)存儲(chǔ)區(qū)和所迷應(yīng)用 存儲(chǔ)區(qū);控制重新啟動(dòng)所述引導(dǎo)加載程序。
優(yōu)選的,所迷升級(jí)數(shù)據(jù)包的結(jié)構(gòu)包括分別單獨(dú)存儲(chǔ)的配置文件版本號(hào)和校驗(yàn)碼、配置 文件、內(nèi)核文件版本號(hào)和校驗(yàn)碼、內(nèi)核文件、文件系統(tǒng)版本號(hào)和沖i驗(yàn)碼、文件系統(tǒng)、多個(gè)應(yīng) 用程序及對(duì)應(yīng)的版本號(hào)和校驗(yàn)碼。
另外,本發(fā)明還公開一種基于分段式的嵌入式固件升級(jí)裝置,其包括
升級(jí)數(shù)據(jù)包獲取模塊,用于獲取對(duì)文件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí) 數(shù)據(jù)包;
升級(jí)程序生成模塊,用于從所述升級(jí)數(shù)據(jù)包中提取配置文件,由所述配置文件分別對(duì)所 述固件進(jìn)行升級(jí)前檢查,生成包含對(duì)所述固件進(jìn)行升級(jí)操作的指令的升級(jí)程序;
分段升級(jí)處理模塊,執(zhí)行升級(jí)程序,對(duì)固件進(jìn)行分段式升級(jí)處理。
優(yōu)選的,所迷升級(jí)程序生成模塊包括 版本比較與校驗(yàn)單元,用于對(duì)內(nèi)核文件、文件系統(tǒng)和各個(gè)應(yīng)用程序分別進(jìn)行版本比較和校驗(yàn);
應(yīng)用程序關(guān)系檢查單元,用于對(duì)各個(gè)應(yīng)用程序進(jìn)行依賴關(guān)系和兼容關(guān)系的檢查;
其中,所述配置文件中設(shè)置有各個(gè)應(yīng)用程序之間的依賴關(guān)系和兼容關(guān)系的信息。
優(yōu)選的,所述分段升級(jí)處理模塊包括
整體升級(jí)單元,用于對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理; 單獨(dú)升級(jí)單元,用于對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序進(jìn)行單獨(dú)的升級(jí)處理。 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果
1、 由于本發(fā)明可以由配置文件做檢測(cè)且生成控制固件升級(jí)的升級(jí)程序,故升級(jí)過程無 需人工千預(yù),簡(jiǎn)化了升級(jí)步驟;
2、 本發(fā)明采用分段式升級(jí)方法,由于可以選擇性的對(duì)某個(gè)應(yīng)用程序升級(jí),故可以減少 升級(jí)時(shí)間,提高升級(jí)效率;
3、 由于本發(fā)明可單獨(dú)對(duì)某個(gè)應(yīng)用程序,或?qū)ξ募到y(tǒng)或內(nèi)核文件進(jìn)行整體升級(jí),使固 件升級(jí)細(xì)化,從而增加固件升級(jí)過程的穩(wěn)定性;
4、 由于本發(fā)明在Flash中劃分出的專門的備份區(qū),以便很好的處理升級(jí)處理情況,故可 以規(guī)避掉許多升級(jí)出錯(cuò)而導(dǎo)致問題。
圖1是現(xiàn)有固件在Flash中的分4殳存儲(chǔ)結(jié)構(gòu)示意圖; 圖2是本發(fā)明對(duì)存儲(chǔ)固件的Flash所定義的分j殳存儲(chǔ)結(jié)構(gòu)示意圖; 圖3是本發(fā)明 一個(gè)較佳實(shí)施例的流程示意圖; 圖4是本發(fā)明的升級(jí)凄t據(jù)包的文件結(jié)構(gòu)示意圖; 圖5是圖4中生成升級(jí)程序的一個(gè)較佳實(shí)施例的流程示意圖; 圖6是本發(fā)明出現(xiàn)升級(jí)出錯(cuò)時(shí)的處理流程示意圖; 圖7是本發(fā)明升級(jí)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明通過升級(jí)數(shù)據(jù)包中的配置文件(Configure )對(duì)固件各應(yīng)用程序的兼容關(guān)系和依賴 關(guān)系進(jìn)行檢查,生成一個(gè)包含了所有升級(jí)操作指令的升級(jí)程序(upgrade.sh),通過執(zhí)行升級(jí) 程序來對(duì)采用預(yù)設(shè)分段存儲(chǔ)結(jié)構(gòu)存儲(chǔ)在Flash中的嵌入式固件進(jìn)行升級(jí)。
如圖2所示,為便于對(duì)嵌入式固件進(jìn)行升級(jí),將Flash的存儲(chǔ)結(jié)構(gòu)定義為5部分分別用于存 儲(chǔ)引導(dǎo)加載程序(BootLoader)、內(nèi)核文件、文件系統(tǒng)的存儲(chǔ)區(qū),以及應(yīng)用存儲(chǔ)區(qū)和備份區(qū)。
其中,Bootloader為電子產(chǎn)品的硬件系統(tǒng)上電啟動(dòng)運(yùn)行的程序,無需進(jìn)行升級(jí);內(nèi)核文 件是操作系統(tǒng)的內(nèi)部核心程序,它向外部提供了對(duì)設(shè)備的核心管理調(diào)用;文件系統(tǒng)包括根文 件系統(tǒng)和建立于Flash之上文件系統(tǒng),為除開應(yīng)用程序的文件系統(tǒng)和跳轉(zhuǎn)到應(yīng)用存儲(chǔ)區(qū)的跳轉(zhuǎn) 程序或指令的集合;應(yīng)用存儲(chǔ)區(qū)存放各個(gè)應(yīng)用程序和可控制對(duì)里面的任何一個(gè)應(yīng)用程序單獨(dú) 升級(jí)的配置文件(Configure),它在整個(gè)系統(tǒng)中是以文件系統(tǒng)(例如yaffs)的方式存在,并 且掛載在系統(tǒng)的一個(gè)目錄下,可以像操作普通的存儲(chǔ)設(shè)備一樣;備份區(qū)對(duì)電子產(chǎn)品出廠時(shí)的 內(nèi)核文件、文件系統(tǒng)和應(yīng)用存儲(chǔ)區(qū)進(jìn)行備份,且不做升級(jí)處理。
當(dāng)電子產(chǎn)品上電時(shí),從Bootloader啟動(dòng)并由它把內(nèi)核文件和文件系統(tǒng)拷貝到RAM中,并 跳轉(zhuǎn)到它們的RAM地址執(zhí)行,當(dāng)內(nèi)核文件和文件系統(tǒng)啟動(dòng)完成后,文件系統(tǒng)中的跳轉(zhuǎn)指令 或程序直接調(diào)用應(yīng)用存儲(chǔ)區(qū)中的應(yīng)用程序。
如圖3所示,本發(fā)明采用如下步驟來實(shí)現(xiàn)
步驟S110:從網(wǎng)站或其他外接設(shè)備中獲取用于固件升級(jí)的升級(jí)數(shù)據(jù)包。
結(jié)合圖4所示,升級(jí)數(shù)據(jù)包包括配置文件的版本號(hào)&校驗(yàn)碼、配置文件、內(nèi)核文件的 版本號(hào)&校驗(yàn)碼、內(nèi)核文件、文件系統(tǒng)的版本號(hào)&校驗(yàn)碼、文件系統(tǒng),以及多個(gè)應(yīng)用程序的 版本號(hào)&校驗(yàn)碼和相應(yīng)的應(yīng)用程序。
步驟S120:從升級(jí)數(shù)據(jù)包中提取配置文件,由配置文件檢測(cè)對(duì)固件中文件系統(tǒng)、內(nèi)核文 件、各應(yīng)用程序的版本號(hào)及進(jìn)行校驗(yàn),其目的是升級(jí)前對(duì)固件的各部分進(jìn)行兼容關(guān)系和依賴 關(guān)系檢查,以確定固件需要進(jìn)行升級(jí)的部分,以及固件各部分進(jìn)行升級(jí)的順序等,根據(jù)檢查 結(jié)果生成一個(gè)包含了所有升級(jí)操作指令的升級(jí)程序(upgrade.sh)。
電子產(chǎn)品各個(gè)應(yīng)用程序之間常常會(huì)出現(xiàn)相互依賴和兼容的情形,比如應(yīng)用程序A為主 程序,應(yīng)用程序B和C均為應(yīng)用程序A的子程序,并且,應(yīng)用程序B依賴于依賴于某個(gè)版本之 上的應(yīng)用程序C,若在此版本之前的版本,運(yùn)行應(yīng)用程序B就會(huì)出錯(cuò);應(yīng)用程序B的某個(gè)版本 和應(yīng)用程序C的某個(gè)版本互相不兼容,兩個(gè)同時(shí)存在的話,應(yīng)用程序運(yùn)行起來會(huì)出錯(cuò)。因此, 為防止此情況影響對(duì)固件升級(jí)處理,需要由配置文件對(duì)固件進(jìn)行兼容關(guān)系和依賴關(guān)系檢查。
假設(shè)應(yīng)用程序A、 B、 C和D的當(dāng)前版本均為1.0;升級(jí)數(shù)據(jù)包中對(duì)應(yīng)的升級(jí)文件的版本為 應(yīng)用程序A: 1.1;應(yīng)用程序C: 1.0;應(yīng)用程序D: 1.1;且配置文件中體現(xiàn)的各個(gè)應(yīng)用程序的 依賴關(guān)系為應(yīng)用程序A依賴于應(yīng)用程序B和C,且要求應(yīng)用程序B的版本大于l.l。則生成升 級(jí)程序的過程如圖5所示
步驟S121:由配置文件檢查升級(jí)數(shù)據(jù)包中相應(yīng)的升級(jí)文件的版本是否大于電子產(chǎn)品的固 件中應(yīng)用程序A、 B、 C和D的當(dāng)前版本,并利用校驗(yàn)碼進(jìn)行校驗(yàn)處理。
步驟S 122:由于升級(jí)數(shù)據(jù)包中只有應(yīng)用程序A和D的升級(jí)文件的版本大于電子產(chǎn)品的固 件中應(yīng)用程序A和D的當(dāng)前版本,確定只需對(duì)應(yīng)用程序A和D進(jìn)行升級(jí)處理。
步驟S123:由配置文件對(duì)應(yīng)用程序A和D作兼容關(guān)系和依賴關(guān)系檢查,獲知體現(xiàn)在配置 文件中的依賴關(guān)系的依賴關(guān)系為應(yīng)用程序A依賴于應(yīng)用程序B和C,且要求應(yīng)用程序B的 版本大于l.l;由于應(yīng)用程序A存在依賴關(guān)系,而應(yīng)用程序D不存在依賴關(guān)系,故決定先升級(jí) 應(yīng)用程序D。
步驟S124:升級(jí)應(yīng)用程序D,將升級(jí)后應(yīng)用程序D的版本號(hào)^"改為1.1。 步驟S 125:再次對(duì)升級(jí)應(yīng)用程序A啦文依賴關(guān)系檢查。步驟S126:由于升級(jí)應(yīng)用程序A依賴于升級(jí)應(yīng)用程序B和C,且要求應(yīng)用程序B的版本大 于U;'因此,需判斷應(yīng)用程序B的版本是否大于l.l,若是,則轉(zhuǎn)步驟S127,否則轉(zhuǎn)步驟S129。 步驟S127:升級(jí)應(yīng)用程序A,將升級(jí)后應(yīng)用程序A的版本號(hào)i^改為l丄 步驟S128:生成升級(jí)程序(upgrade.sh )。
步驟S129:當(dāng)不滿足升級(jí)條件時(shí),退出并提示升級(jí)出錯(cuò)和出錯(cuò)原因。
其中,升級(jí)程序包含所有需要升級(jí)操作的指令,包括內(nèi)核文件的擦除和寫入、文件系
統(tǒng)的擦除和寫入、應(yīng)用存儲(chǔ)區(qū)中的各個(gè)應(yīng)用程序的刪除或?qū)懭搿?br>
步驟S130:通過執(zhí)行升級(jí)程序來對(duì)采用預(yù)設(shè)分段存儲(chǔ)結(jié)構(gòu)存儲(chǔ)在Flash中的嵌入式固件進(jìn)
行分段升級(jí)。
根據(jù)升級(jí)程序中的操作指令,對(duì)內(nèi)核文件和文件系統(tǒng)做整體升級(jí);對(duì)于應(yīng)用存儲(chǔ)區(qū)中的 應(yīng)用程序,由于固件在Flash中采用分段存儲(chǔ)結(jié)構(gòu),而升級(jí)lt據(jù)包也采用各個(gè)應(yīng)用程序單獨(dú)設(shè) 置的分段式文件結(jié)構(gòu),因此,可對(duì)應(yīng)用程序進(jìn)行單獨(dú)升級(jí),例如有一個(gè)應(yīng)用程序A和兩個(gè) 可供應(yīng)用程序A調(diào)用的應(yīng)用程序B和C,若升級(jí)數(shù)據(jù)包中只對(duì)應(yīng)用程序只對(duì)B啦文了修改,則只 需對(duì)應(yīng)用程序B進(jìn)fl"單獨(dú)升級(jí),而其他的應(yīng)用程序A和C均不需改變。
如圖6所示,如果在升級(jí)過程中出現(xiàn)意外,導(dǎo)致升級(jí)出錯(cuò),且產(chǎn)品無法正常使用時(shí),解 決此問題有如下方法
步驟S210:由Bootloader啟動(dòng)電子產(chǎn)品。
步驟S220:人為操作,做一個(gè)觸發(fā)按鍵,若偵測(cè)到指定的按鍵觸發(fā),轉(zhuǎn)步驟S230,否則 轉(zhuǎn)步驟S240。
步驟S230:將備份區(qū)里對(duì)內(nèi)核文件、文件系統(tǒng)和應(yīng)用程序的備份拷貝到Flash中相應(yīng)的地 址,再重啟,再在應(yīng)用層做升級(jí)。
步驟S240:若偵測(cè)不到指定的按鍵觸發(fā),則由Bootloader把內(nèi)核文件和文件系統(tǒng)拷貝到 RAM中,并跳轉(zhuǎn)到它們的RAM地址執(zhí)行,當(dāng)內(nèi)核文件和文件系統(tǒng)啟動(dòng)完成后,文件系統(tǒng)中 的跳轉(zhuǎn)指令或程序直接調(diào)用應(yīng)用存儲(chǔ)區(qū)中的應(yīng)用程序,進(jìn)入正常運(yùn)行。
如圖7所示,本發(fā)明公開的對(duì)嵌入式固件升級(jí)裝置包括升級(jí)數(shù)據(jù)包獲取模塊310、升 級(jí)程序生成模塊320和分段升級(jí)處理模塊330。所述升級(jí)數(shù)據(jù)包獲取模塊310用于獲取對(duì)文 件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí)數(shù)據(jù)包;所述升級(jí)程序生成模塊320用于 從所迷升級(jí)數(shù)據(jù)包中提取配置文件,由所迷配置文件分別對(duì)所述固件進(jìn)行升級(jí)前^r查,生成 包含對(duì)所述固件進(jìn)行升級(jí)操作的指令的升級(jí)程序;所述分段升級(jí)處理模塊330執(zhí)行升級(jí)程 序,對(duì)固件進(jìn)行分段式升級(jí)處理。
其中,所述升級(jí)程序生成模塊320包括版本比較與校驗(yàn)單元321和應(yīng)用程序關(guān)系檢查 單元322。所述版本比較與校驗(yàn)單元321用于對(duì)內(nèi)核文件、文件系統(tǒng)和各個(gè)應(yīng)用程序分別進(jìn) 行版本比較和校驗(yàn);所述應(yīng)用程序關(guān)系檢查單元322用于對(duì)各個(gè)應(yīng)用程序進(jìn)行依賴關(guān)系和兼 容關(guān)系的檢查。其中,配置文件中設(shè)置有各個(gè)應(yīng)用程序之間的依賴關(guān)系和兼容關(guān)系的信息。
所述分段升級(jí)處理模塊330包括整體升級(jí)單元331和單獨(dú)升級(jí)單元332。所述整體升 級(jí)單元331用于對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理;所述單獨(dú) 升級(jí)單元332用于對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序進(jìn)行單獨(dú)的升級(jí)處理。
綜上,本發(fā)明采用分段式升級(jí)方法,由于可以選擇性的對(duì)某個(gè)應(yīng)用程序升級(jí),故可以減 少升級(jí)時(shí)間,提高升級(jí)效率;其次,由于本發(fā)明可單獨(dú)對(duì)某個(gè)應(yīng)用程序,或?qū)ξ募到y(tǒng)或內(nèi) 核文件進(jìn)行整體升級(jí),使固件升級(jí)細(xì)化,從而增加固件升級(jí)過程的穩(wěn)定性;再次,由于本發(fā) 明可以由配置文件估文;險(xiǎn)測(cè)且生成控制固件升級(jí)的升級(jí)程序,故升級(jí)過程無需人工千預(yù),簡(jiǎn)化 了升級(jí)步驟;最后,由于本發(fā)明在Flash中劃分出的專門的備份區(qū),以便很好的處理升級(jí)處 理情況,故可以規(guī)避掉許多升級(jí)出錯(cuò)而導(dǎo)致問題。
權(quán)利要求
1、一種基于分段式的嵌入式固件升級(jí)方法,其特征在于,包括步驟獲取對(duì)文件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí)數(shù)據(jù)包;從所述升級(jí)數(shù)據(jù)包中提取配置文件,由所述配置文件進(jìn)行升級(jí)前檢查,生成升級(jí)程序;執(zhí)行升級(jí)程序,對(duì)固件進(jìn)行分段式升級(jí)處理。
2、 根據(jù)權(quán)利要求1所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,所述對(duì)固 件進(jìn)行分段式升級(jí)處理的步驟包括對(duì)需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理;
3、 根據(jù)權(quán)利要求1所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,所述升級(jí) 前才企查包括對(duì)內(nèi)核文件、文件系統(tǒng)和各個(gè)應(yīng)用程序分別進(jìn)行版本比較和校驗(yàn); 對(duì)各個(gè)應(yīng)用程序進(jìn)4亍依賴關(guān)系和兼容關(guān)系的;險(xiǎn)查。
4、 根據(jù)權(quán)利要求1所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,所述升級(jí) 操作的指令至少包括對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理的文件系統(tǒng)刪除和寫入 指令、內(nèi)核文件刪除和寫入指令;對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序的刪除刪除和寫入指令。
5、 根據(jù)權(quán)利要求4所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,當(dāng)升級(jí)出 錯(cuò)時(shí)的處理方式包括通過觸發(fā)將所迷備份區(qū)中的所述原始的內(nèi)核文件、文件系統(tǒng)和應(yīng)用程序分別復(fù)制至所述 內(nèi)核文件存儲(chǔ)區(qū)、所述文件系統(tǒng)存儲(chǔ)區(qū)和所述應(yīng)用存儲(chǔ)區(qū); 控制重新啟動(dòng)所述引導(dǎo)加載程序。
6、 根據(jù)權(quán)利要求1所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,所述固件 存儲(chǔ)于快閃存儲(chǔ)器中,該快閃存儲(chǔ)器包括分別用于存儲(chǔ)引導(dǎo)加載程序、內(nèi)核文件、文件系 統(tǒng)的存儲(chǔ)區(qū);存儲(chǔ)應(yīng)用程序的應(yīng)用存儲(chǔ)區(qū);備份原始的內(nèi)核文件、文件系統(tǒng)和應(yīng)用程序的備 份區(qū)。
7、 根據(jù)權(quán)利要求1所述的基于分段式的嵌入式固件升級(jí)方法,其特征在于,所述升級(jí) 數(shù)據(jù)包的結(jié)構(gòu)包括分別單獨(dú)存儲(chǔ)的配置文件版本號(hào)和校驗(yàn)碼、配置文件、內(nèi)核文件版本號(hào) 和校驗(yàn)碼、內(nèi)核文件、文件系統(tǒng)版本號(hào)和校驗(yàn)碼、文件系統(tǒng)、多個(gè)應(yīng)用程序及對(duì)應(yīng)的版本號(hào) 和才吏-瞼碼。
8、 一種基于分段式的嵌入式固件升級(jí)裝置,其特征在于,包栝升級(jí)數(shù)據(jù)包獲取模塊,用于獲取對(duì)文件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí)數(shù)據(jù)包;升級(jí)程序生成模塊,用于從所述升級(jí)數(shù)據(jù)包中提取配置文件,由所述配置文件進(jìn)行升級(jí)前檢查,生成升級(jí)程序;分段升級(jí)處理模塊,執(zhí)行升級(jí)程序,對(duì)固件進(jìn)行分段式升級(jí)處理。
9、 根據(jù)權(quán)利要求8所述的基于分段式的嵌入式固件升級(jí)裝置,其特征在于,所述升級(jí) 程序生成模塊包括版本比較與校驗(yàn)單元,用于對(duì)內(nèi)核文件、文件系統(tǒng)和各個(gè)應(yīng)用程序分別進(jìn)行版本比較和 校驗(yàn);應(yīng)用程序關(guān)系檢查單元,用于對(duì)各個(gè)應(yīng)用程序進(jìn)行依賴關(guān)系和兼容關(guān)系的檢查; 其中,所述配置文件中設(shè)置有各個(gè)應(yīng)用程序之間的依賴關(guān)系和兼容關(guān)系的信息。
10、 根據(jù)權(quán)利要求8所述的基于分段式的嵌入式固件升級(jí)裝置,其特征在于,所述分段 升級(jí)處理模塊包括整體升級(jí)單元,用于對(duì)固件中需要升級(jí)處理的文件系統(tǒng)、內(nèi)核文件進(jìn)行整體升級(jí)處理; 單獨(dú)升級(jí)單元,用于對(duì)固件中需要升級(jí)處理的各個(gè)應(yīng)用程序進(jìn)行單獨(dú)的升級(jí)處理。
全文摘要
本發(fā)明公開一種基于分段式的嵌入式固件升級(jí)方法,其包括步驟獲取對(duì)文件系統(tǒng)和應(yīng)用程序分開存儲(chǔ)的固件進(jìn)行升級(jí)的升級(jí)數(shù)據(jù)包;從所述升級(jí)數(shù)據(jù)包中提取配置文件,由所述配置文件分別對(duì)所述固件進(jìn)行升級(jí)前檢查,生成包含對(duì)所述固件進(jìn)行升級(jí)操作的指令的升級(jí)程序;執(zhí)行升級(jí)程序,對(duì)固件進(jìn)行分段式升級(jí)處理。本發(fā)明還公開一種基于分段式的嵌入式固件升級(jí)裝置。本發(fā)明通過配置文件來生成升級(jí)程序控制對(duì)應(yīng)用程序進(jìn)行分段式的單獨(dú)升級(jí),提高了固件升級(jí)的穩(wěn)定性和安全性。
文檔編號(hào)G06F9/445GK101425018SQ20081021824
公開日2009年5月6日 申請(qǐng)日期2008年12月5日 優(yōu)先權(quán)日2008年12月5日
發(fā)明者巧 呂 申請(qǐng)人:深圳創(chuàng)維數(shù)字技術(shù)股份有限公司