CN102543193B - 一种闪存烧录方法、烧录设备及烧录*** - Google Patents
一种闪存烧录方法、烧录设备及烧录*** Download PDFInfo
- Publication number
- CN102543193B CN102543193B CN201110457782.8A CN201110457782A CN102543193B CN 102543193 B CN102543193 B CN 102543193B CN 201110457782 A CN201110457782 A CN 201110457782A CN 102543193 B CN102543193 B CN 102543193B
- Authority
- CN
- China
- Prior art keywords
- valid data
- data
- block
- descriptor
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种闪存烧录方法,包括将下载的信息文件和至少一个数据文件合成为一个包括信息区和数据区的烧录文件,该数据区包括数据文件中的有效数据,信息区包括信息文件中对应有效数据的描述信息;读取烧录文件的信息区得到各个有效数据的描述信息;根据各个有效数据的描述信息,依次读取各个有效数据;当每读取到一个有效数据时,则根据有效数据的描述信息将该有效数据烧录到闪存中,从而避免因误操作而导致描述信息文件与有效数据文件不匹配的问题,且该烧录文件中不包括填充数据,从而烧录时跳过填充数据,烧录时更加方便、安全;并且只需要下载一次烧录文件,从而根据该烧录文件进行烧录,提高了效率。本发明还提供了烧录设备和烧录***。
Description
技术领域
本发明涉及闪存,尤其涉及一种闪存烧录方法、烧录设备及烧录***。
背景技术
目前,闪存的烧录方法有两种:一为母片拷贝方式,即将用户原始flash上的内容拷贝到板载flash后,再将板载flash上相应的内容写入空的flash;二为文件方式,即将指定文件置于移动硬盘或者编程器内置硬盘,再读出该文件的内容并按照指定的方式写入flash。
采用文件方式烧录时,需要两个文件:实际要烧录的数据文件,参见图1,为数据文件的格式;描述数据在flash中位置的描述信息文件,参见图2,为描述信息文件的格式。采用文件方式烧录时,需要分别下载该描述信息文件和数据文件,但如果由于操作失误时,数据文件和描述信息文件不匹配,从而导致烧录到flash的内容错误;并且烧录时,是顺序读取数据文件的内容,当数据在flash中不连续时,则会有填充数据,从而导致数据文件庞大。
发明内容
本发明实施例所要解决的技术问题在于,提供一种闪存烧录方法、烧录设备及烧录***,可避免信息文件与数据文件之间的匹配问题,且烧录方便、安全。
为了解决上述技术问题,本发明实施例提供了一种闪存烧录方法,包括:
将下载的信息文件和至少一个数据文件所述信息文件和所述数据文件合成为一个包括数据区和信息区的烧录文件,所述数据区包括各个所述数据文件中的有效数据,所述信息区包括所述信息文件中对应于所述有效数据的描述信息;
读取所述烧录文件的信息区,得到各个有效数据的描述信息;所述描述信息包括所述有效数据在闪存中的起始地址和大小;
根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据;
当每读取到一个有效数据时,则根据该有效数据的描述信息将所读取到的有效数据烧录到所述闪存中。
其中,所述读取所述烧录文件的信息区,得到各个有效数据的描述信息的步骤之前,还包括:
检测所述闪存,得到所述闪存的特征信息;
根据所述特征信息擦除整个闪存。
其中,所述根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据的步骤,具体包括:
每读取一个有效数据之前,根据该有效数据的描述信息,擦除所述闪存中对应于该有效数据的区域;
根据有效数据的描述信息,读取所述数据区中的有效数据。
其中,所述当每读取到一个有效数据时,则根据所读取的有效数据的描述信息将所读取到的有效数据烧录到所述闪存中的步骤,具体包括:
每当读取到一个有效数据时,检测将要写入该有效数据的当前块是否为坏块,若不是,则将该有效数据写入到当前块中;若当前块为坏块,则跳过所述当前块,将读取的所述有效数据写入到后续的不为坏块的块中。
其中,所述信息区的大小为预先定义的,或者所述信息区内包括信息区结束标识。
一种烧录设备,包括:
描述信息读取模块,用于读取将信息文件和至少一个数据文件合成为一个包括信息区和数据区的烧录文件的信息区,得到各个数据文件中有效数据的描述信息;所述数据区包括各个数据文件中的有效数据,所述信息区包括所述信息文件中的对应于所述有效数据的描述信息,所述描述信息包括所述有效数据的大小以及其在闪存中的起始地址;
有效数据读取模块,用于根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据;
烧录模块,用于在每读取到一个有效数据时,根据该有效数据的描述信息将所读取到的所述有效数据烧录到闪存中。
其中,所述烧录设备还包括:
特征信息获取模块,用于检测所述闪存,得到所述闪存的特征信息;
闪存擦除模块,用于根据所述特征信息擦除整个闪存。
其中,所述烧录设备还包括;
区域擦除模块,用于在所述有效数据读取模块每读取一个有效数据之前,根据该有效数据的描述信息,擦除所述闪存中对应于所述有效数据的区域;
所述烧录模块用于在每读取到一个有效数据时,根据该有效数据的描述信息,将读取到的该有效数据写入所述区域擦除模块所擦除的对应于该有效数据的区域中。
其中,所述烧录设备还包括:
检测模块,用于在每读取到一个有效数据时,检测所述闪存中将要写入该有效数据的当前块是否为坏块;
所述烧录模块用于在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块不为坏块时,将读取到的该有效数据写入所述当前块中;或者
在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块为坏块时,跳过所述当前块,将读取的该有效数据写入到后续的不为坏块的块中。
一种烧录***,包括:
合成模块,用于将下载的信息文件和至少一个数据文件合成为一个包括数据区和信息区的烧录文件;以及如上述的烧录设备。
实施本发明实施例,具有如下有益效果:
本发明实施例的闪存烧录方法,通过将信息文件和数据文件合成为包括数
据区和信息区的烧录文件,其中数据区包括多个有效数据,信息区包括各个有效数据的描述信息,即通过将数据文件和信息文件合成为即包括了有效数据,又包括了有效数据的描述信息的烧录文件,避免了将有效数据和有效数据的描述信息分别放置在两个文件中时,由于误操作而导致描述信息文件与有效数据文件不匹配的问题,同时由于该烧录文件中不包括填充数据,该烧录文件小巧,从而烧录时跳过了填充数据,烧录时更加方便、安全;并且即便闪存中存在坏块,也只需要下载一次该烧录文件,从而根据该烧录文件来进行烧录,提高了效率,且不易出错。
本发明实施例的闪存烧录方法由于烧录文件中预先定义了大小的信息区,从而读取数据时,可直接到该烧录文件的固定位置开始读取数据,进而使得该方法更加简单。
本发明实施例的闪存烧录方法,通过根据设置在信息区内的结束标识来识别数据区的开始位置,从而读取数据,由于该信息区的大小可变,进而具有较强的灵活性。
本发明实施例的闪存烧录方法,通过下载既包括有效数据,又包括了有效数据的描述信息的烧录文件,当烧录有效数据时,即便遇到坏块,也可直接从已下载的该烧录文件中读取有效数据和有效数据的描述信息,避免需要将各个有效数据分开写入,即将包括多个有效数据的数据文件,切割成多份,放到多个文件,而导致烧录数据时,需要下载、擦除、写入多次的情况,从而提高烧录效率,并且不容易出错。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的数据文件的格式示意图;
图2是现有的描述信息文件的格式示意图;
图3是本发明的闪存烧录方法的一实施例的流程图;
图4是本发明的闪存烧录方法的一实施例中的烧录文件的格式示意图;
图5是本发明的闪存烧录方法的又一实施例的流程图;
图6是本发明的闪存烧录方法的再一实施例的流程图;
图7是本发明的烧录设备的一实施例的功能模块图;
图8是本发明的烧录设备的又一实施例的功能模块图;
图9是本发明的烧录***的一实施例的功能模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例通过将信息文件和数据文件合成为包括信息区和数据区的烧录文件,并根据该信息区内的有效数据的描述信息来读取数据区的有效数据,并将读取的有效数据烧录到闪存中,由于该烧录文件中既包括了有效数据又包括有效数据的描述信息,避免了数据文件与描述文件之间的不匹配的问题,同时由于该烧录文件中不包括填充数据,该烧录文件小巧,从而烧录时跳过了填充数据,烧录时更加方便、安全,并且提高了烧录效率。
参见图3,为本发明实施例的闪存烧录方法的一实施例的流程图。本实施例的闪存烧录方法,具体实施过程如下:
S11,将下载的信息文件和至少一个数据文件合成为一个包括信息区和数据区的烧录文件,该数据区包括各个数据文件中的有效数据,信息区包括该信息文件中对应于有效数据的描述信息。具体实施时,首先下载终端中生成的信息文件和多个数据文件;然后再将所下载的信息文件和多个数据文件合成为一个包括信息区和数据区的烧录文件,即将信息文件中的有效数据的描述信息复制到该烧录文件的信息区,并将各个有效数据文件中的有效数据复制到该烧录文件的数据区,从而合成了一个既包括有效数据又包括有效数据描述信息的烧录文件,然后烧录设备加电初始化,使其进入准备状态,并下载该合成后包括信息区和数据区的烧录文件。在一具体实施例中,可通过直接将该信息文件中的所有有效数据的描述信息复制到信息区,然后再根据各个有效数据的描述信息将各个数据文件中的有效数据复制到数据区。由于该描述信息包括了各个数据文件在闪存中的起始地址,大小,以及对应的数据文件名,即可按照该信息文件中各个有效数据的描述信息的排列顺序复制各个数据文件中的有效数据,从而完成信息文件和数据文件的合成;或者先将第一个有效数据对应的描述信息复制到信息区,再将对应的第一个数据文件中的有效数据复制到数据区;然后再复制下一个有效数据的描述信息到信息区,再将对应的该下一个数据文件中的有效数据复制到数据区。当然也可以采用其他方式将信息文件中的描述信息复制到该信息区,将各个有效数据复制到该数据区,参见图4,为本实施例中合成的烧录文件的格式。在一具体实施例中,需要烧录一个机顶盒软件到128M大小的nandflash中,该软件内容包括:uboot、loader、kernel、application、userdata等,且这些数据,需要烧录到flash中的特定位置,但这些数据未占满整个flash,本实施例中生成的烧录文件如下所示:
00000000000004000000010000008000
0000A000000028000000D0000000A000
0000000200002000
……
uboot数据(256K)
loader数据(8M)
kernel数据(2.5M)
application数据(10M)
userdata数据(2M)。
后续将继续沿用本实施例中的有效数据及其描述信息。
本实施例中,在合成烧录文件之前,可预先定义该烧录文件的信息区的大小,从而当读取有效数据时,可直接从该烧录文件中固定位置开始读取有效数据即可。当然该信息区的大小也可不是预先定义的,而是在该信息区内设置一个信息区结束标识,从而便于根据该结束标识来区分信息区和数据区,该结束标识可为设置在信息区结束位置的某特定值,例如“0”,也可为设置在该信息区开头的表示数据区包括的有效数据的个数的一个数值。
S12,读取烧录文件的信息区,得到各个有效数据的描述信息,该描述信息包括有效数据的大小以及其在闪存中的起始地址。在一具体实施例中,由于合成的烧录文件的信息区的描述信息采用了高低字节反转的方式,则读取该烧录文件的信息区得到的该5个有效数据uboot、loader、kernel、application、userdata的描述信息分别为:起始地址0x0,大小0x40000;起始地址0x100000,大小0x800000;起始地址0xA00000,大小0x280000;起始地址0xD00000,大小0xA00000;起始地址0x2000000,大小0x200000。
S13,根据各个有效数据的描述信息,依次读取烧录文件的数据区内的各个有效数据。具体实施时,在执行该步骤S13之前,还需要检测闪存,得到该闪存包括多少个块,以及每个块的大小等特征信息,并根据该特征信息擦除整个闪存,以便于后续烧录。在一具体实施例中,首先由烧录设备检测flash芯片,读取flash芯片特征信息,并根据该特征信息擦除整个flash。
根据第一个有效数据uboot的大小;0x40000,从数据区开始位置顺序读取256k数据;
根据第二个有效数据loader的大小:0x800000,从数据区中第一个有效数据结束的位置开始顺序读取8M数据;
根据第三个有效数据kernel的大小:0x280000,从数据区中上一个有效数据结束的位置开始顺序读取2.5M数据;
根据第四个有效数据application的大小:大小0xA00000,从数据区上一个有效数据结束位置开始顺序读取10M数据;
根据第五个有效数据userdata的大小:0x200000,从数据区上一个有效数据接结束位置开始顺序读取2M数据。
S14,当每读取到一个有效数据时,则根据该有效数据的描述信息,将所读取到的该有效数据烧录到闪存中。在一具体实施例中,根据步骤S12中读取到的该有效数据的大小和在flash中的起始地址等描述信息,将读取的该有效数据写入到flash中:
当读取到第一个有效数据uboot时,根据该第一个有效数据uboot的大小及其在flash中的起始地址:0x0,立即将该第一个有效数据uboot写入flash的0x0处;
当读取到第二有效数据loader时,根据该第二个有效数据loader的大小及其在flash中的起始地址:0x100000,立即将该第二个有效数据loader写入flash的0x100000处;
当读取到第三个有效数据kernel时,根据该第三个有效数据kernel的大小及其在flash中的起始地址:0xA00000,立即将该第三个有效数据kernel写入flash的0xA00000处;
当读取到第四个有效数据application时,根据该第四个有效数据application的大小及其在flash中的起始地址:0xD00000,立即将该第四个有效数据applicationl写入flash的0xD00000处;
当读取到第五个有效数据userdata时,根据该第五个有效数据userdata的大小及其在flash中的起始地址:0x2000000,立即将该第五个有效数据userdata写入flash的0x2000000处。
本实施例通过将信息文件和至少一个数据文件合成为一个既包括信息区和数据区的烧录文件,其中该数据区包括数据文件中的有效数据,信息区包括信息文件中对应各个有效数据的描述信息,再读取该烧录文件的信息区,得到有效数据的描述信息,并根据有效数据的描述信息,读取该烧录文件的数据区的有效数据,将读取到的有效数据烧录到闪存中,即通过将有效数据的描述信息和有效数据本身合成到一个烧录文件,使得该烧录文件即包括了有效数据,又包括了有效数据的描述信息,从而避免将有效数据和有效数据的描述信息分别放置在两个文件中时,由于误操作而导致描述信息文件与有效数据文件不匹配的问题,同时由于该烧录文件中不包括填充数据,该烧录文件小巧,进而烧录时跳过了填充数据,烧录时更加方便、安全;并且即便闪存中存在坏块,也只需要下载一次该烧录文件,从而根据该烧录文件来进行烧录,提高了效率,且不易出错。
同时,本实施例的闪存烧录方法还适用于对闪存内的数据进行更新,首先将生成的需要更新的数据文件,以及对应的信息文件合成为一个烧录文件,即该烧录文件的信息区包括需要更新的有效数据的描述信息,数据区包括了需要更新的有效数据,再读取该烧录文件的信息区,得到需要更新的各个有效数据的描述信息,根据各个有效数据的描述信息擦除闪存中对应的区域或者块,当每擦除一个区域或者块后,则根据描述信息,读取对应一个有效数据,并将其写入所擦除的区域或者块中,避免了将需要更新的有效数据及其描述信息分别放置在多个文件中时,由于误操作而导致描述信息文件与包括更新数据的数据文件不匹配的问题,并且即便闪存中存在坏块,也只需要下载一次该烧录文件,从而根据该烧录文件来进行烧录,提高了数据的更新效率,并且不易出错。
然而,由于闪存的特性,在擦除或写入过程中,容易出现坏块。当出现坏块时,烧录时会把数据顺延,即写到下一个好块,从而导致本来应该烧在某个位置的数据,烧在了其后的某个位置。例如,当flash的loader部分出现坏块时,会导致kernel、application、userdata部分的数据,都烧在了后面与起始地址不对应的位置,从而导致uboot加载kernel时出错。而为避免上述问题,目前,当写入文件到存在坏块的flash时,通常将各个有效数据分开写入,即将包括多个有效数据的数据文件,切割成5份,放到5个文件,从而导致烧录数据时,需要下载、擦除、写入,各5次,进而使得烧录的效率不高,并且容易出错。然而,采用本发明实施例的闪存烧录方法则能够避免这种问题,从而提高烧录的效率,并且不容易出错。
参见图5,为本发明的闪存烧录方法的又一实施例的流程图。本实施例中包括上述实施例中的步骤S11至S14,不同的是本实施例中,执行该步骤S13之前还包括步骤:S15,每读取一个有效数据之前,根据该有效数据的描述信息,擦除闪存中对应该有效数据的一个区域。即是说本实施例中当每擦除一个区域,然后再读取一个有效数据,并将读取的有效数据写入所擦除的区域中。在一具体实施例中,若flash中已经有可以运行的uboot,并且能通过tftp下载文件,具体烧录实施过程如下:
uboot擦除flash从0x0开始的256K大小区域;uboot跳到烧录文件的数据区,顺序读取256K数据,即第一个有效数据uboot;并将该第一个有效数据uboot写入所擦除的区域中;
uboot擦除flash从0x100000开始的8M大小区域;uboot跳到烧录文件的数据区,顺序读取8M数据,即第二个有效数据loader;并将该第二个有效数据uboot写入所擦除的区域中;
uboot擦除flash从0xA00000开始的2.5M大小区域;uboot跳到烧录文件的数据区,顺序读取2.5M数据,即第三个有效数据kernel;并将该第三个有效数据uboot写入所擦除的区域中;
uboot擦除flash从0xD00000开始的10M大小区域;uboot跳到烧录文件的数据区,顺序读取10M数据有效数据,即第四个application;并将该第四个有效数据uboot写入所擦除的区域中;
uboot擦除flash从0x2000000开始的2M大小区域,uboot跳到烧录文件的数据区,顺序读取2M数据,即第五个有效数据userdata;并将该第五个有效数据uboot写入所擦除的区域中。
参见图6,为本发明的闪存烧录方法的再一实施例的流程图。本实施例中包括上述实施例中的步骤S11至S14,不同的是本实施例中,执行该步骤S14之前还包括步骤:S16,每当读取到一个有效数据时,检测将要写入该有效数据的当前块是否为坏块。若检测结果为不是,则将该有效数据烧录到当前块中,即执行步骤S14;若检测结果为是,则执行步骤S17。具体实施时,检测当前块是否为坏块的方式包括:一、闪存中的坏块有坏块标识,当写入有效数据之前,检测该块是否有坏块标识,若有,则检测下一个块是否有坏块标识,若无,则将该有效数据写入该块中,若有,则继续检测再下一个块,直至找到一个好块为止;二、将数据写入该块中,再将写入的数据读出来,比较读取的数据与写入的数据是否相同,若相同,则该块不为坏块,否则该块为坏块,若为坏块,则采用相同的方式检测下一个块,直至找到好块为止。
S17,跳过当前块,将读取的该有效数据写入到后续的不为坏块的块中。
实施本发明实施例的闪存烧录方法,通过将信息文件和数据文件合成为包括有效数据,又包括有效数据的描述信息的烧录文件,并从中获取有效数据,及其对应的描述信息,再根据该描述信息将有效数据写入闪存中,并且当遇到坏块时,也不需要将各个有效数据分割为多个文件,即只需要下载一次烧录文件,便可从该烧录文件中获取到各个有效数据的描述信息和有效数据本身,并根据该描述信息将有效数据写入闪存中,从而提高了烧录的效率,也不容易出错。
基于上述的闪存烧录方法,本发明实施例还提供了一种烧录设备。下面将结合说明书附图对本发明实施例的烧录设备进行详细的说明。
参见图7,为本发明的烧录设备的一实施例的功能模块图。具体实施时,本发明实施例的烧录设备包括:
描述信息读取模块11,用于读取将下载的信息文件和至少一个数据文件合成为一个包括信息区和数据区的烧录文件的信息区,得到各个数据文件中有效数据的描述信息;该数据区包括各个数据文件中的有效数据,该信息区包括该信息文件中对应于各个有效数据的描述信息;具体实施时,该信息区的大小可以是预先定义的,当然也可以在该信息区内设置结束标识;
有效数据读取模块12,用于根据各个有效数据的描述信息,依次读取数据区中的各个有效数据;具体实施时,若该信息区的大小预先定义的,则有效数据读取模块12直接从该烧录文件固定位置开始顺序读取数据区内的有效数据;或者若在该信息区内设置了信息区结束标识,则该有效数据读取模块12直接根据该信息区结束标识从数据区读取有效数据;
烧录模块13,用于在每读取到一个有效数据时,根据该有效数据的描述信息,将该有效数据烧录到闪存中。
实施本实施例的烧录设备,通过读取包括信息区和数据区的烧录文件的信息区来获取有效数据的描述信息,再根据描述信息读取有效数据,即通过读取包括了有效数据,又包括了对应于有效数据的描述信息的烧录文件来进行数据的烧录,从而避免了将有效数据和有效数据的描述信息分别放置在多个文件(多个数据文件和一个描述信息文件)中时,由于误操作而导致描述信息文件与有效数据文件不匹配的问题,同时由于该烧录文件中不包括填充数据,该烧录文件小巧,进而烧录时跳过了填充数据,烧录时更加方便、安全;并且即便闪存中存在坏块,也只需要下载一次该烧录文件,进而根据该烧录文件来进行烧录,提高了效率,且不易出错。
参见图8,为本发明的烧录设备的又一实施例的功能模块图。具体实施时,本实施例的烧录设备也包括上述的描述信息读取模块11、有效数据读取模块12和烧录模块13,相同的模块采用相同的名称和附图标记,不同的是本发明实施例的烧录设备还包括:
检测模块14,用于在每读取到一个有效数据时,检测闪存中将要写入该有效数据的当前块是否为块;
本实施例的烧录模块14用于在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块不为坏块时,将读取到的该有效数据写入该当前块中;或者在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块为坏块时,跳过当前块,将读取的该有效数据写入到后续的不为坏块的块中。
本实施例中的后续的不为坏块的块是指当检测模块检测到当前块为坏块时,则继续检测下一个的块是否为坏块,若是则再继续检测再下一个块是否为坏块,直至检测到一个不为坏块的块,则该不为坏块的块即为当前块的后续块,且不为坏块。
本实施例的烧录设备还可包括:
特征信息获取模块,用于检测闪存,得到该闪存的特征信息,例如该闪存包括多少个块,每个块的大小等;
闪存擦除模块,用于根据得到特征信息擦除整个闪存。
本实施例中的烧录设备通过读取既包括有效数据描述信息,又包括有效数据的烧录文件,并且当描述信息读取模块读取到该烧录文件的信息区中对应各个有效数据的描述信息之前,该闪存擦除模块将闪存整个擦除,再读取描述信息,并由有效数据读取模块根据读取的描述信息读取数据区中对应的有效数据,最后由烧录模块将该有效数据写入到该闪存中,从而遇到坏块时,不需要多次下载数据文件,提高了烧录效率,也不容易出错。
在另一具体实施例中,本发明实施例的烧录设备也包括上述的描述信息读取模块11、有效数据读取模块12和烧录模块13,相同的模块采用相同的名称和附图标记,不同的是本实施例的烧录设备还包括:
区域擦除模块,用于在每读取一个有效数据之前,根据该有效数据的描述信息,擦除闪存中对应该有效数据的区域。
本实施例中的烧录设备通过读取既包括有效数据描述信息,又包括有效数据的烧录文件,并且当描述信息读取模块读取到各个有效数据的描述信息,该区域擦除模块根据各个有效数据的描述信息,每擦除对应一个有效数据的一个区域时,再由有效数据读取模块读取数据区中对应的该有效数据,并由烧录模块将该有效数据写入到该区域中,从而遇到坏块时,不需要多次下载数据文件,提高了烧录效率,也不容易出错。
参见图9,本发明实施例还提供了一种烧录***,包括:
合成模块21,用于将下载的信息文件和至少一个数据文件合成为包括数据区和信息区的烧录文件,其中该数据区包括各个数据文件中的有效数据,信息区包括对应于有效数据的描述信息;具体实施时,该合成模块21可在终端(例如电脑)中先下载或者导入一个信息文件和对应的多个数据文件,并将该信息文件中的有效数据的描述信息复制到烧录文件中的信息区,将各个数据文件中的有效数据复制到该烧录文件中的数据区,从而合成为一个既包括有效数据,又包括描述信息的烧录文件,从而使得烧录设备只需要读取这一个烧录文件即可执行数据的烧录;在一具体实施例中,该合成模块21可通过一个软件来实现;
该烧录***还包括上述实施例中的烧录设备1;具体实施时,该烧录设备1可直接读取合成的烧录文件中的信息区的描述信息,和数据区的有效数据,并根据读取的描述信息将各个有效数据写入到闪存中。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种闪存烧录方法,其特征在于,包括:
将下载的信息文件和至少一个数据文件合成为一个包括数据区和信息区的烧录文件,所述数据区包括各个所述数据文件中的有效数据,所述信息区包括所述信息文件中的对应于所述有效数据的描述信息;
读取所述烧录文件的信息区,得到各个有效数据的描述信息;所述描述信息包括所述有效数据在闪存中的起始地址和大小;
根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据;
当每读取到一个有效数据时,则根据该有效数据的描述信息将所读取到的有效数据烧录到所述闪存中;
其中,所述将下载的信息文件和至少一个数据文件合成为一个包括数据区和信息区的烧录文件,包括:
将下载的信息文件中的有效数据的描述信息复制到烧录文件的信息区;
根据所述信息区中的描述信息将下载的各个数据文件中的有效数据复制到所述烧录文件的数据区。
2.如权利要求1所述的闪存烧录方法,其特征在于,所述读取所述烧录文件的信息区,得到各个有效数据的描述信息的步骤之前,还包括:
检测所述闪存,得到所述闪存的特征信息;
根据所述特征信息擦除整个闪存。
3.如权利要求1所述的闪存烧录方法,其特征在于,所述根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据的步骤,具体包括:
每读取一个有效数据之前,根据该有效数据的描述信息,擦除所述闪存中对应于该有效数据的区域;
根据有效数据的描述信息,读取所述数据区中的有效数据。
4.如权利要求2或3所述的闪存烧录方法,其特征在于,所述当每读取到一个有效数据时,则根据所读取的有效数据的描述信息将所读取到的有效数据烧录到所述闪存中的步骤,具体包括:
当每读取到一个有效数据时,检测将要写入该有效数据的当前块是否为坏块,若不是,则将该有效数据写入到当前块中;若当前块为坏块,则跳过所述当前块,将读取的所述有效数据写入到后续的不为坏块的块中。
5.如权利要求4所述的闪存烧录方法,其特征在于,所述信息区的大小为预先定义的或者所述信息区包括信息区结束标识。
6.一种烧录设备,其特征在于,包括:
描述信息读取模块,用于读取将信息文件和至少一个数据文件合成为包括信息区和数据区的烧录文件的信息区,得到各个数据文件中有效数据的描述信息;所述数据区包括各个数据文件中的有效数据,所述信息区包括信息文件中的对应于所述有效数据的描述信息;所述描述信息包括所述有效数据的大小以及其在闪存中的起始地址,所述描述信息是由所述烧录设备复制到所述信息区中的信息,每个所述有效数据是由所述烧录设备按照所述信息区中与该有效数据对应的描述信息复制到所述数据区的数据;
有效数据读取模块,用于根据各个有效数据的描述信息,依次读取所述数据区中的各个有效数据;
烧录模块,用于在每读取到一个有效数据时,根据该有效数据的描述信息将所读取到的所述有效数据烧录到闪存中。
7.如权利要求6所述的烧录设备,其特征在于,所述烧录设备还包括:
特征信息获取模块,用于检测所述闪存,得到所述闪存的特征信息;
闪存擦除模块,用于根据所述特征信息擦除整个闪存。
8.如权利要求6所述的烧录设备,其特征在于,所述烧录设备还包括;
区域擦除模块,用于在所述有效数据读取模块每读取一个有效数据之前,根据该有效数据的描述信息,擦除所述闪存中对应于所述有效数据的区域;
所述烧录模块用于在每读取到一个有效数据时,根据该有效数据的描述信息,将读取到的该有效数据写入所述区域擦除模块所擦除的对应于该有效数据的区域中。
9.如权利要求6至8中任意一项所述的烧录设备,其特征在于,还包括:
检测模块,用于在每读取到一个有效数据时,检测所述闪存中将要写入该有效数据的当前块是否为坏块;
所述烧录模块用于在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块不为坏块时,将读取到的该有效数据写入所述当前块中;或者
在每读取到一个有效数据,并且检测到将要写入该有效数据的当前块为坏块时,跳过所述当前块,将读取的该有效数据写入到后续的不为坏块的块中。
10.一种烧录***,其特征在于,包括:
合成模块,用于将下载的信息文件和至少一个数据文件合成为一个包括数据区和信息区的烧录文件;
如权利要求6至9中任意一项所述的烧录设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110457782.8A CN102543193B (zh) | 2011-12-31 | 2011-12-31 | 一种闪存烧录方法、烧录设备及烧录*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110457782.8A CN102543193B (zh) | 2011-12-31 | 2011-12-31 | 一种闪存烧录方法、烧录设备及烧录*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102543193A CN102543193A (zh) | 2012-07-04 |
CN102543193B true CN102543193B (zh) | 2015-12-09 |
Family
ID=46349884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110457782.8A Active CN102543193B (zh) | 2011-12-31 | 2011-12-31 | 一种闪存烧录方法、烧录设备及烧录*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102543193B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064710B (zh) * | 2012-12-26 | 2016-09-07 | 深圳市诺威达科技有限公司 | 一种flash烧录方法和装置 |
CN103324503A (zh) * | 2013-05-29 | 2013-09-25 | 京东方科技集团股份有限公司 | 一种数据烧录***及方法 |
CN103593216B (zh) * | 2013-11-12 | 2017-12-05 | 上海斐讯数据通信技术有限公司 | 将ubi格式的***文件制作成工厂烧录映像文件方法 |
CN103605540B (zh) * | 2013-11-18 | 2017-05-03 | 四川长虹电器股份有限公司 | 基于安卓***的快速写入flash镜像的方法 |
CN105005482B (zh) * | 2015-08-06 | 2018-04-06 | 上海斐讯数据通信技术有限公司 | 一种nor flash烧录文件制作方法 |
CN105306569B (zh) * | 2015-10-20 | 2018-07-17 | 红石阳光(北京)科技股份有限公司 | 一种基于Flash(闪存)的数据下载方法 |
CN105843768B (zh) * | 2016-04-20 | 2019-01-25 | 芯海科技(深圳)股份有限公司 | 一种单线通信多次可编程存储器烧录方法及基于该方法的烧录装置 |
CN109271174A (zh) * | 2018-08-01 | 2019-01-25 | 广州市星翼电子科技有限公司 | 一种单片机多个固件分散烧录方法 |
CN109614118B (zh) * | 2018-11-23 | 2022-05-06 | 信利光电股份有限公司 | 一种SPI Flash固件烧录方法及装置 |
CN112486506B (zh) * | 2019-09-12 | 2024-02-02 | 恒为科技(上海)股份有限公司 | 一种NAND Flash的烧录方法及装置 |
CN111625184A (zh) * | 2020-04-20 | 2020-09-04 | 珠海妙存科技有限公司 | 闪存数据烧录方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466060A (zh) * | 2002-06-10 | 2004-01-07 | 三星电子株式会社 | 闪速存储器文件*** |
CN101158922A (zh) * | 2006-10-02 | 2008-04-09 | 三星电子株式会社 | 根据文件特性通过不同写入方案写入文件的方法及其设备 |
CN102298534A (zh) * | 2011-09-22 | 2011-12-28 | 四川长虹电器股份有限公司 | 软件写入机顶盒的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI243303B (en) * | 2003-11-14 | 2005-11-11 | Hon Hai Prec Ind Co Ltd | System and method for managing flash file stored in a flash memory |
-
2011
- 2011-12-31 CN CN201110457782.8A patent/CN102543193B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466060A (zh) * | 2002-06-10 | 2004-01-07 | 三星电子株式会社 | 闪速存储器文件*** |
CN101158922A (zh) * | 2006-10-02 | 2008-04-09 | 三星电子株式会社 | 根据文件特性通过不同写入方案写入文件的方法及其设备 |
CN102298534A (zh) * | 2011-09-22 | 2011-12-28 | 四川长虹电器股份有限公司 | 软件写入机顶盒的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102543193A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102543193B (zh) | 一种闪存烧录方法、烧录设备及烧录*** | |
CN103473067B (zh) | 嵌入式Linux分区与数据还原方法、***及***开发方法 | |
CN104916327A (zh) | 一种在线同时烧写多种电视key码的方法及*** | |
CN101694621B (zh) | 一种升级移动终端软件的方法和移动终端 | |
CN102012831B (zh) | 基于Linux平台的OTA升级方法 | |
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及*** | |
CN106951289A (zh) | 一种在线升级方法、dsp控制器及升级*** | |
CN102360569B (zh) | 非易失闪存芯片烧录方法、***及装置 | |
CN101923473B (zh) | 嵌入式电子装置及更新其固件的方法 | |
CN101706822B (zh) | 提高挂载日志式文件***速度的方法及设备 | |
US20080109676A1 (en) | Processing device and storage medium | |
US20170139813A1 (en) | Method and device for checking influence of deleting cache file, and mobile terminal | |
CN103838585A (zh) | 基于sd卡实现arm9嵌入式***自动烧录的方法 | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN105159716A (zh) | 一种存储器件初始化方法和电子设备 | |
CN102609290A (zh) | 电子产品的软件升级方法 | |
CN102662688A (zh) | 一种Nor flash更新方法及装置 | |
CN103729418B (zh) | 一种车载平台媒体文件管理方法 | |
KR20100101517A (ko) | 데이터 파일 삭제 명령에 응답하는 시스템 및 방법 | |
US20110004719A1 (en) | Memory Element | |
CN109614118B (zh) | 一种SPI Flash固件烧录方法及装置 | |
CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
CN102005245B (zh) | 一种智能卡擦写保护方法 | |
CN105446856A (zh) | 电子设备接口的检测方法、装置 | |
CN102117245B (zh) | 嵌入式设备及其***可执行文件分割加载和启动方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518000 Guangdong city of Shenzhen province Nanshan District Gao Xin Road Building A14, SKYWORTH Applicant after: Shenzhen Skyworth Digital Technology Co., Ltd. Address before: 518000 Guangdong city of Shenzhen province Nanshan District Gao Xin Road Building A14, SKYWORTH Applicant before: Shenzhen Skyworth Digital Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |