一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種設(shè)備升級(jí)方法,尤其是涉及一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法。
【背景技術(shù)】
[0002]目前,嵌入式系統(tǒng)基本由兩部分組成:引導(dǎo)程序、操作系統(tǒng)。
[0003]引導(dǎo)程序:用于初始化CPU以及外圍的器件,主要目的是引導(dǎo)操作系統(tǒng)正常運(yùn)行。
[0004]操作系統(tǒng):嵌入式系統(tǒng)的核心,主要用于管理多任務(wù)的調(diào)度;管理內(nèi)存以及外圍設(shè)備等一些基礎(chǔ)操作。
[0005]另根據(jù)不同的應(yīng)用場(chǎng)景,某些嵌入式系統(tǒng)還包含有一些配置文件,這些配置文件內(nèi)含有設(shè)備信息以及各個(gè)系統(tǒng)部分運(yùn)行所需的參數(shù)等。
[0006]在實(shí)際的生產(chǎn)開(kāi)發(fā)過(guò)程中,為了達(dá)到縮短開(kāi)發(fā)時(shí)間及節(jié)省生產(chǎn)成本等目的,通常同一開(kāi)發(fā)團(tuán)隊(duì)會(huì)選擇同一款CPU應(yīng)用于多個(gè)嵌入式產(chǎn)品。使用同一款CPU的設(shè)備,可以運(yùn)行同樣的引導(dǎo)程序和操作系統(tǒng),并加載不同的配置信息,以實(shí)現(xiàn)不同的功能。不同的CPU卻由于架構(gòu)和編譯規(guī)則等差異,不能共用同樣的引導(dǎo)程序和操作系統(tǒng)程序。
[0007]在實(shí)際的由同一款CPU開(kāi)發(fā)、且包含配置文件的嵌入式設(shè)備的升級(jí)維護(hù)中,由于嵌入式設(shè)備品種多、分布雜等因素。經(jīng)常遇到以下問(wèn)題:一、升級(jí)文件多,不利于設(shè)備維護(hù)人員對(duì)升級(jí)文件管理,文件容易混淆,影響設(shè)備升級(jí)效率;二、設(shè)備維護(hù)人員誤使用其他文件升級(jí),導(dǎo)致設(shè)備無(wú)法正常運(yùn)行,甚至無(wú)法啟動(dòng);三、設(shè)備升級(jí)維護(hù)時(shí),漏升級(jí)部分系統(tǒng)文件,導(dǎo)致設(shè)備工作不正常等。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于:針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,提供一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,解決現(xiàn)有由同一款CPU開(kāi)發(fā)、且包含配置文件的嵌入式設(shè)備的升級(jí)維護(hù)非常不方便的問(wèn)題。
[0009]本發(fā)明的發(fā)明目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
[0010]一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,該方法包括以下步驟:
[0011](I)將Instb包下載到待升級(jí)設(shè)備的內(nèi)存中,并解析Instb包的頭部信息;
[0012](2)確認(rèn)下載的文件是否為Instb包,如果是則進(jìn)行步驟(3),否則退出升級(jí);
[0013](3)效驗(yàn)Instb包的完整性,如果完整,則進(jìn)行步驟(4),否則退出升級(jí);
[0014](4)讀入待升級(jí)設(shè)備內(nèi)部的設(shè)備信息,并逐一和Instb包內(nèi)的設(shè)備表進(jìn)行匹配,如果有和該設(shè)備信息匹配的,則進(jìn)行步驟(5),否則退出升級(jí);
[0015](5)根據(jù)Instb包內(nèi)的子文件信息表,逐一從Instb包中提取出所包含的子文件,如果提取的子文件為設(shè)備配置文件,則讀出該配置文件內(nèi)的設(shè)備信息,如果該設(shè)備信息和待升級(jí)設(shè)備內(nèi)部的設(shè)備信息一致,則對(duì)配置文件進(jìn)行升級(jí)并繼續(xù)讀取下一個(gè)子文件。
[0016]優(yōu)選的,所述Instb包由頭部信息、設(shè)備表、子文件信息表和子文件組成,所述頭部信息包括用于標(biāo)記該文件為Instb包的魔法數(shù)、用于驗(yàn)證文件完整性的文件效驗(yàn)信息,所述設(shè)備表羅列出Instb包支持的所有設(shè)備的設(shè)備信息,所述子文件包括引導(dǎo)程序文件、操作系統(tǒng)文件及多種設(shè)備的配置文件。
[0017]優(yōu)選的,所述確認(rèn)下載的文件是否為Instb包的步驟包括:判斷該文件的魔法數(shù)和Instb定義的魔法數(shù)是否一致,若一致則是Instb包。
[0018]優(yōu)選的,所述效驗(yàn)Instb包的完整性的方法包括:根據(jù)Instb包的頭部信息的內(nèi)容對(duì)Instb包進(jìn)行校驗(yàn)值計(jì)算,計(jì)算完成后和Instb包內(nèi)的文件效驗(yàn)信息進(jìn)行比較,如果兩者一致,則說(shuō)明Instb包是完整的。
[0019]優(yōu)選的,所述待升級(jí)設(shè)備內(nèi)設(shè)有設(shè)備信息,不同待升級(jí)設(shè)備內(nèi)的設(shè)備信息不同。
[0020]優(yōu)選的,所述步驟(5)還包括步驟:如果提取的子文件不是設(shè)備配置文件,則直接對(duì)待升級(jí)設(shè)備進(jìn)行升級(jí),并繼續(xù)讀取下一個(gè)子文件。
[0021]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0022]1、將多種設(shè)備的多個(gè)升級(jí)文件合并成一個(gè)文件,然后用該文件對(duì)多種設(shè)備進(jìn)行升級(jí),大大的減少了升級(jí)文件的數(shù)量,有利于提高設(shè)備升級(jí)效率;
[0023]2、先檢驗(yàn)升級(jí)文件的正確性和完整性,可有效的避免使用非法的文件升級(jí)造成的設(shè)備無(wú)法啟動(dòng)的問(wèn)題,其中非法文件指非升級(jí)文件或數(shù)據(jù)傳輸過(guò)程中被破壞的升級(jí)文件;
[0024]3、進(jìn)行匹配設(shè)備信息,有效的避免了使用非本設(shè)備的升級(jí)文件進(jìn)行升級(jí),而導(dǎo)致的設(shè)備工作不正?;蛟O(shè)備無(wú)法啟動(dòng)的問(wèn)題;
[0025]4、程序自動(dòng)選擇升級(jí),減少了手動(dòng)操作環(huán)節(jié),同時(shí)也避免了維護(hù)人員漏升級(jí)和重復(fù)升級(jí)的問(wèn)題,且大大縮短升級(jí)時(shí)間。
【附圖說(shuō)明】
[0026]圖1為Instb包的數(shù)據(jù)結(jié)構(gòu)圖;
[0027]圖2為本發(fā)明效驗(yàn)Instb包完整性的流程圖;
[0028]圖3為本發(fā)明進(jìn)行待升級(jí)設(shè)備支持匹配的流程圖;
[0029]圖4本發(fā)明進(jìn)行Instb子文件升級(jí)流程圖。
【具體實(shí)施方式】
[0030]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0031]實(shí)施例
[0032]本發(fā)明主要用于由同一款CPU開(kāi)發(fā)、且包含配置文件的嵌入式設(shè)備的升級(jí)維護(hù)。本發(fā)明的原理為:首先給每個(gè)待升級(jí)的嵌入式設(shè)備分配一個(gè)特殊的設(shè)備信息(如設(shè)備號(hào)),此信息不與其他設(shè)備的相同,并將這個(gè)信息,保存在設(shè)備的特定的配置文件內(nèi),出廠時(shí)寫(xiě)入設(shè)備的Flash,出廠后不再更改。然后將這些待升級(jí)的嵌入式設(shè)備所共用的引導(dǎo)程序文件和操作系統(tǒng)文件以及各設(shè)備的配置文件壓縮為一個(gè)文件包,這里將這個(gè)文件包命名為Instb包。最后,通過(guò)Instb包給各設(shè)備升級(jí)。
[0033]Instb包由以下幾部分組成(如圖1所示):頭部信息、設(shè)備表、子文件信息表和子文件。其中頭部信息包含魔法數(shù)、文件校驗(yàn)信息等;魔法數(shù)的作用是標(biāo)記該文件為Instb包;文件校驗(yàn)信息包含Instb長(zhǎng)度以及Instb的校驗(yàn)值,用來(lái)驗(yàn)證文件的完整性;設(shè)備表用于羅列出該Instb包可支持的所有的設(shè)備的信息;子文件可以為引導(dǎo)程序文件、操作系統(tǒng)文件及多種設(shè)備的配置文件等。這些文件按特定的壓縮方式壓縮,并依次排列在文件的末尾。并將這些文件的所有信息存放在子文件信息表內(nèi),供升級(jí)時(shí)解壓、提取。
[0034]使用Instb包對(duì)設(shè)備進(jìn)行升級(jí)時(shí),主要步驟如下:
[0035]第一步,將Instb包下載到待升級(jí)設(shè)備的內(nèi)存中,并解析Instb包的頭部信息。
[0036]第二步,如圖2所示,首先確認(rèn)下載的文件是否為Instb包,具體確認(rèn)方法為,判斷該文件的魔法數(shù)和Instb包定義的魔法數(shù)是否一致,如果一致則進(jìn)行下一步操作,否則退出升級(jí),并提示用戶升級(jí)文件不正確;然后檢查Instb包的完整性,具體方法為,根據(jù)Instb包的頭部信息的內(nèi)容對(duì)Instb包進(jìn)行校驗(yàn)值計(jì)算,計(jì)算完成后和Instb包內(nèi)的原始校驗(yàn)值比較,如果兩者一致,則說(shuō)明Instb包是完整的,否則退出升級(jí),并提升用戶升級(jí)文件有錯(cuò)誤。
[0037]第三步,如圖3所示,讀入待升級(jí)設(shè)備內(nèi)部的設(shè)備信息,并逐一和Instb包內(nèi)的設(shè)備表進(jìn)行匹配。如果有和該待升級(jí)設(shè)備信息匹配的,則進(jìn)行下一步升級(jí)操作,否則退出升級(jí),并提示用戶該升級(jí)文件并不支持這個(gè)設(shè)備。
[0038]第四步,如圖4所示,根據(jù)Instb包內(nèi)的子文件信息表,逐一從Instb包中提取出所包含的子文件。如果提取的子文件為配置文件,則讀出該配置文件內(nèi)的設(shè)備信息,如果該設(shè)備信息和待升級(jí)設(shè)備內(nèi)保存的設(shè)備信息一致,則對(duì)配置文件進(jìn)行升級(jí),否則忽略此配置文件。如果該文件不是配置文件,則直接進(jìn)行升級(jí)。直到完成所有子文件的升級(jí)。
[0039]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,應(yīng)當(dāng)指出的是,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,該方法包括以下步驟: (1)將Instb包下載到待升級(jí)設(shè)備的內(nèi)存中,并解析Instb包的頭部信息; (2)確認(rèn)下載的文件是否為Instb包,如果是則進(jìn)行步驟(3),否則退出升級(jí); (3)效驗(yàn)Instb包的完整性,如果完整,則進(jìn)行步驟(4),否則退出升級(jí); (4)讀入待升級(jí)設(shè)備內(nèi)部的設(shè)備信息,并逐一和Instb包內(nèi)的設(shè)備表進(jìn)行匹配,如果有和該設(shè)備信息匹配的,則進(jìn)行步驟(5),否則退出升級(jí); (5)根據(jù)Instb包內(nèi)的子文件信息表,逐一從Instb包中提取出所包含的子文件,如果提取的子文件為設(shè)備配置文件,則讀出該配置文件內(nèi)的設(shè)備信息,如果該設(shè)備信息和待升級(jí)設(shè)備內(nèi)部的設(shè)備信息一致,則對(duì)配置文件進(jìn)行升級(jí)并繼續(xù)讀取下一個(gè)子文件。
2.根據(jù)權(quán)利要求1所述的一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,所述Instb包由頭部信息、設(shè)備表、子文件信息表和子文件組成,所述頭部信息包括用于標(biāo)記該文件為Instb包的魔法數(shù)、用于驗(yàn)證文件完整性的文件效驗(yàn)信息,所述設(shè)備表羅列出Instb包支持的所有設(shè)備的設(shè)備信息,所述子文件包括引導(dǎo)程序文件、操作系統(tǒng)文件及多種設(shè)備的配置文件。
3.根據(jù)權(quán)利要求1所述的一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,所述確認(rèn)下載的文件是否為Instb包的步驟包括:判斷該文件的魔法數(shù)和Instb定義的魔法數(shù)是否一致,若一致則是Instb包。
4.根據(jù)權(quán)利要求1所述的一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,所述效驗(yàn)Instb包的完整性的方法包括:根據(jù)Instb包的頭部信息的內(nèi)容對(duì)Instb包進(jìn)行校驗(yàn)值計(jì)算,計(jì)算完成后和Instb包內(nèi)的文件效驗(yàn)信息進(jìn)行比較,如果兩者一致,則說(shuō)明Instb包是完整的。
5.根據(jù)權(quán)利要求1所述的一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,所述待升級(jí)設(shè)備內(nèi)設(shè)有設(shè)備信息,不同待升級(jí)設(shè)備內(nèi)的設(shè)備信息不同。
6.根據(jù)權(quán)利要求1所述的一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,其特征在于,所述步驟(5)還包括步驟:如果提取的子文件不是設(shè)備配置文件,則直接對(duì)待升級(jí)設(shè)備進(jìn)行升級(jí),并繼續(xù)讀取下一個(gè)子文件。
【專(zhuān)利摘要】本發(fā)明提供一種文件對(duì)應(yīng)多嵌入式設(shè)備的升級(jí)方法,該方法包括:下載Instb包并解析Instb包的頭部信息;確認(rèn)下載的文件是否為Instb包;效驗(yàn)Instb包的完整性;讀入待升級(jí)設(shè)備內(nèi)部的設(shè)備信息,并逐一和Instb包內(nèi)的設(shè)備表進(jìn)行匹配;根據(jù)Instb包內(nèi)的子文件信息表,逐一從Instb包中提取出所包含的子文件,如果提取的子文件為設(shè)備配置文件,則讀出該配置文件內(nèi)的設(shè)備信息,如果該設(shè)備信息和待升級(jí)設(shè)備內(nèi)部的設(shè)備信息一致,則對(duì)配置文件進(jìn)行升級(jí)并繼續(xù)讀取下一個(gè)子文件。本發(fā)明將多種設(shè)備的多個(gè)升級(jí)文件合并成一個(gè)文件,并用該文件對(duì)多種設(shè)備進(jìn)行升級(jí),可大大減少升級(jí)文件的數(shù)量,有利于提高設(shè)備升級(jí)效率。
【IPC分類(lèi)】G06F9-445
【公開(kāi)號(hào)】CN104657184
【申請(qǐng)?zhí)枴緾N201510105271
【發(fā)明人】陳其偉
【申請(qǐng)人】成都廣達(dá)電子股份有限公司
【公開(kāi)日】2015年5月27日
【申請(qǐng)日】2015年3月11日