專(zhuān)利名稱(chēng):一種閃存燒錄方法、燒錄設(shè)備及燒錄系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及閃存,尤其涉及一種閃存燒錄方法、燒錄設(shè)備及燒錄系統(tǒng)。
背景技術(shù):
目前,閃存的燒錄方法有兩種一為母片拷貝方式,即將用戶(hù)原始flash上的內(nèi)容拷貝到板載flash后,再將板載flash上相應(yīng)的內(nèi)容寫(xiě)入空的flash ;二為文件方式,即將指定文件置于移動(dòng)硬盤(pán)或者編程器內(nèi)置硬盤(pán),再讀出該文件的內(nèi)容并按照指定的方式寫(xiě)入 flash。采用文件方式燒錄時(shí),需要兩個(gè)文件實(shí)際要燒錄的數(shù)據(jù)文件,參見(jiàn)圖1,為數(shù)據(jù)文件的格式;描述數(shù)據(jù)在flash中位置的描述信息文件,參見(jiàn)圖2,為描述信息文件的格式。 采用文件方式燒錄時(shí),需要分別下載該描述信息文件和數(shù)據(jù)文件,但如果由于操作失誤時(shí), 數(shù)據(jù)文件和描述信息文件不匹配,從而導(dǎo)致燒錄到flash的內(nèi)容錯(cuò)誤;并且燒錄時(shí),是順序讀取數(shù)據(jù)文件的內(nèi)容,當(dāng)數(shù)據(jù)在flash中不連續(xù)時(shí),則會(huì)有填充數(shù)據(jù),從而導(dǎo)致數(shù)據(jù)文件龐大。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種閃存燒錄方法、燒錄設(shè)備及燒錄系統(tǒng),可避免信息文件與數(shù)據(jù)文件之間的匹配問(wèn)題,且燒錄方便、安全。為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種閃存燒錄方法,包括
將下載的信息文件和至少一個(gè)數(shù)據(jù)文件所述信息文件和所述數(shù)據(jù)文件合成為一個(gè)包
括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件,所述數(shù)據(jù)區(qū)包括各個(gè)所述數(shù)據(jù)文件中的有效數(shù)據(jù),所述信息區(qū)包括所述信息文件中對(duì)應(yīng)于所述有效數(shù)據(jù)的描述信息;
讀取所述燒錄文件的信息區(qū),得到各個(gè)有效數(shù)據(jù)的描述信息;所述描述信息包括所述有效數(shù)據(jù)在閃存中的起始地址和大小;
根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù);
當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)該有效數(shù)據(jù)的描述信息將所讀取到的有效數(shù)據(jù)燒錄到所述閃存中。其中,所述讀取所述燒錄文件的信息區(qū),得到各個(gè)有效數(shù)據(jù)的描述信息的步驟之前,還包括
檢測(cè)所述閃存,得到所述閃存的特征信息;
根據(jù)所述特征信息擦除整個(gè)閃存。其中,所述根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù)的步驟,具體包括
每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除所述閃存中對(duì)應(yīng)于該有效數(shù)據(jù)的區(qū)域;
根據(jù)有效數(shù)據(jù)的描述信息,讀取所述數(shù)據(jù)區(qū)中的有效數(shù)據(jù)。
其中,所述當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)所讀取的有效數(shù)據(jù)的描述信息將所讀取到的有效數(shù)據(jù)燒錄到所述閃存中的步驟,具體包括每當(dāng)讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為壞塊,若不是, 則將該有效數(shù)據(jù)寫(xiě)入到當(dāng)前塊中;若當(dāng)前塊為壞塊,則跳過(guò)所述當(dāng)前塊,將讀取的所述有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。
其中,所述信息區(qū)的大小為預(yù)先定義的,或者所述信息區(qū)內(nèi)包括信息區(qū)結(jié)束標(biāo)識(shí)。
一種燒錄設(shè)備,包括描述信息讀取模塊,用于讀取將信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件的信息區(qū),得到各個(gè)數(shù)據(jù)文件中有效數(shù)據(jù)的描述信息;所述數(shù)據(jù)區(qū)包括各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),所述信息區(qū)包括所述信息文件中的對(duì)應(yīng)于所述有效數(shù)據(jù)的描述信息,所述描述信息包括所述有效數(shù)據(jù)的大小以及其在閃存中的起始地址;有效數(shù)據(jù)讀取模塊,用于根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù);燒錄模塊,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),根據(jù)該有效數(shù)據(jù)的描述信息將所讀取到的所述有效數(shù)據(jù)燒錄到閃存中。
其中,所述燒錄設(shè)備還包括特征信息獲取模塊,用于檢測(cè)所述閃存,得到所述閃存的特征信息; 閃存擦除模塊,用于根據(jù)所述特征信息擦除整個(gè)閃存。
其中,所述燒錄設(shè)備還包括;區(qū)域擦除模塊,用于在所述有效數(shù)據(jù)讀取模塊每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除所述閃存中對(duì)應(yīng)于所述有效數(shù)據(jù)的區(qū)域;所述燒錄模塊用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),根據(jù)該有效數(shù)據(jù)的描述信息,將讀取到的該有效數(shù)據(jù)寫(xiě)入所述區(qū)域擦除模塊所擦除的對(duì)應(yīng)于該有效數(shù)據(jù)的區(qū)域中。
其中,所述燒錄設(shè)備還包括檢測(cè)模塊,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)所述閃存中將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為壞塊;所述燒錄模塊用于在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊不為壞塊時(shí),將讀取到的該有效數(shù)據(jù)寫(xiě)入所述當(dāng)前塊中;或者在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊為壞塊時(shí),跳過(guò)所述當(dāng)前塊,將讀取的該有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。
一種燒錄系統(tǒng),包括合成模塊,用于將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件;以及如上述的燒錄設(shè)備。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果本發(fā)明實(shí)施例的閃存燒錄方法,通過(guò)將信息文件和數(shù)據(jù)文件合成為包括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件,其中數(shù)據(jù)區(qū)包括多個(gè)有效數(shù)據(jù),信息區(qū)包括各個(gè)有效數(shù)據(jù)的描述信息,即通過(guò)將數(shù)據(jù)文件和信息文件合成為即包括了有效數(shù)據(jù),又包括了有效數(shù)據(jù)的描述信息的燒錄文件,避免了將有效數(shù)據(jù)和有效數(shù)據(jù)的描述信息分別放置在兩個(gè)文件中時(shí),由于誤操作而導(dǎo)致描述信息文件與有效數(shù)據(jù)文件不匹配的問(wèn)題,同時(shí)由于該燒錄文件中不包括填充數(shù)據(jù),該燒錄文件小巧,從而燒錄時(shí)跳過(guò)了填充數(shù)據(jù),燒錄時(shí)更加方便、安全; 并且即便閃存中存在壞塊,也只需要下載一次該燒錄文件,從而根據(jù)該燒錄文件來(lái)進(jìn)行燒錄,提聞了效率,且不易出錯(cuò)。本發(fā)明實(shí)施例的閃存燒錄方法由于燒錄文件中預(yù)先定義了大小的信息區(qū),從而讀取數(shù)據(jù)時(shí),可直接到該燒錄文件的固定位置開(kāi)始讀取數(shù)據(jù),進(jìn)而使得該方法更加簡(jiǎn)單。本發(fā)明實(shí)施例的閃存燒錄方法,通過(guò)根據(jù)設(shè)置在信息區(qū)內(nèi)的結(jié)束標(biāo)識(shí)來(lái)識(shí)別數(shù)據(jù)區(qū)的開(kāi)始位置,從而讀取數(shù)據(jù),由于該信息區(qū)的大小可變,進(jìn)而具有較強(qiáng)的靈活性。本發(fā)明實(shí)施例的閃存燒錄方法,通過(guò)下載既包括有效數(shù)據(jù),又包括了有效數(shù)據(jù)的描述信息的燒錄文件,當(dāng)燒錄有效數(shù)據(jù)時(shí),即便遇到壞塊,也可直接從已下載的該燒錄文件中讀取有效數(shù)據(jù)和有效數(shù)據(jù)的描述信息,避免需要將各個(gè)有效數(shù)據(jù)分開(kāi)寫(xiě)入,即將包括多個(gè)有效數(shù)據(jù)的數(shù)據(jù)文件,切割成多份,放到多個(gè)文件,而導(dǎo)致燒錄數(shù)據(jù)時(shí),需要下載、擦除、 寫(xiě)入多次的情況,從而提高燒錄效率,并且不容易出錯(cuò)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是現(xiàn)有的數(shù)據(jù)文件的格式示意圖2是現(xiàn)有的描述信息文件的格式示意圖3是本發(fā)明的閃存燒錄方法的一實(shí)施例的流程圖4是本發(fā)明的閃存燒錄方法的一實(shí)施例中的燒錄文件的格式示意圖5是本發(fā)明的閃存燒錄方法的又一實(shí)施例的流程圖6是本發(fā)明的閃存燒錄方法的再一實(shí)施例的流程圖7是本發(fā)明的燒錄設(shè)備的一實(shí)施例的功能模塊圖8是本發(fā)明的燒錄設(shè)備的又一實(shí)施例的功能模塊圖9是本發(fā)明的燒錄系統(tǒng)的一實(shí)施例的功能模塊圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例通過(guò)將信息文件和數(shù)據(jù)文件合成為包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件,并根據(jù)該信息區(qū)內(nèi)的有效數(shù)據(jù)的描述信息來(lái)讀取數(shù)據(jù)區(qū)的有效數(shù)據(jù),并將讀取的有效數(shù)據(jù)燒錄到閃存中,由于該燒錄文件中既包括了有效數(shù)據(jù)又包括有效數(shù)據(jù)的描述信息,避免了數(shù)據(jù)文件與描述文件之間的不匹配的問(wèn)題,同時(shí)由于該燒錄文件中不包括填充數(shù)據(jù), 該燒錄文件小巧,從而燒錄時(shí)跳過(guò)了填充數(shù)據(jù),燒錄時(shí)更加方便、安全,并且提高了燒錄效率。
參見(jiàn)圖3,為本發(fā)明實(shí)施例的閃存燒錄方法的一實(shí)施例的流程圖。本實(shí)施例的閃存燒錄方法,具體實(shí)施過(guò)程如下Sll,將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件,該數(shù)據(jù)區(qū)包括各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),信息區(qū)包括該信息文件中對(duì)應(yīng)于有效數(shù)據(jù)的描述信息。具體實(shí)施時(shí),首先下載終端中生成的信息文件和多個(gè)數(shù)據(jù)文件;然后再將所下載的信息文件和多個(gè)數(shù)據(jù)文件合成為一個(gè)包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件,即將信息文件中的有效數(shù)據(jù)的描述信息復(fù)制到該燒錄文件的信息區(qū),并將各個(gè)有效數(shù)據(jù)文件中的有效數(shù)據(jù)復(fù)制到該燒錄文件的數(shù)據(jù)區(qū),從而合成了一個(gè)既包括有效數(shù)據(jù)又包括有效數(shù)據(jù)描述信息的燒錄文件,然后燒錄設(shè)備加電初始化,使其進(jìn)入準(zhǔn)備狀態(tài),并下載該合成后包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件。在一具體實(shí)施例中,可通過(guò)直接將該信息文件中的所有有效數(shù)據(jù)的描述信息復(fù)制到信息區(qū),然后再根據(jù)各個(gè)有效數(shù)據(jù)的描述信息將各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù)復(fù)制到數(shù)據(jù)區(qū)。由于該描述信息包括了各個(gè)數(shù)據(jù)文件在閃存中的起始地址,大小,以及對(duì)應(yīng)的數(shù)據(jù)文件名,即可按照該信息文件中各個(gè)有效數(shù)據(jù)的描述信息的排列順序復(fù)制各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),從而完成信息文件和數(shù)據(jù)文件的合成;或者先將第一個(gè)有效數(shù)據(jù)對(duì)應(yīng)的描述信息復(fù)制到信息區(qū),再將對(duì)應(yīng)的第一個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù)復(fù)制到數(shù)據(jù)區(qū); 然后再?gòu)?fù)制下一個(gè)有效數(shù)據(jù)的描述信息到信息區(qū),再將對(duì)應(yīng)的該下一個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù)復(fù)制到數(shù)據(jù)區(qū)。當(dāng)然也可以采用其他方式將信息文件中的描述信息復(fù)制到該信息區(qū), 將各個(gè)有效數(shù)據(jù)復(fù)制到該數(shù)據(jù)區(qū),參見(jiàn)圖4,為本實(shí)施例中合成的燒錄文件的格式。在一具體實(shí)施例中,需要燒錄一個(gè)機(jī)頂盒軟件到128M大小的nand flash中,該軟件內(nèi)容包括 uboot、loader、kernel、application、userdata 等,且這些數(shù)據(jù),需要燒錄到 flash 中的特定位置,但這些數(shù)據(jù)未占滿(mǎn)整個(gè)flash,本實(shí)施例中生成的燒錄文件如下所示 00000000 00000400 00000100 00008000 0000A000 00002800 0000D000 0000A000 00000002 00002000uboot 數(shù)據(jù) Q56K) loader 數(shù)據(jù)(8M) kernel 數(shù)據(jù)(2· 5M) application 數(shù)據(jù)(IOM) userdata 數(shù)據(jù)(2M)。
后續(xù)將繼續(xù)沿用本實(shí)施例中的有效數(shù)據(jù)及其描述信息。
本實(shí)施例中,在合成燒錄文件之前,可預(yù)先定義該燒錄文件的信息區(qū)的大小,從而當(dāng)讀取有效數(shù)據(jù)時(shí),可直接從該燒錄文件中固定位置開(kāi)始讀取有效數(shù)據(jù)即可。當(dāng)然該信息區(qū)的大小也可不是預(yù)先定義的,而是在該信息區(qū)內(nèi)設(shè)置一個(gè)信息區(qū)結(jié)束標(biāo)識(shí),從而便于根據(jù)該結(jié)束標(biāo)識(shí)來(lái)區(qū)分信息區(qū)和數(shù)據(jù)區(qū),該結(jié)束標(biāo)識(shí)可為設(shè)置在信息區(qū)結(jié)束位置的某特定值,例如“0”,也可為設(shè)置在該信息區(qū)開(kāi)頭的表示數(shù)據(jù)區(qū)包括的有效數(shù)據(jù)的個(gè)數(shù)的一個(gè)數(shù)值。
S12,讀取燒錄文件的信息區(qū),得到各個(gè)有效數(shù)據(jù)的描述信息,該描述信息包括有效數(shù)據(jù)的大小以及其在閃存中的起始地址。在一具體實(shí)施例中,由于合成的燒錄文件的信息區(qū)的描述信息采用了高低字節(jié)反轉(zhuǎn)的方式,則讀取該燒錄文件的信息區(qū)得到的該5個(gè)有效數(shù)據(jù)uboot、loader、kernel、application、userdata的描述信息分別為起始地址0x0, 大小0x40000 ;起始地址0x100000,大小0x800000 ;起始地址OxAOOOOO,大小0x280000 ;起始地址 OxDOOOOO,大小 OxAOOOOO ;起始地址 0x2000000,大小 0x200000。S13,根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取燒錄文件的數(shù)據(jù)區(qū)內(nèi)的各個(gè)有效數(shù)據(jù)。具體實(shí)施時(shí),在執(zhí)行該步驟S13之前,還需要檢測(cè)閃存,得到該閃存包括多少個(gè)塊,以及每個(gè)塊的大小等特征信息,并根據(jù)該特征信息擦除整個(gè)閃存,以便于后續(xù)燒錄。在一具體實(shí)施例中,首先由燒錄設(shè)備檢測(cè)flash芯片,讀取flash芯片特征信息,并根據(jù)該特征信息擦除整個(gè)flash。根據(jù)第一個(gè)有效數(shù)據(jù)uboot的大??;0x40000,從數(shù)據(jù)區(qū)開(kāi)始位置順序讀取256k 數(shù)據(jù);
根據(jù)第二個(gè)有效數(shù)據(jù)loader的大小0X800000,從數(shù)據(jù)區(qū)中第一個(gè)有效數(shù)據(jù)結(jié)束的位置開(kāi)始順序讀取8M數(shù)據(jù);
根據(jù)第三個(gè)有效數(shù)據(jù)kernel的大小=0x280000,從數(shù)據(jù)區(qū)中上一個(gè)有效數(shù)據(jù)結(jié)束的位置開(kāi)始順序讀取2. 5M數(shù)據(jù);
根據(jù)第四個(gè)有效數(shù)據(jù)application的大小大小OxAOOOOO,從數(shù)據(jù)區(qū)上一個(gè)有效數(shù)據(jù)結(jié)束位置開(kāi)始順序讀取10M數(shù)據(jù);
根據(jù)第五個(gè)有效數(shù)據(jù)userdata的大小0x200000,從數(shù)據(jù)區(qū)上一個(gè)有效數(shù)據(jù)接結(jié)束位置開(kāi)始順序讀取2M數(shù)據(jù)。S14,當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)該有效數(shù)據(jù)的描述信息,將所讀取到的該有效數(shù)據(jù)燒錄到閃存中。在一具體實(shí)施例中,根據(jù)步驟S12中讀取到的該有效數(shù)據(jù)的大小和在flash中的起始地址等描述信息,將讀取的該有效數(shù)據(jù)寫(xiě)入到flash中
當(dāng)讀取到第一個(gè)有效數(shù)據(jù)uboot時(shí),根據(jù)該第一個(gè)有效數(shù)據(jù)uboot的大小及其在flash 中的起始地址0x0,立即將該第一個(gè)有效數(shù)據(jù)uboot寫(xiě)入flash的0x0處;
當(dāng)讀取到第二有效數(shù)據(jù)loader時(shí),根據(jù)該第二個(gè)有效數(shù)據(jù)loader的大小及其在flash 中的起始地址0xl00000,立即將該第二個(gè)有效數(shù)據(jù)loader寫(xiě)入flash的0x100000處; 當(dāng)讀取到第三個(gè)有效數(shù)據(jù)kernel時(shí),根據(jù)該第三個(gè)有效數(shù)據(jù)kernel的大小及其在 flash中的起始地址0xA00000,立即將該第三個(gè)有效數(shù)據(jù)kernel寫(xiě)入flash的OxAOOOOO 處;
當(dāng)讀取到第四個(gè)有效數(shù)據(jù)application時(shí),根據(jù)該第四個(gè)有效數(shù)據(jù)application的大小及其在flash中的起始地址0xD00000,立即將該第四個(gè)有效數(shù)據(jù)applicationl寫(xiě)入 flash 的 OxDOOOOO 處;
當(dāng)讀取到第五個(gè)有效數(shù)據(jù)userdata時(shí),根據(jù)該第五個(gè)有效數(shù)據(jù)userdata的大小及其在flash中的起始地址0x2000000,立即將該第五個(gè)有效數(shù)據(jù)userdata寫(xiě)入flash的 0x2000000 處。本實(shí)施例通過(guò)將信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)既包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件,其中該數(shù)據(jù)區(qū)包括數(shù)據(jù)文件中的有效數(shù)據(jù),信息區(qū)包括信息文件中對(duì)應(yīng)各個(gè)有效數(shù)據(jù)的描述信息,再讀取該燒錄文件的信息區(qū),得到有效數(shù)據(jù)的描述信息,并根據(jù)有效數(shù)據(jù)的描述信息,讀取該燒錄文件的數(shù)據(jù)區(qū)的有效數(shù)據(jù),將讀取到的有效數(shù)據(jù)燒錄到閃
8存中,即通過(guò)將有效數(shù)據(jù)的描述信息和有效數(shù)據(jù)本身合成到一個(gè)燒錄文件,使得該燒錄文件即包括了有效數(shù)據(jù),又包括了有效數(shù)據(jù)的描述信息,從而避免將有效數(shù)據(jù)和有效數(shù)據(jù)的描述信息分別放置在兩個(gè)文件中時(shí),由于誤操作而導(dǎo)致描述信息文件與有效數(shù)據(jù)文件不匹配的問(wèn)題,同時(shí)由于該燒錄文件中不包括填充數(shù)據(jù),該燒錄文件小巧,進(jìn)而燒錄時(shí)跳過(guò)了填充數(shù)據(jù),燒錄時(shí)更加方便、安全;并且即便閃存中存在壞塊,也只需要下載一次該燒錄文件, 從而根據(jù)該燒錄文件來(lái)進(jìn)行燒錄,提高了效率,且不易出錯(cuò)。
同時(shí),本實(shí)施例的閃存燒錄方法還適用于對(duì)閃存內(nèi)的數(shù)據(jù)進(jìn)行更新,首先將生成的需要更新的數(shù)據(jù)文件,以及對(duì)應(yīng)的信息文件合成為一個(gè)燒錄文件,即該燒錄文件的信息區(qū)包括需要更新的有效數(shù)據(jù)的描述信息,數(shù)據(jù)區(qū)包括了需要更新的有效數(shù)據(jù),再讀取該燒錄文件的信息區(qū),得到需要更新的各個(gè)有效數(shù)據(jù)的描述信息,根據(jù)各個(gè)有效數(shù)據(jù)的描述信息擦除閃存中對(duì)應(yīng)的區(qū)域或者塊,當(dāng)每擦除一個(gè)區(qū)域或者塊后,則根據(jù)描述信息,讀取對(duì)應(yīng)一個(gè)有效數(shù)據(jù),并將其寫(xiě)入所擦除的區(qū)域或者塊中,避免了將需要更新的有效數(shù)據(jù)及其描述信息分別放置在多個(gè)文件中時(shí),由于誤操作而導(dǎo)致描述信息文件與包括更新數(shù)據(jù)的數(shù)據(jù)文件不匹配的問(wèn)題,并且即便閃存中存在壞塊,也只需要下載一次該燒錄文件,從而根據(jù)該燒錄文件來(lái)進(jìn)行燒錄,提高了數(shù)據(jù)的更新效率,并且不易出錯(cuò)。
然而,由于閃存的特性,在擦除或?qū)懭脒^(guò)程中,容易出現(xiàn)壞塊。當(dāng)出現(xiàn)壞塊時(shí),燒錄時(shí)會(huì)把數(shù)據(jù)順延,即寫(xiě)到下一個(gè)好塊,從而導(dǎo)致本來(lái)應(yīng)該燒在某個(gè)位置的數(shù)據(jù),燒在了其后的某個(gè)位置。例如,當(dāng)flash的loader部分出現(xiàn)壞塊時(shí),會(huì)導(dǎo)致kernel、application, userdata部分的數(shù)據(jù),都燒在了后面與起始地址不對(duì)應(yīng)的位置,從而導(dǎo)致uboot加載 kernel時(shí)出錯(cuò)。而為避免上述問(wèn)題,目前,當(dāng)寫(xiě)入文件到存在壞塊的flash時(shí),通常將各個(gè)有效數(shù)據(jù)分開(kāi)寫(xiě)入,即將包括多個(gè)有效數(shù)據(jù)的數(shù)據(jù)文件,切割成5份,放到5個(gè)文件,從而導(dǎo)致燒錄數(shù)據(jù)時(shí),需要下載、擦除、寫(xiě)入,各5次,進(jìn)而使得燒錄的效率不高,并且容易出錯(cuò)。然而,采用本發(fā)明實(shí)施例的閃存燒錄方法則能夠避免這種問(wèn)題,從而提高燒錄的效率,并且不容易出錯(cuò)。參見(jiàn)圖5,為本發(fā)明的閃存燒錄方法的又一實(shí)施例的流程圖。本實(shí)施例中包括上述實(shí)施例中的步驟Sll至S14,不同的是本實(shí)施例中,執(zhí)行該步驟S13之前還包括步驟S15,每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除閃存中對(duì)應(yīng)該有效數(shù)據(jù)的一個(gè)區(qū)域。即是說(shuō)本實(shí)施例中當(dāng)每擦除一個(gè)區(qū)域,然后再讀取一個(gè)有效數(shù)據(jù),并將讀取的有效數(shù)據(jù)寫(xiě)入所擦除的區(qū)域中。在一具體實(shí)施例中,若flash中已經(jīng)有可以運(yùn)行的uboot,并且能通過(guò)tftp下載文件,具體燒錄實(shí)施過(guò)程如下uboot擦除flash從OxO開(kāi)始的256K大小區(qū)域;uboot跳到燒錄文件的數(shù)據(jù)區(qū),順序讀取256K數(shù)據(jù),即第一個(gè)有效數(shù)據(jù)uboot ;并將該第一個(gè)有效數(shù)據(jù)uboot寫(xiě)入所擦除的區(qū)域中;uboot擦除flash從0x100000開(kāi)始的8M大小區(qū)域;uboot跳到燒錄文件的數(shù)據(jù)區(qū),順序讀取8M數(shù)據(jù),即第二個(gè)有效數(shù)據(jù)loader ;并將該第二個(gè)有效數(shù)據(jù)uboot寫(xiě)入所擦除的區(qū)域中;uboot擦除flash從OxAOOOOO開(kāi)始的2. 5M大小區(qū)域;uboot跳到燒錄文件的數(shù)據(jù)區(qū), 順序讀取2. 5M數(shù)據(jù),即第三個(gè)有效數(shù)據(jù)kernel ;并將該第三個(gè)有效數(shù)據(jù)uboot寫(xiě)入所擦除的區(qū)域中;uboot擦除flash從OxDOOOOO開(kāi)始的IOM大小區(qū)域;uboot跳到燒錄文件的數(shù)據(jù)區(qū),順序讀取IOM數(shù)據(jù)有效數(shù)據(jù),即第四個(gè)application;并將該第四個(gè)有效數(shù)據(jù)uboot寫(xiě)入所擦除的區(qū)域中;
uboot擦除flash從0x2000000開(kāi)始的2M大小區(qū)域,uboot跳到燒錄文件的數(shù)據(jù)區(qū),順序讀取2M數(shù)據(jù),即第五個(gè)有效數(shù)據(jù)userdata ;并將該第五個(gè)有效數(shù)據(jù)uboot寫(xiě)入所擦除的區(qū)域中。參見(jiàn)圖6,為本發(fā)明的閃存燒錄方法的再一實(shí)施例的流程圖。本實(shí)施例中包括上述實(shí)施例中的步驟Sll至S14,不同的是本實(shí)施例中,執(zhí)行該步驟S14之前還包括步驟S16, 每當(dāng)讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為壞塊。若檢測(cè)結(jié)果為不是,則將該有效數(shù)據(jù)燒錄到當(dāng)前塊中,即執(zhí)行步驟S14 ;若檢測(cè)結(jié)果為是,則執(zhí)行步驟 S17。具體實(shí)施時(shí),檢測(cè)當(dāng)前塊是否為壞塊的方式包括一、閃存中的壞塊有壞塊標(biāo)識(shí),當(dāng)寫(xiě)入有效數(shù)據(jù)之前,檢測(cè)該塊是否有壞塊標(biāo)識(shí),若有,則檢測(cè)下一個(gè)塊是否有壞塊標(biāo)識(shí),若無(wú), 則將該有效數(shù)據(jù)寫(xiě)入該塊中,若有,則繼續(xù)檢測(cè)再下一個(gè)塊,直至找到一個(gè)好塊為止;二、 將數(shù)據(jù)寫(xiě)入該塊中,再將寫(xiě)入的數(shù)據(jù)讀出來(lái),比較讀取的數(shù)據(jù)與寫(xiě)入的數(shù)據(jù)是否相同,若相同,則該塊不為壞塊,否則該塊為壞塊,若為壞塊,則采用相同的方式檢測(cè)下一個(gè)塊,直至找到好塊為止。S17,跳過(guò)當(dāng)前塊,將讀取的該有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。實(shí)施本發(fā)明實(shí)施例的閃存燒錄方法,通過(guò)將信息文件和數(shù)據(jù)文件合成為包括有效數(shù)據(jù),又包括有效數(shù)據(jù)的描述信息的燒錄文件,并從中獲取有效數(shù)據(jù),及其對(duì)應(yīng)的描述信息,再根據(jù)該描述信息將有效數(shù)據(jù)寫(xiě)入閃存中,并且當(dāng)遇到壞塊時(shí),也不需要將各個(gè)有效數(shù)據(jù)分割為多個(gè)文件,即只需要下載一次燒錄文件,便可從該燒錄文件中獲取到各個(gè)有效數(shù)據(jù)的描述信息和有效數(shù)據(jù)本身,并根據(jù)該描述信息將有效數(shù)據(jù)寫(xiě)入閃存中,從而提高了燒錄的效率,也不容易出錯(cuò)?;谏鲜龅拈W存燒錄方法,本發(fā)明實(shí)施例還提供了一種燒錄設(shè)備。下面將結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明實(shí)施例的燒錄設(shè)備進(jìn)行詳細(xì)的說(shuō)明。參見(jiàn)圖7,為本發(fā)明的燒錄設(shè)備的一實(shí)施例的功能模塊圖。具體實(shí)施時(shí),本發(fā)明實(shí)施例的燒錄設(shè)備包括
描述信息讀取模塊11,用于讀取將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件的信息區(qū),得到各個(gè)數(shù)據(jù)文件中有效數(shù)據(jù)的描述信息;該數(shù)據(jù)區(qū)包括各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),該信息區(qū)包括該信息文件中對(duì)應(yīng)于各個(gè)有效數(shù)據(jù)的描述信息;具體實(shí)施時(shí),該信息區(qū)的大小可以是預(yù)先定義的,當(dāng)然也可以在該信息區(qū)內(nèi)設(shè)置結(jié)束標(biāo)識(shí);
有效數(shù)據(jù)讀取模塊12,用于根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù);具體實(shí)施時(shí),若該信息區(qū)的大小預(yù)先定義的,則有效數(shù)據(jù)讀取模塊12直接從該燒錄文件固定位置開(kāi)始順序讀取數(shù)據(jù)區(qū)內(nèi)的有效數(shù)據(jù);或者若在該信息區(qū)內(nèi)設(shè)置了信息區(qū)結(jié)束標(biāo)識(shí),則該有效數(shù)據(jù)讀取模塊12直接根據(jù)該信息區(qū)結(jié)束標(biāo)識(shí)從數(shù)據(jù)區(qū)讀取有效數(shù)據(jù); 燒錄模塊13,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),根據(jù)該有效數(shù)據(jù)的描述信息,將該有效數(shù)據(jù)燒錄到閃存中。實(shí)施本實(shí)施例的燒錄設(shè)備,通過(guò)讀取包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件的信息區(qū)來(lái)獲取有效數(shù)據(jù)的描述信息,再根據(jù)描述信息讀取有效數(shù)據(jù),即通過(guò)讀取包括了有效數(shù)據(jù),又包括了對(duì)應(yīng)于有效數(shù)據(jù)的描述信息的燒錄文件來(lái)進(jìn)行數(shù)據(jù)的燒錄,從而避免了將有效數(shù)據(jù)和有效數(shù)據(jù)的描述信息分別放置在多個(gè)文件(多個(gè)數(shù)據(jù)文件和一個(gè)描述信息文件)中時(shí),由于誤操作而導(dǎo)致描述信息文件與有效數(shù)據(jù)文件不匹配的問(wèn)題,同時(shí)由于該燒錄文件中不包括填充數(shù)據(jù),該燒錄文件小巧,進(jìn)而燒錄時(shí)跳過(guò)了填充數(shù)據(jù),燒錄時(shí)更加方便、安全;并且即便閃存中存在壞塊,也只需要下載一次該燒錄文件,進(jìn)而根據(jù)該燒錄文件來(lái)進(jìn)行燒錄,提高了效率,且不易出錯(cuò)。
參見(jiàn)圖8,為本發(fā)明的燒錄設(shè)備的又一實(shí)施例的功能模塊圖。具體實(shí)施時(shí),本實(shí)施例的燒錄設(shè)備也包括上述的描述信息讀取模塊11、有效數(shù)據(jù)讀取模塊12和燒錄模塊13,相同的模塊采用相同的名稱(chēng)和附圖標(biāo)記,不同的是本發(fā)明實(shí)施例的燒錄設(shè)備還包括檢測(cè)模塊14,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)閃存中將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為塊;本實(shí)施例的燒錄模塊14用于在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊不為壞塊時(shí),將讀取到的該有效數(shù)據(jù)寫(xiě)入該當(dāng)前塊中;或者在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊為壞塊時(shí),跳過(guò)當(dāng)前塊,將讀取的該有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。
本實(shí)施例中的后續(xù)的不為壞塊的塊是指當(dāng)檢測(cè)模塊檢測(cè)到當(dāng)前塊為壞塊時(shí),則繼續(xù)檢測(cè)下一個(gè)的塊是否為壞塊,若是則再繼續(xù)檢測(cè)再下一個(gè)塊是否為壞塊,直至檢測(cè)到一個(gè)不為壞塊的塊,則該不為壞塊的塊即為當(dāng)前塊的后續(xù)塊,且不為壞塊。
本實(shí)施例的燒錄設(shè)備還可包括特征信息獲取模塊,用于檢測(cè)閃存,得到該閃存的特征信息,例如該閃存包括多少個(gè)塊,每個(gè)塊的大小等;閃存擦除模塊,用于根據(jù)得到特征信息擦除整個(gè)閃存。
本實(shí)施例中的燒錄設(shè)備通過(guò)讀取既包括有效數(shù)據(jù)描述信息,又包括有效數(shù)據(jù)的燒錄文件,并且當(dāng)描述信息讀取模塊讀取到該燒錄文件的信息區(qū)中對(duì)應(yīng)各個(gè)有效數(shù)據(jù)的描述信息之前,該閃存擦除模塊將閃存整個(gè)擦除,再讀取描述信息,并由有效數(shù)據(jù)讀取模塊根據(jù)讀取的描述信息讀取數(shù)據(jù)區(qū)中對(duì)應(yīng)的有效數(shù)據(jù),最后由燒錄模塊將該有效數(shù)據(jù)寫(xiě)入到該閃存中,從而遇到壞塊時(shí),不需要多次下載數(shù)據(jù)文件,提高了燒錄效率,也不容易出錯(cuò)。
在另一具體實(shí)施例中,本發(fā)明實(shí)施例的燒錄設(shè)備也包括上述的描述信息讀取模塊 11、有效數(shù)據(jù)讀取模塊12和燒錄模塊13,相同的模塊采用相同的名稱(chēng)和附圖標(biāo)記,不同的是本實(shí)施例的燒錄設(shè)備還包括區(qū)域擦除模塊,用于在每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除閃存中對(duì)應(yīng)該有效數(shù)據(jù)的區(qū)域。
本實(shí)施例中的燒錄設(shè)備通過(guò)讀取既包括有效數(shù)據(jù)描述信息,又包括有效數(shù)據(jù)的燒錄文件,并且當(dāng)描述信息讀取模塊讀取到各個(gè)有效數(shù)據(jù)的描述信息,該區(qū)域擦除模塊根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,每擦除對(duì)應(yīng)一個(gè)有效數(shù)據(jù)的一個(gè)區(qū)域時(shí),再由有效數(shù)據(jù)讀取模塊讀取數(shù)據(jù)區(qū)中對(duì)應(yīng)的該有效數(shù)據(jù),并由燒錄模塊將該有效數(shù)據(jù)寫(xiě)入到該區(qū)域中,從而遇到壞塊時(shí),不需要多次下載數(shù)據(jù)文件,提高了燒錄效率,也不容易出錯(cuò)。
參見(jiàn)圖9,本發(fā)明實(shí)施例還提供了一種燒錄系統(tǒng),包括合成模塊21,用于將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為包括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件,其中該數(shù)據(jù)區(qū)包括各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),信息區(qū)包括對(duì)應(yīng)于有效數(shù)據(jù)的描述信息;具體實(shí)施時(shí),該合成模塊21可在終端(例如電腦)中先下載或者導(dǎo)入一個(gè)信息文件和對(duì)應(yīng)的多個(gè)數(shù)據(jù)文件,并將該信息文件中的有效數(shù)據(jù)的描述信息復(fù)制到燒錄文件中的信息區(qū),將各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù)復(fù)制到該燒錄文件中的數(shù)據(jù)區(qū),從而合成為一個(gè)既包括有效數(shù)據(jù),又包括描述信息的燒錄文件,從而使得燒錄設(shè)備只需要讀取這一個(gè)燒錄文件即可執(zhí)行數(shù)據(jù)的燒錄;在一具體實(shí)施例中,該合成模塊21可通過(guò)一個(gè)軟件來(lái)實(shí)現(xiàn);
該燒錄系統(tǒng)還包括上述實(shí)施例中的燒錄設(shè)備I ;具體實(shí)施時(shí),該燒錄設(shè)備I可直接讀取合成的燒錄文件中的信息區(qū)的描述信息,和數(shù)據(jù)區(qū)的有效數(shù)據(jù),并根據(jù)讀取的描述信息將各個(gè)有效數(shù)據(jù)寫(xiě)入到閃存中。以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來(lái)限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
1權(quán)利要求
1.一種閃存燒錄方法,其特征在于,包括將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件,所述數(shù)據(jù)區(qū)包括各個(gè)所述數(shù)據(jù)文件中的有效數(shù)據(jù),所述信息區(qū)包括所述信息文件中的對(duì)應(yīng)于所述有效數(shù)據(jù)的描述信息;讀取所述燒錄文件的信息區(qū),得到各個(gè)有效數(shù)據(jù)的描述信息;所述描述信息包括所述有效數(shù)據(jù)在閃存中的起始地址和大小;根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù);當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)該有效數(shù)據(jù)的描述信息將所讀取到的有效數(shù)據(jù)燒錄到所述閃存中。
2.如權(quán)利要求I所述的閃存燒錄方法,其特征在于,所述讀取所述燒錄文件的信息區(qū), 得到各個(gè)有效數(shù)據(jù)的描述信息的步驟之前,還包括檢測(cè)所述閃存,得到所述閃存的特征信息;根據(jù)所述特征信息擦除整個(gè)閃存。
3.如權(quán)利要求I所述的閃存燒錄方法,其特征在于,所述根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù)的步驟,具體包括每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除所述閃存中對(duì)應(yīng)于該有效數(shù)據(jù)的區(qū)域;根據(jù)有效數(shù)據(jù)的描述信息,讀取所述數(shù)據(jù)區(qū)中的有效數(shù)據(jù)。
4.如權(quán)利要求2或3所述的閃存燒錄方法,其特征在于,所述當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)所讀取的有效數(shù)據(jù)的描述信息將所讀取到的有效數(shù)據(jù)燒錄到所述閃存中的步驟,具體包括當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為壞塊,若不是, 則將該有效數(shù)據(jù)寫(xiě)入到當(dāng)前塊中;若當(dāng)前塊為壞塊,則跳過(guò)所述當(dāng)前塊,將讀取的所述有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。
5.如權(quán)利要求4所述的閃存燒錄方法,其特征在于,所述信息區(qū)的大小為預(yù)先定義的或者所述信息區(qū)包括信息區(qū)結(jié)束標(biāo)識(shí)。
6.一種燒錄設(shè)備,其特征在于,包括描述信息讀取模塊,用于讀取將信息文件和至少一個(gè)數(shù)據(jù)文件合成為包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件的信息區(qū),得到各個(gè)數(shù)據(jù)文件中有效數(shù)據(jù)的描述信息;所述數(shù)據(jù)區(qū)包括各個(gè)數(shù)據(jù)文件中的有效數(shù)據(jù),所述信息區(qū)包括信息文件中的對(duì)應(yīng)于所述有效數(shù)據(jù)的描述信息;所述描述信息包括所述有效數(shù)據(jù)的大小以及其在閃存中的起始地址;有效數(shù)據(jù)讀取模塊,用于根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取所述數(shù)據(jù)區(qū)中的各個(gè)有效數(shù)據(jù);燒錄模塊,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),根據(jù)該有效數(shù)據(jù)的描述信息將所讀取到的所述有效數(shù)據(jù)燒錄到閃存中。
7.如權(quán)利要求6所述的燒錄設(shè)備,其特征在于,所述燒錄設(shè)備還包括特征信息獲取模塊,用于檢測(cè)所述閃存,得到所述閃存的特征信息;閃存擦除模塊,用于根據(jù)所述特征信息擦除整個(gè)閃存。
8.如權(quán)利要求6所述的燒錄設(shè)備,其特征在于,所述燒錄設(shè)備還包括;區(qū)域擦除模塊,用于在所述有效數(shù)據(jù)讀取模塊每讀取一個(gè)有效數(shù)據(jù)之前,根據(jù)該有效數(shù)據(jù)的描述信息,擦除所述閃存中對(duì)應(yīng)于所述有效數(shù)據(jù)的區(qū)域;所述燒錄模塊用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),根據(jù)該有效數(shù)據(jù)的描述信息,將讀取到的該有效數(shù)據(jù)寫(xiě)入所述區(qū)域擦除模塊所擦除的對(duì)應(yīng)于該有效數(shù)據(jù)的區(qū)域中。
9.如權(quán)利要求6至8中任意一項(xiàng)所述的燒錄設(shè)備,其特征在于,還包括檢測(cè)模塊,用于在每讀取到一個(gè)有效數(shù)據(jù)時(shí),檢測(cè)所述閃存中將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊是否為壞塊;所述燒錄模塊用于在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊不為壞塊時(shí),將讀取到的該有效數(shù)據(jù)寫(xiě)入所述當(dāng)前塊中;或者在每讀取到一個(gè)有效數(shù)據(jù),并且檢測(cè)到將要寫(xiě)入該有效數(shù)據(jù)的當(dāng)前塊為壞塊時(shí),跳過(guò)所述當(dāng)前塊,將讀取的該有效數(shù)據(jù)寫(xiě)入到后續(xù)的不為壞塊的塊中。
10.一種燒錄系統(tǒng),其特征在于,包括合成模塊,用于將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括數(shù)據(jù)區(qū)和信息區(qū)的燒錄文件;如權(quán)利要求6至9中任意一項(xiàng)所述的燒錄設(shè)備。
全文摘要
本發(fā)明公開(kāi)了一種閃存燒錄方法,包括將下載的信息文件和至少一個(gè)數(shù)據(jù)文件合成為一個(gè)包括信息區(qū)和數(shù)據(jù)區(qū)的燒錄文件,該數(shù)據(jù)區(qū)包括數(shù)據(jù)文件中的有效數(shù)據(jù),信息區(qū)包括信息文件中對(duì)應(yīng)有效數(shù)據(jù)的描述信息;讀取燒錄文件的信息區(qū)得到各個(gè)有效數(shù)據(jù)的描述信息;根據(jù)各個(gè)有效數(shù)據(jù)的描述信息,依次讀取各個(gè)有效數(shù)據(jù);當(dāng)每讀取到一個(gè)有效數(shù)據(jù)時(shí),則根據(jù)有效數(shù)據(jù)的描述信息將該有效數(shù)據(jù)燒錄到閃存中,從而避免因誤操作而導(dǎo)致描述信息文件與有效數(shù)據(jù)文件不匹配的問(wèn)題,且該燒錄文件中不包括填充數(shù)據(jù),從而燒錄時(shí)跳過(guò)填充數(shù)據(jù),燒錄時(shí)更加方便、安全;并且只需要下載一次燒錄文件,從而根據(jù)該燒錄文件進(jìn)行燒錄,提高了效率。本發(fā)明還提供了燒錄設(shè)備和燒錄系統(tǒng)。
文檔編號(hào)G11C16/10GK102543193SQ20111045778
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者廖青山 申請(qǐng)人:深圳創(chuàng)維數(shù)字技術(shù)股份有限公司