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