适用于eMMC的升级文件的转换、生成方法及装置
技术领域
本发明涉及数据存储技术领域,尤其涉及一种适用于eMMC升级的文件的转换、生成方法及装置。
背景技术
eMMC(Embedded Multi Media Card)为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格,由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器(nand-flash)及eMMC控制器。eMMC的一个明显优势是在封装中集成了一个eMMC控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。越来越多的移动设备采用eMMC作为存储单元。
eMMC的固件保存在eMMC颗粒内的nand-flash中一个固定区域(Field firmwarezone)的数据,在eMMC颗粒上电之后加载到它的RAM中运行,来对nand-flash进行管理,以及用于与控制端处理器的eMMC控制器进行通信的代码固件。目前,通常采用uboot方式进行升级。具体的,在启动加载时,通过通信手段将内核映像或根文件系统映像等下载到目标板的eMMC的固定区域中进行加载。但该种方式对通信手段要求较高,一旦发生通信错误,则无法实现eMMC的固件升级,升级过程的稳定性较差。
发明内容
本发明实施例提供了一种适用于eMMC升级的文件的转换、生成方法及装置,以实现提高eMMC升级文件传输可靠性的目的。
第一方面,本发明实施例提供了一种适用于eMMC升级文件的转换方法,包括:
从升级bin文件中提取升级数据;
按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据作为实体内容顺序写入至少一个扇区文件,所述预设的存储容量根据扇区文件的大小确定;
向所述扇区文件写入标识内容,所述标识内容包括:用于确定用于升级的文件签名、所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号。
进一步的,在按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据顺序写入对应的扇区文件作为扇区文件的实体内容之后,还包括:
根据拆分后的数据生成校验数据,并将所述校验数据写入扇区文件。
更进一步的,所述标识内容还包括:
所述扇区文件内实体内容的数据大小。
第二方面,本发明实施例还提供了一种eMMC升级文件的生成方法,包括:
接收至少一个扇区文件;
在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件;
如果所述扇区文件为升级文件,则从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,以使得eMMC使用组合后的数据进行升级。
进一步的,在所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合之前,还包括:
从所述标识内容中获取所述扇区文件内实体内容的数据大小;
所述从所述扇区文件中提取实体内容,包括:
根据所述实体内容的数据大小从所述扇区文件中提取实体内容。
更进一步的,在所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合之前,还包括:
从扇区文件中获取校验信息,根据所述校验信息对实体内容进行校验;
所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,包括:
在校验通过时,根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。
第三方面,本发明实施例还提供了一种适用于eMMC升级文件的转换装置,包括:
提取模块,用于从升级bin文件中提取升级数据;
拆分模块,用于按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据作为实体内容顺序写入至少一个扇区文件,所述预设的存储容量根据扇区文件的大小确定;
写入模块,用于向所述扇区文件写入标识内容,所述标识内容包括:用于确定用于升级的文件签名、所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号。
进一步的,所述装置还包括:
生成模块,用于根据拆分后的数据生成校验数据,并将所述校验数据写入扇区文件。
第四方面,本发明实施例还提供了一种eMMC升级文件的生成装置,其特征在于,包括:
接收模块,用于接收至少一个扇区文件;
读取模块,用于在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件;
组合模块,用于如果所述扇区文件为升级文件,则从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,以使得eMMC使用组合后的数据进行升级。
进一步的,所述装置还包括:
获取模块,用于从所述标识内容中获取所述扇区文件内实体内容的数据大小;
所述组合模块,包括:
提取单元,用于根据所述实体内容的数据大小从所述扇区文件中提取实体内容。
本发明实施例提供的适用于eMMC升级的文件的转换、生成方法及装置,通过从原有适用于eMMC升级的多个bin文件提取数据部分,并对数据部分根据预设的扇区文件的大小拆分,并向扇区文件内写入用于说明该扇区文件的属性的标志内容。可以将多个bin文件拆分为最小存储单位的升级文件,可以与其它文件混合传输,并且使得eMMC可以根据所述标志内容对扇区文件进行整合,生成对应的bin文件进行升级。可以简化固件升级过程,提升升级过程的稳定性和灵活性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的适用于eMMC升级文件的转换方法的流程图;
图2为本发明实施例一提供的适用于eMMC升级文件的转换方法中扇区文件的结构图;
图3是本发明实施例二提供的eMMC升级文件的生成方法的流程图;
图4是本发明实施例三提供的适用于eMMC升级文件的转换装置的结构图;
图5是本发明实施例四提供的eMMC升级文件的生成装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的适用于eMMC升级文件的转换方法的流程图,本实施例的方法适用于对适用于eMMC升级文件进行转换的情况。可以由适用于eMMC升级文件的转换装置来执行,该装置可通过硬件和/或软件的方式实现,并可集成于配置安卓系统的终端或者耦合于配置安卓系统的终端。
参见图1,所述适用于eMMC升级文件的转换方法,包括:
S110,从升级bin文件中提取升级数据。
bin文件是一种二进制文件,其用途依系统或应用而定。通常可以是机器代码,汇编语言编译后的结果。里面存放的一般是可执行的二进制文件。因此,通常都采用bin文件作为固件升级文件。通常,eMMC的升级文件包括一个或多个bin文件,具体由升级数据的大小决定。通常这些bin文件存储在预设文件夹中,方便进行查找和处理。
用于eMMC升级的bin文件包括升级数据,所述升级数据可以是eMMC可以执行,且用于升级的二进制数据。通常bin文件中用于标记属性的文件头head和升级数据,并且文件头是固定的位数。因此,可以根据升级bin文件的设定格式从升级bin文件中提取升级数据。
S120,按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据作为实体内容顺序写入至少一个扇区文件,所述预设的存储容量根据扇区文件的大小确定。
由于升级bin文件通常较大,在传输带宽有限的情况下,容易产生传输错误。因此,在本实施例中,可以将一个升级bin文件进行拆分,使之成为多个小的升级文件,方便进行传输和存储。可选的,可以将一个升级bin文件拆分为若干个与扇区大小相同的文件。所述扇区文件可以是与扇区大小相同的文件,也可以是小于升级bin文件且大于扇区大小的文件。可选的,可以将扇区文件的大小设置为与扇区大小相同的文件。所述扇区的大小通常为512byte。
示例性的,可以按照预设的存储容量将所述升级数据进行拆分。可选的,可以将上述步骤得到的升级数据按照预设的存储容量进行拆分。所述预设的存储容量根据扇区文件的大小确定。由于扇区文件中还需要写入一些用于说明文件内容的标识信息,而标识信息具体的大小可以预先设置,例如预留n位用于写入标识信息。将扇区文件的大小减去标识信息的大小就可以得到预设的存储容量。将拆分后的升级数据分别写入不同的扇区文件中。实现对升级数据的拆分。对于多个bin文件,则可以分别对bin文件进行拆分。并将拆分后的升级数据分别写入对应的扇区文件中。
S130,向所述扇区文件写入标识内容,所述标识内容包括:用于确定用于升级的文件签名、所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号。
如上所述,所述扇区文件中还需包括标识内容,用于说明扇区文件的信息。在本实施例中,所述标识内容可以包括:用于确定用于升级的文件签名。该文件签名可以预先设定,以使得eMMC可以根据该签名确定所述扇区文件是升级文件。
另外,由于升级文件是需要顺序写入eMMC的升级执行区域。因此,所述标识内容还包括:所述扇区文件对应的bin文件的顺序序号。由于升级文件中可能包括多个bin文件,因此,还需注明每个扇区文件中的实体内容与bin文件之间的关系。可选的,需要说明扇区文件中的实体内容由哪一个bin文件的升级数据拆分得到。由于升级bin文件通过序号进行区分,因此,所述标识内容包括所述扇区文件对应的bin文件的顺序序号。
对于一个bin文件其可能对应多个扇区文件,每个扇区文件中的实体内容之间也存在顺序关系。因此,需要写入所述扇区文件的顺序序号。即所述扇区文件中的实体内容为对应的bin文件切分的部分的顺序序号。以使得eMMC可以根据扇区文件的顺序序号对扇区文件进行拼接,生成bin文件。
可选的,上述标识内容可以作为扇区的头文件(sector head)。头文件通常用作定义和声明,因此,可以将上述标识内容作为扇区文件的头文件。图2为本发明实施例一提供的适用于eMMC升级文件的转换方法中扇区文件的结构图。由图2可以看出,所述扇区文件的头文件包括:签名signature,binfileorder即扇区文件对应的bin文件的顺序序号,和sectororder,即所述扇区文件的顺序序号,可以确定是第几个sector。上述标识内容的顺序可以预先设定。
可选的,所述标识内容还可以包括所述扇区文件内实体内容的数据大小。即扇区文件内实体内容的字节数。虽然是按照预设的存储容量将所述升级数据进行拆分,但对于最后一个扇区文件,存在数据大小不一致的问题,所以每个扇区文件都需要记录扇区文件内实体内容的数据大小。
本实施例通过从原有适用于eMMC升级的多个bin文件提取数据部分,并对数据部分根据预设的扇区文件的大小拆分,并向扇区文件内写入用于说明该扇区文件的属性的标志内容。可以将多个bin文件拆分为最小存储单位的升级文件,可以与其它文件混合传输,并且使得eMMC可以根据所述标志内容对扇区文件进行整合,生成对应的bin文件进行升级。可以简化固件升级过程,提升升级过程的稳定性和灵活性。
在本实施例的一个优选实施方式中,在按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据顺序写入对应的扇区文件作为扇区文件的实体内容之后,还可增加如下步骤:根据拆分后的数据生成校验数据,并将所述校验数据写入扇区文件。在数据进行传输的过程中,通常采用校验码来对数据的有效性和完整性进行校验,以确保接收到的数据完整正确。在本实施例中,可以采用循环冗余校验码(Cyclic Redundancy Check,CRC)来对实体内容进行校验。示例性的,可以通过算法根据实体内容生成CRC,并将CRC写入扇区文件中,通常可以在扇区文件中预留相应的位置,并可将CRC存储于扇区文件中实体内容之后,方便对实体内容进行校验,能够提高数据的正确性和完整性。
实施例二
图3是本发明实施例二提供的eMMC升级文件的生成方法的流程图。本实施例的方法适用于对生成eMMC升级文件的情况。可以由eMMC升级文件的生成装置来执行,该装置可通过硬件和/或软件的方式实现,并可集成于eMMC中。
参见图3,所述eMMC升级文件的生成方法,包括:
S210,接收至少一个扇区文件。
示例性的,可以通过eMMC总线接口接收至少一个扇区文件。可选的,可以根据eMMC的缓冲区的大小决定接收扇区文件的数量。示例性的,如果缓冲区足够大,可以将所有的扇区文件全部接收下来,并对扇区文件进行处理,生成对应的bin文件;如果缓冲区不够大,则可以先顺序接收一个bin文件的扇区文件,并将bin文件转到执行区域。待转移完成后,再接收下一个bin文件对应的扇区文件。
S220,在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件。
安卓端可以通过升级应用程序向eMMC发送升级通知,eMMC在接收到升级通知后,eMMC会置起升级标识flag,以进入升级功能实现程序。因为升级为在线升级,在升级的同时,也有其它数据也会写入eMMC中。因此,需要读取扇区文件的标识内容,判断其是否为升级文件。具体的,可以根据标识内容中的文件签名确定所述扇区文件是否为升级文件。示例性的,可以检测每个扇区文件标识内容中的文件签名部分。将文件签名部分与预设的升级文件签名进行比较,当比较成功后。确定其为升级文件。
S230,如果所述扇区文件为升级文件,则从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,以使得eMMC使用组合后的数据进行升级。
根据上述方法可以判断接收到的文件是否为升级文件,如果确定所述扇区文件为升级文件,则可以从扇区文件的标识内容中读取所述扇区文件对应的应的bin文件的顺序序号和所述扇区文件的顺序序号。计算对应的bin文件顺序序号和扇区文件的顺序序号。并读取所述扇区文件的实体内容,以得到真正的固件升级数据部分。并可根据所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。示例性的,按照对应的bin文件的顺序序号和所述扇区文件的顺序序号对实体内容进行组合,以得到升级文件数据。eMMC可以根据所述升级文件数据进行升级。
可选的,可以在所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合之前,增加如下步骤:从所述标识内容中获取所述扇区文件内实体内容的数据大小;根据所述实体内容的数据大小从所述扇区文件中提取实体内容。所述标识内容还可以包括所述扇区文件内实体内容的数据大小。即扇区文件内实体内容的字节数。因此,可以根据扇区文件内实体内容的数据大小来提取实体内容,以确保提取的实体内容的完整性。
本实施例通过接收至少一个扇区文件;并在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件;确定所述扇区文件为升级文件时,从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。可以生成完整的升级文件。可以实现在线升级,并能够提高升级过程的稳定性和灵活性。
在本实施例的一个优选实施方式中,在所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合之前,还可增加如下步骤:从扇区文件中获取校验信息,根据所述校验信息对实体内容进行校验;并将所述根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,具体优化为:在校验通过时,根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。示例性的,可以采用循环冗余校验码(Cyclic Redundancy Check,CRC)来对实体内容进行校验。通过扇区文件中存储的CRC对于扇区文件中实体内容进行校验,在校验通过时,根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,能够保证接收到的数据的正确性和完整性。
实施例三
图4是本发明实施例四提供的适用于eMMC升级文件的转换装置的结构图,如图4所示,所述装置包括:
提取模块310,用于从升级bin文件中提取升级数据;
拆分模块320,用于按照预设的存储容量将所述升级数据进行拆分,并将拆分后的数据作为实体内容顺序写入至少一个扇区文件,所述预设的存储容量根据扇区文件的大小确定;
写入模块330,用于向所述扇区文件写入标识内容,所述标识内容包括:用于确定用于升级的文件签名、所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号。
本实施例提供的适用于eMMC升级的文件的转换装置,通过从原有适用于eMMC升级的多个bin文件提取数据部分,并对数据部分根据预设的扇区文件的大小拆分,并向扇区文件内写入用于说明该扇区文件的属性的标志内容。可以将多个bin文件拆分为最小存储单位的升级文件,可以与其它文件混合传输,并且使得eMMC可以根据所述标志内容对扇区文件进行整合,生成对应的bin文件进行升级。可以简化固件升级过程,提升升级过程的稳定性和灵活性。
在上述各实施例的基础上,所述装置还包括:
生成模块,用于根据拆分后的数据生成校验数据,并将所述校验数据写入扇区文件。
在上述各实施例的基础上,所述标识内容还包括:
所述扇区文件内实体内容的数据大小。
本发明实施例所提供的适用于eMMC升级文件的转换装置可执行本发明任意实施例所提供的适用于eMMC升级文件的转换方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5是本发明实施例四提供的eMMC升级文件的生成装置的结构图,如图4所示,所述装置包括:
接收模块410,用于接收至少一个扇区文件;
读取模块420,用于在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件;
组合模块430,用于如果所述扇区文件为升级文件,则从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合,以使得eMMC使用组合后的数据进行升级。
本实施例提供的eMMC升级文件的生成装置,通过接收至少一个扇区文件;并在接收到升级通知时,置起升级标识,读取扇区文件的标识内容,根据标识内容中的文件签名确定所述扇区文件是否为升级文件;确定所述扇区文件为升级文件时,从所述扇区文件中提取实体内容,并根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。可以生成完整的升级文件。可以实现在线升级,并能够提高升级过程的稳定性和灵活性。
在上述各实施例的基础上,所述装置还包括:
获取模块,用于从所述标识内容中获取所述扇区文件内实体内容的数据大小;
所述组合模块,包括:
提取单元,用于根据所述实体内容的数据大小从所述扇区文件中提取实体内容。
在上述各实施例的基础上,所述装置还包括:
检验模块,用于从扇区文件中获取校验信息,根据所述校验信息对实体内容进行校验;
所述组合模块,包括:
组合单元,用于在校验通过时,根据所述标识内容中的所述扇区文件对应的bin文件的顺序序号和所述扇区文件的顺序序号对所述实体内容进行组合。
本发明实施例所提供的eMMC升级文件的生成装置可执行本发明任意实施例所提供的eMMC升级文件的生成方法,具备执行方法相应的功能模块和有益效果。
显然,本领域技术人员应该明白,上述本发明的各模块或各步骤可以通过如上所述的设备实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。