本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種設(shè)備分區(qū)信息傳遞方法及裝置。
背景技術(shù):
嵌入式產(chǎn)品開發(fā)應(yīng)用中,在存儲(chǔ)設(shè)計(jì)上經(jīng)常會(huì)用到nand(閃存存儲(chǔ)設(shè)備)、nor(閃存存儲(chǔ)設(shè)備)等f(wàn)lash(Flash Memory,F(xiàn)lash存儲(chǔ)器)設(shè)備,為了方便系統(tǒng)對(duì)存儲(chǔ)數(shù)據(jù)的管理,需要根據(jù)需求對(duì)存儲(chǔ)設(shè)備進(jìn)行空間上的劃分。而實(shí)現(xiàn)分區(qū)的劃分需要系統(tǒng)事先確定好分區(qū)的數(shù)量、大小以及其他輔助信息,如何獲得這些信息,通常一種簡(jiǎn)單的辦法是在程序模塊中維護(hù)一個(gè)靜態(tài)的結(jié)構(gòu)體數(shù)組,每個(gè)結(jié)構(gòu)體元素對(duì)應(yīng)了一個(gè)分區(qū)的相關(guān)劃分信息,最后由驅(qū)動(dòng)程序來根據(jù)這些固定的分區(qū)信息來創(chuàng)建各個(gè)相應(yīng)的分區(qū)。這種靜態(tài)獲取分區(qū)信息的方式在復(fù)雜的嵌入式應(yīng)用中會(huì)有一定的局限性,特別是在系統(tǒng)有多個(gè)模塊都需要使用分區(qū)信息的情況下,一次分區(qū)信息的調(diào)整,就需要手動(dòng)去修改多個(gè)關(guān)聯(lián)的模塊代碼,以保證分區(qū)信息的一致性,這就導(dǎo)致了在程序開發(fā)階段的效率低下以及后期程序版本維護(hù)不便利。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種設(shè)備分區(qū)信息傳遞方法及裝置,解決由于分區(qū)信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種設(shè)備分區(qū)信息傳遞方法,包括:
從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;
判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí) 分區(qū)的描述信息是否一致;
若不一致,則更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;
按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。
優(yōu)選地,所述系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息存儲(chǔ)于所述組件分區(qū)中,所述描述信息為設(shè)定格式的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)由結(jié)構(gòu)體組成,所述結(jié)構(gòu)體描述對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息:
所述升級(jí)文件由文件頭與各個(gè)升級(jí)分區(qū)組成,所述升級(jí)文件中的升級(jí)分區(qū)的描述信息存儲(chǔ)于所述升級(jí)文件的文件頭中,文件頭描述所述升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)升級(jí)分區(qū)在所述升級(jí)文件中的位置偏移;每個(gè)升級(jí)分區(qū)的內(nèi)容由組件頭加升級(jí)數(shù)據(jù)組成;每個(gè)升級(jí)分區(qū)與所述系統(tǒng)內(nèi)待升級(jí)應(yīng)用分區(qū)對(duì)應(yīng)。
優(yōu)選地,所述獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息的步驟包括:對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移;
根據(jù)所述升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移,獲取升級(jí)文件中的升級(jí)分區(qū)數(shù)據(jù);
根據(jù)所述升級(jí)分區(qū)數(shù)據(jù)的組件頭,獲取升級(jí)分區(qū)的描述信息。
優(yōu)選地,所述判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致的步驟之后,還包括:
若升級(jí)文件中的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息一致,則按照所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息存放升級(jí)文件中升級(jí)分區(qū)的升級(jí)數(shù)據(jù)。
優(yōu)選地,所述按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的各個(gè)分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的各個(gè)應(yīng)用分區(qū)的描述信息的步驟之后,還包括:
對(duì)所述組件分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配及校驗(yàn);
若校驗(yàn)成功,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化;
若校驗(yàn)失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化所述系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū),將所述系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息按照組件分區(qū)內(nèi)的描述信息的格式存儲(chǔ)到所述系統(tǒng)內(nèi)組件分區(qū)中,供系統(tǒng)運(yùn)行使用。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種分區(qū)信息傳遞裝置,所述分區(qū)信息傳遞裝置包括:
獲取模塊,用于從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;
判斷模塊,用于判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致;
第一更新模塊,用于在判斷模塊判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息不一致時(shí),更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;
第二更新模塊,用于按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。
優(yōu)選地,所述系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息存儲(chǔ)于所述組件分區(qū)中,所述描述信息為設(shè)定格式的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)由結(jié)構(gòu)體組成,所述結(jié)構(gòu)體描述對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息:
所述升級(jí)文件由文件頭與各個(gè)升級(jí)分區(qū)組成,所述升級(jí)文件中的升級(jí)分區(qū)的描述信息存儲(chǔ)于所述升級(jí)文件的文件頭中,文件頭描述所述升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)升級(jí)分區(qū)在所述升級(jí)文件中的位置偏移;每個(gè)升級(jí)分區(qū)的內(nèi)容由組件頭加升級(jí)數(shù)據(jù)組成;每個(gè)升級(jí)分區(qū)與所述系統(tǒng)內(nèi)待升級(jí)應(yīng)用分區(qū)對(duì)應(yīng)。
優(yōu)選地,所述獲取模塊包括:
第一獲取單元,用于對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移;
第二獲取單元,用于根據(jù)所述升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移,獲取升級(jí)文件中的升級(jí)分區(qū)數(shù)據(jù)。
第三獲取單元,用于根據(jù)所述升級(jí)分區(qū)數(shù)據(jù)的組件頭,獲取升級(jí)分區(qū)的描述信息。
優(yōu)選地,所述分區(qū)信息傳遞裝置還包括:
第一升級(jí)模塊,用于若升級(jí)文件中的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息一致,則按照所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息存放升級(jí)文件中升級(jí)分區(qū)的升級(jí)數(shù)據(jù)。
優(yōu)選地,所述分區(qū)信息傳遞裝置,還包括:
初始化模塊,用于對(duì)所述組件分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配及校驗(yàn);若校驗(yàn)成功,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化;若校驗(yàn)失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化所述系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū),將所述系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息按照組件分區(qū)內(nèi)的描述信息的格式存儲(chǔ)到所述系統(tǒng)內(nèi)組件分區(qū)中,供系統(tǒng)運(yùn)行使用。
本發(fā)明實(shí)施例通過從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致;若不一致,則更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。從而解決了由于分區(qū)信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
附圖說明
圖1為本發(fā)明設(shè)備分區(qū)信息傳遞方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明設(shè)備分區(qū)信息傳遞方法第二實(shí)施例的流程示意圖;
圖3為本發(fā)明設(shè)備分區(qū)信息傳遞方法第三實(shí)施例的流程示意圖;
圖4為本發(fā)明設(shè)備分區(qū)信息傳遞方法第四實(shí)施例的流程示意圖;
圖5為本發(fā)明設(shè)備分區(qū)信息傳遞裝置第一實(shí)施例的功能模塊示意圖;
圖6為本發(fā)明設(shè)備分區(qū)信息傳遞裝置第二實(shí)施例的功能模塊示意圖;
圖7為本發(fā)明設(shè)備分區(qū)信息傳遞裝置第三實(shí)施例的功能模塊示意圖;
圖8為本發(fā)明設(shè)備分區(qū)信息傳遞裝置第四實(shí)施例的功能模塊示意圖;
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例的主要解決方案是:從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致;若不一致,則更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。
由于現(xiàn)有技術(shù)中在實(shí)際復(fù)雜的嵌入式應(yīng)用中,使用分區(qū)信息的情況下,依次分區(qū)信息的調(diào)整,就必須動(dòng)手修改多個(gè)關(guān)聯(lián)的模塊代碼,以保證分區(qū)信息的一致性,導(dǎo)致了在程序開發(fā)階段的效率低下以及后期程序版本維護(hù)的不便利。
本發(fā)明提供一種解決方案,能夠劃分系統(tǒng)組件分區(qū),統(tǒng)一系統(tǒng)升級(jí)文件格式,統(tǒng)一描述信息以及統(tǒng)一系統(tǒng)的分區(qū)信息,解決了由于分區(qū)信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
參照?qǐng)D1,本發(fā)明第一實(shí)施例提供一種設(shè)備分區(qū)信息傳遞方法,包括:
步驟S10,從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息。
在本實(shí)施例方案中,在滿足系統(tǒng)應(yīng)用分區(qū)劃分的基礎(chǔ)上添加一個(gè)組件分區(qū),該分區(qū)會(huì)根據(jù)系統(tǒng)應(yīng)用需求設(shè)計(jì)為合適的大小,并用來存儲(chǔ)分區(qū)描述信 息列表。
將分區(qū)描述信息設(shè)計(jì)為特定格式的數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)構(gòu)體描述了對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移等其他輔助信息。
將設(shè)備升級(jí)文件設(shè)計(jì)為文件數(shù)據(jù)頭與各個(gè)升級(jí)分區(qū)的組合形式,數(shù)據(jù)頭主要用來說明本次升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)分區(qū)在本次升級(jí)文件中的位置偏移。
將每個(gè)升級(jí)分區(qū)內(nèi)容設(shè)計(jì)為組件頭加升級(jí)數(shù)據(jù)的格式,組件頭即為本次待升級(jí)分區(qū)的描述信息。
其中,根據(jù)系統(tǒng)需求,對(duì)系統(tǒng)flash進(jìn)行分區(qū)劃分,每個(gè)分區(qū)存儲(chǔ)特定的數(shù)據(jù),其中在flash的固定位置處留出一定空間作為組件分區(qū),該分區(qū)用來存儲(chǔ)系統(tǒng)中各分區(qū)的描述信息,每一個(gè)分區(qū)描述信息對(duì)應(yīng)了一個(gè)結(jié)構(gòu)體數(shù)據(jù),對(duì)分區(qū)的屬性進(jìn)行了相關(guān)描述,包括分區(qū)名稱、大小、所處的位置偏移以及其他輔助信息。
步驟S20,判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致,若不一致,則進(jìn)入步驟S30;
其中,在程序版本升級(jí)操作中,先從升級(jí)文件頭數(shù)據(jù)中找到升級(jí)分區(qū)數(shù)據(jù),從數(shù)據(jù)的組件頭中提取分區(qū)描述信息,并按照該信息來存放升級(jí)內(nèi)容,同時(shí)判斷分區(qū)描述信息是否與當(dāng)前使用的發(fā)生了變化。
步驟S30,更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息。
其中,升級(jí)文件的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息不一致,則證明系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息發(fā)生改變,需要按照升級(jí)文件內(nèi)的升級(jí)分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息進(jìn)行修改。
其中,更新系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息后,按照更新后的所述描述信息向所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)存放升級(jí)文件中的升級(jí)數(shù)據(jù)。
需要說明的是,描述信息記錄的是對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息。
步驟S40,按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。
完成每個(gè)分區(qū)的描述信息的更新后,將更新過的分區(qū)描述信息存儲(chǔ)到系統(tǒng)中的組件分區(qū)內(nèi),完成組件分區(qū)的更新。
具體實(shí)施時(shí),以系統(tǒng)升級(jí)過程為例,具體步驟如下:
1,啟動(dòng)版本升級(jí)操作。
2,對(duì)版本升級(jí)文件頭進(jìn)行解析,獲得本次升級(jí)的分區(qū)數(shù)以及待升級(jí)分區(qū)數(shù)據(jù)在文件中的位置。
3,依次獲取待升級(jí)分區(qū)的數(shù)據(jù),并從數(shù)據(jù)頭中提取分區(qū)描述信息。
4,判斷該分區(qū)描述信息與系統(tǒng)當(dāng)前使用的同一分區(qū)描述信息是否一致。若一致,則進(jìn)行更新。
5,根據(jù)差異對(duì)內(nèi)存中的分區(qū)描述信息進(jìn)行修改。
6,用更新過的描述信息完成該分區(qū)內(nèi)容的在flash中的存儲(chǔ),升級(jí)分區(qū)總數(shù)自減。
7,判斷待升級(jí)分區(qū)數(shù)是否大于0,若是,則升級(jí)下一個(gè)分區(qū)。
8,待所有分區(qū)升級(jí)完成后,將更新后的內(nèi)存中的分區(qū)描述信息存儲(chǔ)到組件分區(qū)中,即完成了分區(qū)信息從外部版本文件動(dòng)態(tài)傳遞到系統(tǒng)存儲(chǔ)模塊。
9,系統(tǒng)復(fù)位,開始使用新的分區(qū)信息去初始化系統(tǒng)。
在本實(shí)施例中,通過從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致;若不一致,則更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。解決了由于分區(qū)信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
進(jìn)一步地,參照?qǐng)D2,本發(fā)明第二實(shí)施例提供一種設(shè)備分區(qū)信息傳遞方法, 基于上述圖1所示的實(shí)施例,在執(zhí)行步驟S10過程中,包括:
步驟S11、對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移。
其中,在系統(tǒng)升級(jí)過程中,讀取升級(jí)文件時(shí),首先對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)的升級(jí)數(shù)據(jù)在升級(jí)文件中的位置偏移,然后按照文件頭中記錄的升級(jí)數(shù)據(jù)在升級(jí)文件中的位置偏移對(duì)系統(tǒng)進(jìn)行升級(jí)。
其中,所述升級(jí)文件由文件頭與各個(gè)升級(jí)分區(qū)組成,所述升級(jí)文件中的文件頭描述所述升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)升級(jí)分區(qū)在所述升級(jí)文件中的位置偏移;
步驟S12、根據(jù)所述升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移,獲取升級(jí)文件中的升級(jí)分區(qū)數(shù)據(jù)。
其中,升級(jí)文件的文件頭可以對(duì)整個(gè)設(shè)備升級(jí)文件進(jìn)行統(tǒng)一的記錄和管理,在設(shè)備升級(jí)文件中,每一個(gè)升級(jí)文件的升級(jí)分區(qū)的數(shù)據(jù)都是分開的,文件頭可以記錄每一個(gè)升級(jí)文件的升級(jí)分區(qū)的升級(jí)數(shù)據(jù)的位置,升級(jí)分區(qū)的總數(shù),方便系統(tǒng)升級(jí)時(shí)對(duì)升級(jí)文件的升級(jí)分區(qū)的統(tǒng)一管理與調(diào)用。
其中,升級(jí)文件的各個(gè)升級(jí)分區(qū)中記錄著各個(gè)升級(jí)分區(qū)的升級(jí)數(shù)據(jù),當(dāng)設(shè)備升級(jí)的過程中,方便區(qū)分各個(gè)待升級(jí)分區(qū)的升級(jí)文件的位置,可以對(duì)系統(tǒng)內(nèi)的待升級(jí)分區(qū)的升級(jí)數(shù)據(jù)進(jìn)行快速查找。
步驟S13、根據(jù)所述升級(jí)分區(qū)數(shù)據(jù)的組件頭,獲取升級(jí)分區(qū)的描述信息。
其中,每個(gè)升級(jí)分區(qū)的內(nèi)容由組件頭加升級(jí)數(shù)據(jù)組成;每個(gè)升級(jí)分區(qū)與所述系統(tǒng)內(nèi)待升級(jí)應(yīng)用分區(qū)對(duì)應(yīng)。
其中,每一個(gè)分區(qū)描述信息對(duì)應(yīng)了一個(gè)結(jié)構(gòu)體數(shù)據(jù),對(duì)分區(qū)的屬性進(jìn)行了相關(guān)描述,包括分區(qū)名稱、大小、所處的位置偏移以及其他輔助信息。將這些數(shù)據(jù)統(tǒng)一記錄,管理可以起到對(duì)待升級(jí)分區(qū)的快速升級(jí),同時(shí)可以快速的找到升級(jí)數(shù)據(jù)在待升級(jí)分區(qū)的位置。
在本實(shí)施例中,通過對(duì)升級(jí)文件的統(tǒng)一格式,分區(qū)描述信息的統(tǒng)一管理。 解決了由于分區(qū)描述信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
進(jìn)一步地,參照?qǐng)D3,本發(fā)明第三實(shí)施例提供一種設(shè)備分區(qū)信息傳遞方法,基于上述圖1所示的實(shí)施例,在上述步驟S20之后,還包括:
步驟S50、若升級(jí)文件中的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息一致,則按照所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息存放升級(jí)文件中升級(jí)分區(qū)的升級(jí)數(shù)據(jù)。
其中,升級(jí)文件的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息一致,則證明系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息沒有發(fā)生改變,只需要按照系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息進(jìn)行升級(jí)數(shù)據(jù)的存放。
需要說明的是,分區(qū)的描述信息記錄的是對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息。
在本實(shí)施例中,通過更新系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,可以統(tǒng)一系統(tǒng)內(nèi)各分區(qū)的描述信息,從而達(dá)到對(duì)一個(gè)分區(qū)進(jìn)行升級(jí)時(shí),不會(huì)影響其他分區(qū)的描述信息的準(zhǔn)確性的效果。
進(jìn)一步地,參照?qǐng)D4,本發(fā)明第四實(shí)施例提供一種設(shè)備分區(qū)信息傳遞方法,基于上述圖1所示的實(shí)施例,在上述步驟S40之后,還包括:
步驟S60、對(duì)所述組件分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配及校驗(yàn);若校驗(yàn)成功,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化;若校驗(yàn)失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化所述系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū),將所述系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息按照組件分區(qū)內(nèi)的描述信息的格式存儲(chǔ)到所述系統(tǒng)內(nèi)組件分區(qū)中,供系統(tǒng)運(yùn)行使用。
其中,為配合本發(fā)明的設(shè)計(jì),系統(tǒng)更新后,從組件分區(qū)讀取分區(qū)信息列表來對(duì)設(shè)備進(jìn)行初始化,如獲取失敗,則認(rèn)為是該系統(tǒng)的第一次上電使用,則使用內(nèi)存中默認(rèn)的分區(qū)描述信息來完成系統(tǒng)初始化,以保證設(shè)備的第一次運(yùn)行的正常完成。
需要說明的是,系統(tǒng)第一次上電使用是說明,系統(tǒng)上電使用之前沒有其 他使用記錄和其他描述信息,需要按照系統(tǒng)默認(rèn)的分區(qū)描述信息來完成系統(tǒng)初始化。
具體實(shí)施時(shí),以系統(tǒng)升級(jí)過程為例,具體步驟如下:
1,系統(tǒng)上電。
2,系統(tǒng)從組件分區(qū)讀取分區(qū)信息的內(nèi)容。
3,對(duì)組件分區(qū)內(nèi)容進(jìn)行數(shù)據(jù)匹配及校驗(yàn)等合法性驗(yàn)證,。
4,若驗(yàn)證正確,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化。
5,若驗(yàn)證失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化系統(tǒng)。
6,將默認(rèn)分區(qū)描述信息按照組件分區(qū)的描述信息的格式生成對(duì)應(yīng)的分區(qū)描述信息,并將該描述信息存儲(chǔ)到組件分區(qū)內(nèi),供系統(tǒng)運(yùn)行使用。
在本實(shí)施例中,通過對(duì)系統(tǒng)進(jìn)行初始化,使系統(tǒng)適應(yīng)本發(fā)明的設(shè)計(jì)??梢宰屜到y(tǒng)第一次運(yùn)行正常完成,解決了由于升級(jí)文件的更新導(dǎo)致的設(shè)備無法正常使用的問題。
參照?qǐng)D5,本發(fā)明第一實(shí)施例提供一種設(shè)備分區(qū)信息傳遞裝置,包括:第一獲取模塊100、判斷模塊200、第一更新模塊300、第二更新模塊,其中:
獲取模塊100,用于從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息。
需要說明的是,在滿足系統(tǒng)應(yīng)用分區(qū)劃分的基礎(chǔ)上添加一個(gè)組件分區(qū),該分區(qū)會(huì)根據(jù)系統(tǒng)應(yīng)用需求設(shè)計(jì)為合適的大小,并用來存儲(chǔ)分區(qū)描述信息列表。將分區(qū)描述信息設(shè)計(jì)為特定格式的數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)構(gòu)體描述了對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移等其他輔助信息。將設(shè)備升級(jí)文件設(shè)計(jì)為文件數(shù)據(jù)頭與各個(gè)升級(jí)分區(qū)的組合形式,數(shù)據(jù)頭主要用來說明本次升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)分區(qū)在本次升級(jí)文件中的位置偏移。將每個(gè)升級(jí)分區(qū)內(nèi)容設(shè)計(jì)為組件頭加升級(jí)數(shù)據(jù)的格式,組件頭即為本次待升級(jí)分區(qū)的描述信息。
其中,根據(jù)系統(tǒng)需求,對(duì)系統(tǒng)flash進(jìn)行分區(qū)劃分,每個(gè)分區(qū)存儲(chǔ)特定的數(shù)據(jù),其中在flash的固定位置處留出一定空間作為組件分區(qū),該分區(qū)用來存儲(chǔ)系統(tǒng)中各分區(qū)的描述信息,每一個(gè)分區(qū)描述信息對(duì)應(yīng)了一個(gè)結(jié)構(gòu)體數(shù)據(jù), 對(duì)分區(qū)的屬性進(jìn)行了相關(guān)描述,包括分區(qū)名稱、大小、所處的位置偏移以及其他輔助信息。
判斷模塊200,用于判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致。
其中,在程序版本升級(jí)操作中,先從升級(jí)文件頭數(shù)據(jù)中找到升級(jí)分區(qū)數(shù)據(jù),從數(shù)據(jù)的組件頭中提取分區(qū)描述信息,并按照該信息來存放升級(jí)內(nèi)容,同時(shí)判斷分區(qū)描述信息是否與當(dāng)前使用的發(fā)生了變化。
第一更新模塊300,用于若不一致,則在判斷模塊200判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息不一致時(shí),更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息。
其中,升級(jí)文件的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息不一致,則證明系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息發(fā)生改變,需要按照升級(jí)文件內(nèi)的升級(jí)分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息進(jìn)行修改。
其中,更新系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息后,按照更新后的所述描述信息向所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)存放升級(jí)文件中的升級(jí)數(shù)據(jù)。
需要說明的是,描述信息記錄的是對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息。
第二更新模塊400,用于按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。
完成每個(gè)分區(qū)的描述信息的更新后,將更新過的分區(qū)描述信息存儲(chǔ)到系統(tǒng)中的組件分區(qū)內(nèi),完成組件分區(qū)的更新。
具體實(shí)施時(shí),以系統(tǒng)升級(jí)過程為例,具體步驟如下:
1,啟動(dòng)版本升級(jí)操作。
2,獲取模塊100對(duì)版本升級(jí)文件頭進(jìn)行解析,獲得本次升級(jí)的分區(qū)數(shù)以及待升級(jí)分區(qū)數(shù)據(jù)在文件中的位置。
3,獲取模塊100依次獲取待升級(jí)分區(qū)的數(shù)據(jù),并從數(shù)據(jù)頭中提取分區(qū)描述信息。
4,判斷模塊200判斷該分區(qū)描述信息與系統(tǒng)當(dāng)前使用的同一分區(qū)描述信息是否一致。若一致,則進(jìn)行更新。
5,第一更新模塊400根據(jù)差異對(duì)內(nèi)存中的分區(qū)描述信息進(jìn)行修改。
6,用更新過的描述信息完成該分區(qū)內(nèi)容的在flash中的存儲(chǔ),升級(jí)分區(qū)總數(shù)自減。
7,判斷待升級(jí)分區(qū)數(shù)是否大于0,若是,則升級(jí)下一個(gè)分區(qū)。
8,待所有分區(qū)升級(jí)完成后,第二更新模塊300將更新后的內(nèi)存中的分區(qū)描述信息存儲(chǔ)到組件分區(qū)中,即完成了分區(qū)信息從外部版本文件動(dòng)態(tài)傳遞到系統(tǒng)存儲(chǔ)模塊。
9,系統(tǒng)復(fù)位,初始化模塊700開始使用新的分區(qū)信息去初始化系統(tǒng)。
在本實(shí)施例中,通過獲取模塊100從系統(tǒng)的組件分區(qū)中讀取系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,并獲取升級(jí)文件中的升級(jí)分區(qū)的描述信息;判斷模塊200判斷所述升級(jí)文件中的升級(jí)分區(qū)的描述信息與所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息是否一致;第一更新模300塊若不一致,則更新所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息;第二更新模塊400按照更新后的所述系統(tǒng)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息,更新所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息。解決了由于分區(qū)信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
進(jìn)一步地,參照?qǐng)D6,本發(fā)明第二實(shí)施例提供一種設(shè)備分區(qū)信息傳遞裝置,基于上述圖5所示的實(shí)施例,所述獲取模塊100包括:
第一獲取單元110,用于對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移。
其中,在系統(tǒng)升級(jí)過程中,讀取升級(jí)文件時(shí),首先對(duì)升級(jí)文件的文件頭進(jìn)行解析,獲取升級(jí)文件的文件頭中的升級(jí)分區(qū)的升級(jí)數(shù)據(jù)在升級(jí)文件中的位置偏移,然后按照文件頭中記錄的升級(jí)數(shù)據(jù)在升級(jí)文件中的位置偏移對(duì)系統(tǒng)進(jìn)行升級(jí)。
其中,所述升級(jí)文件由文件頭與各個(gè)升級(jí)分區(qū)組成,所述升級(jí)文件中的文件頭描述所述升級(jí)分區(qū)的個(gè)數(shù),以及每個(gè)升級(jí)分區(qū)在所述升級(jí)文件中的位置偏移;
第二獲取單元120,用于根據(jù)所述升級(jí)文件的文件頭中的升級(jí)分區(qū)數(shù)據(jù)在升級(jí)文件中的位置偏移,獲取升級(jí)文件中的升級(jí)分區(qū)數(shù)據(jù)。
其中,升級(jí)文件的文件頭可以對(duì)整個(gè)設(shè)備升級(jí)文件進(jìn)行統(tǒng)一的記錄和管理,在設(shè)備升級(jí)文件中,每一個(gè)升級(jí)文件的升級(jí)分區(qū)的數(shù)據(jù)都是分開的,文件頭可以記錄每一個(gè)升級(jí)文件的升級(jí)分區(qū)的升級(jí)數(shù)據(jù)的位置,升級(jí)分區(qū)的總數(shù),方便系統(tǒng)升級(jí)時(shí)對(duì)升級(jí)文件的升級(jí)分區(qū)的統(tǒng)一管理與調(diào)用。
其中,升級(jí)文件的各個(gè)升級(jí)分區(qū)中記錄著各個(gè)升級(jí)分區(qū)的升級(jí)數(shù)據(jù),當(dāng)設(shè)備升級(jí)的過程中,方便區(qū)分各個(gè)待升級(jí)分區(qū)的升級(jí)文件的位置,可以對(duì)系統(tǒng)內(nèi)的待升級(jí)分區(qū)的升級(jí)數(shù)據(jù)進(jìn)行快速查找。
第三獲取單元130,用于根據(jù)所述升級(jí)分區(qū)數(shù)據(jù)的組件頭,獲取升級(jí)分區(qū)的描述信息。
其中,每個(gè)升級(jí)分區(qū)的內(nèi)容由組件頭加升級(jí)數(shù)據(jù)組成;每個(gè)升級(jí)分區(qū)與所述系統(tǒng)內(nèi)待升級(jí)應(yīng)用分區(qū)對(duì)應(yīng)。
其中,每一個(gè)分區(qū)描述信息對(duì)應(yīng)了一個(gè)結(jié)構(gòu)體數(shù)據(jù),對(duì)分區(qū)的屬性進(jìn)行了相關(guān)描述,包括分區(qū)名稱、大小、所處的位置偏移以及其他輔助信息。將這些數(shù)據(jù)統(tǒng)一記錄,管理可以起到對(duì)待升級(jí)分區(qū)的快速升級(jí),同時(shí)可以快速的找到升級(jí)數(shù)據(jù)在待升級(jí)分區(qū)的位置。
在本實(shí)施例中,通過對(duì)升級(jí)文件的統(tǒng)一格式,分區(qū)描述信息的統(tǒng)一管理。解決了由于分區(qū)描述信息調(diào)整復(fù)雜而導(dǎo)致的程序開發(fā)階段效率低下以及后期程序版本維護(hù)不便利的問題。
進(jìn)一步地,參照?qǐng)D7,本發(fā)明第三實(shí)施例提供一種設(shè)備分區(qū)信息傳遞裝置,基于上述圖5所示的實(shí)施例,所述分區(qū)信息傳遞裝置包括:
第一升級(jí)模塊500,用于若升級(jí)文件中的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì) 應(yīng)的待升級(jí)分區(qū)的描述信息一致,則按照所述系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息存放升級(jí)文件中升級(jí)分區(qū)的升級(jí)數(shù)據(jù)。
其中,升級(jí)文件的升級(jí)分區(qū)的描述信息與系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息一致,則證明系統(tǒng)內(nèi)對(duì)應(yīng)的待升級(jí)分區(qū)的描述信息沒有發(fā)生改變,只需要按照系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息進(jìn)行升級(jí)數(shù)據(jù)的存放。
需要說明的是,分區(qū)的描述信息記錄的是對(duì)應(yīng)分區(qū)的索引、大小以及位置偏移信息。
在本實(shí)施例中,通過更新系統(tǒng)內(nèi)待升級(jí)分區(qū)的描述信息,可以統(tǒng)一系統(tǒng)內(nèi)各分區(qū)的描述信息,從而達(dá)到對(duì)一個(gè)分區(qū)進(jìn)行升級(jí)時(shí),不會(huì)影響其他分區(qū)的描述信息的準(zhǔn)確性的效果。
進(jìn)一步地,參照?qǐng)D8,本發(fā)明第四實(shí)施例提供一種設(shè)備分區(qū)信息傳遞裝置,基于上述圖5所示的實(shí)施例,所述分區(qū)信息傳遞裝置,包括:
初始化模塊600,用于對(duì)所述組件分區(qū)內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配及校驗(yàn);
若校驗(yàn)成功,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化;
若校驗(yàn)失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化所述系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū),將所述系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息按照組件分區(qū)內(nèi)的描述信息的格式存儲(chǔ)到所述系統(tǒng)內(nèi)組件分區(qū)中,供系統(tǒng)運(yùn)行使用。
其中,為配合本發(fā)明的設(shè)計(jì),系統(tǒng)更新后,從組件分區(qū)讀取分區(qū)信息列表來對(duì)設(shè)備進(jìn)行初始化,如獲取失敗,則認(rèn)為是該系統(tǒng)的第一次上電使用,則使用內(nèi)存中默認(rèn)的分區(qū)描述信息來完成系統(tǒng)初始化,以保證設(shè)備的第一次運(yùn)行的正常完成。
需要說明的是,系統(tǒng)第一次上電使用是說明,系統(tǒng)上電使用之前沒有其他使用記錄和其他描述信息,需要按照系統(tǒng)默認(rèn)的分區(qū)描述信息來完成系統(tǒng)初始化。
具體實(shí)施時(shí),以系統(tǒng)升級(jí)過程為例,具體步驟如下:
1,系統(tǒng)上電。
2,系統(tǒng)從組件分區(qū)讀取分區(qū)信息的內(nèi)容。
3,初始化模塊600對(duì)組件分區(qū)內(nèi)容進(jìn)行數(shù)據(jù)匹配及校驗(yàn)等合法性驗(yàn)證,。
4,若驗(yàn)證正確,則根據(jù)所述更新后的所述組件分區(qū)內(nèi)對(duì)應(yīng)的分區(qū)的描述信息對(duì)系統(tǒng)內(nèi)對(duì)應(yīng)分區(qū)進(jìn)行初始化。
5,若驗(yàn)證失敗,則使用系統(tǒng)默認(rèn)的靜態(tài)分區(qū)表的描述信息來初始化系統(tǒng)。
6,初始化模塊600將默認(rèn)分區(qū)描述信息按照組件分區(qū)的描述信息的格式生成對(duì)應(yīng)的分區(qū)描述信息,并將該描述信息存儲(chǔ)到組件分區(qū)內(nèi),供系統(tǒng)運(yùn)行使用。
在本實(shí)施例中,通過初始化模塊600對(duì)系統(tǒng)進(jìn)行初始化,使系統(tǒng)適應(yīng)本發(fā)明的設(shè)計(jì)??梢宰屜到y(tǒng)第一次運(yùn)行正常完成,解決了由于升級(jí)文件的更新導(dǎo)致的設(shè)備無法正常使用的問題。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。