一种eMMC在线升级方法和装置
技术领域
本发明涉及存储器处理技术领域,特别是涉及一种eMMC在线升级方法和装置。
背景技术
嵌入式多媒体卡(eMMC)是MMC协会订立的,主要针对手机或平板电脑等产品的内嵌式存储器标准规格,其包括至少一个NAND和控制器,控制器中配置有软件,能够对eMMC的运行过程进行控制,eMMC可安装在各种电子设备中作为存储器使用。其中,eMMC主要应用在具有安卓系统和Linux系统的电子设备中。
在目前的Linux系统的设备上,基本都会用eMMC作为存储设备。eMMC固件本身在批量生产的时候,可能会出现缺陷。如果需要去除缺陷,则需要升级eMMC的固件。但由于eMMC颗粒已经固定在Linux系统的设备上,现有的升级方式需要接焊eMMC颗粒,无法对Linux系统的设备上的eMMC进行在线升级。
发明内容
鉴于上述问题,提出了本发明实施例的一种eMMC在线升级方法和装置,以实现对已安装在Linux系统的设备上的eMMC进行在线升级的目的。
根据本发明的第一方面,提供了一种eMMC在线升级方法,所述方法包括:
加载U-Boot升级程序;
所述U-Boot升级程序获取升级数据;
所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;
所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;
若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。
根据本发明的第二方面,提供一种eMMC在线升级方法,所述方法包括:
所述eMMC接收U-Boot升级程序发送的升级数据;
所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中;
所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。
根据本发明的第三方面,提供了一种eMMC在线升级装置,所述装置包括:
加载模块,用于加载U-Boot升级程序;
第一获取模块,用于所述U-Boot升级程序获取升级数据;
第一发送模块,用于所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;
确认模块,用于所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;
第二发送模块,用于若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。
根据本发明的第四方面,提供了一种eMMC在线升级装置,所述装置包括:
第一接收模块,用于所述eMMC接收U-Boot升级程序发送的升级数据;
写入模块,用于所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中;
第三发送模块,用于所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。
本发明实施例中,提供了一种eMMC在线升级方法,该方法包括加载U-Boot升级程序;所述U-Boot升级程序获取升级数据;所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。本发明实施例中,通过加载U-Boot升级程序,将写入的升级数据与原来的升级数据对比,保证写入在eMMC中的升级数据的准确性,确认写入准确后进行安装,保证eMMC成功升级。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种eMMC在线升级方法的步骤流程图;
图2是本发明实施例提供的另一种eMMC在线升级方法的步骤流程图;
图3是本发明实施例提供的一种eMMC在线升级装置的结构框图;
图4是本发明实施例提供的另一种eMMC在线升级装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
参照图1,示出了一种eMMC在线升级方法的步骤流程图,该方法具体包括以下步骤:
步骤101,加载U-Boot升级程序。
在本发明实施例中,在步骤101之前,还包括:获取U-Boot源码;
将所述eMMC固件的升级命令按照eMMC协议添加到所述U-Boot源码中,编译后获得所述U-Boot升级程序;所述升级命令包括:所述eMMC状态读取、检查所述eMMC是否支持在线升级、固件模式的切换、升级数据的写入、写入文件的读取对比。
在本发明实施例中,在U-Boot框架中编译得到U-Boot升级程序的方法,简单,易操作。
在本发明实施例中,eMMC固件是写入eMMC芯片中的程序。
在本发明实施例中,步骤101包括:在eMMC所在的电子设备上移植和配置所述U-Boot升级程序。
在本发明实施例中,U-Boot升级程序是基于Linux系统下U-Boot框架下的一个eMMC固件升级程序;将该U-Boot升级程序加载在电子设备上,既可采用该U-Boot升级程序对eMMC固件进行升级。
在本发明实施例中,可以将该U-Boot升级程序加载在Linux系统的任何公司和任何型号的电子设备中,提高了eMMC芯片的升级的灵活性。
步骤102,所述U-Boot升级程序获取升级数据。
在本发明实施例中,步骤102包括:所述U-Boot升级程序在存储器的第一地址段获取升级数据;其中,所述存储器用于通过USB命令或TFTP协议接收所述升级数据,并将所述升级数据存储在所述存储器的第一地址段。
在本发明实施例中,U-Boot升级程序是加载在电子设备上的,其中,该电子设备还包括存储器等其他部件,电子设备将通过网上下载或USB传输的升级数据发送的存储器进行存储,存储器划分出第一地址段存储该升级数据。
在本发明实施例中,当U-Boot升级程序需要升级对应的eMMC时,在存储器的第一地址段获取升级数据。
步骤103,所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中。
在本发明实施例中,U-Boot升级程序将从存储器读取的升级数据发送给eMMC,eMMC会将该升级数据写入到eMMC相应的位置中,以便升级。
步骤104,所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同。
在本发明实施例中,当步骤103中将升级数据写入到eMMC中后,U-Boot升级程序会读取eMMC中的当前固件数据,其中,当前固件数据就是步骤103中写入的数据,但是需要确定写入的数据是否准确,所以需要将写入的数据再次读出。
在本发明实施例中,U-Boot升级程序将读取的当前固件数据存储在存储器的第二地址段,然后再次读取第一地址段的升级数据与当前固件数据进行比对,当不同时,说明步骤103没有准确写入升级数据,继续执行步骤103,进行重新写入升级数据,当相同时,执行步骤105。
在本发明实施例中,升级数据是用于eMMC在线升级的数据,升级数据是eMMC芯片可以执行,且用于升级的二进制数据。
步骤105,若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。
在本发明实施例中,当升级数据成功写入eMMC中时,即可向eMMC发送安装指令,eMMC在接收到安装指令后,开始安装升级数据。
在步骤105之后还包括:获取所述eMMC中的当前固件的版本号,并确定所述当前固件的版本号与所述升级数据的版本号是否相同;若相同时,将升级成功的结果显示在所述U-Boot升级程序对应的显示界面上。
在本发明实施例中,当eMMC安装升级数据后,U-Boot升级程序会获取eMMC安装升级数据后的当前固件的版本号,如果和升级数据的版本号不一致,说明安装失败,重新执行步骤104,如果一致,说明eMMC升级成功,则将升级成功的结果进行显示。
本发明实施例,通过层层验证,保证eMMC能够准确的完成在线升级。
本发明实施例中,提供了一种eMMC在线升级方法,该方法包括:加载U-Boot升级程序;所述U-Boot升级程序获取升级数据;所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。本发明实施例中,通过加载U-Boot升级程序,将写入的升级数据与原来的升级数据对比,保证写入在eMMC中的升级数据的准确性,确认写入准确后进行安装,保证eMMC成功升级。
实施例二
参照图2,示出了一种eMMC在线升级方法的步骤流程图,该方法具体包括以下步骤:
步骤201,所述eMMC接收U-Boot升级程序发送的升级数据。
在本发明实施例中,在本发明实施例中,U-Boot升级程序将从存储器读取的升级数据发送给eMMC,eMMC接收U-Boot升级程序发送的升级数据。
步骤202,所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中。
在本发明实施例中,eMMC在正常工作下为正常模式,当接收到升级数据后转换成升级模式,进行相应的升级工作。
在本发明实施例中,当eMMC接收到升级数据,将升级数据写入到eMMC相应的位置中,以便升级。
步骤203,所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。
在本发明实施例中,当eMMC将升级数据写结束后,将当前固件数据发送给U-Boot升级程序,以便U-Boot升级程序确定升级数据是否准确写入eMMC中。
在本发明实施例中,步骤203之后,还包括:当所述U-Boot升级程序确认所述升级数据成功写入后,所述eMMC接收所述U-Boot升级程序发送的安装指令;
所述eMMC根据所述安装指令,安装所述升级数据,并将当前固件的版本号发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否安装成功。
在本发明实施例中,当升级数据成功写入eMMC中时,U-Boot升级程序向eMMC发送安装指令,eMMC在接收到安装指令后,开始安装升级数据。
在本发明实施例中,当eMMC安装升级数据后,eMMC会将安装升级数据后的当前固件的版本号发送给U-Boot升级程序,以供U-Boot升级程序查eMMC是否成功升级。
在本发明实施例中,提供了一种eMMC在线升级方法,该方法包括:所述eMMC接收U-Boot升级程序发送的升级数据;所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中;所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。本发明实施例中,通过将写入的升级数据与原来的升级数据对比,保证写入在eMMC中的升级数据的准确性,确认写入准确后进行安装,保证eMMC成功升级。
实施例三
参照图3,示出了一种eMMC在线升级装置的结构框图,应用于上述实施例一的一种eMMC在线升级方法中,该装置300具体可以包括:
加载模块301,用于加载U-Boot升级程序;
第一获取模块302,用于所述U-Boot升级程序获取升级数据;
第一发送模块303,用于所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;
确认模块304,用于所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;
第二发送模块305,用于若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。
还包括:
第二获取模块,用于获取所述eMMC中的当前固件的版本号,并确定所述当前固件的版本号与所述升级数据的版本号是否相同;
显示模块,用于若相同时,将升级成功的结果显示在所述U-Boot升级程序对应的显示界面上。
所述第一获取模块302,包括:
获取单元,用于所述U-Boot升级程序在存储器的第一地址段获取升级数据;其中,所述存储器用于通过USB命令或TFTP协议接收所述升级数据,并将所述升级数据存储在所述存储器的第一地址段。
本发明实施例中,提供了一种eMMC在线升级方法,该方法包括加载U-Boot升级程序;所述U-Boot升级程序获取升级数据;所述U-Boot升级程序向所述eMMC发送所述升级数据,以将所述升级数据写入所述eMMC中;所述U-Boot升级程序读取所述eMMC中的当前固件数据,并确认所述当前固件数据与所述升级数据是否相同;若相同,所述U-Boot升级程序向所述eMMC发送安装指令,以使所述eMMC安装所述升级数据。本发明实施例中,通过加载U-Boot升级程序,将写入的升级数据与原来的升级数据对比,保证写入在eMMC中的升级数据的准确性,确认写入准确后进行安装,保证eMMC成功升级。
实施例四
参照图4,示出了一种eMMC在线升级装置的结构框图,应用于上述实施例二的一种eMMC在线升级方法中,该装置400具体可以包括:
第一接收模块401,用于所述eMMC接收U-Boot升级程序发送的升级数据;
写入模块402,用于所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中;
第三发送模块403,用于所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。
还包括:
第二接收模块,用于当所述U-Boot升级程序确认所述升级数据成功写入后,所述eMMC接收所述U-Boot升级程序发送的安装指令;
安装模块,用于所述eMMC根据所述安装指令,安装所述升级数据,并将当前固件的版本号发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否安装成功。
本发明实施例中,提供了一种eMMC在线升级方法,该方法包括:所述eMMC接收U-Boot升级程序发送的升级数据;所述eMMC根据所述升级数据,转换成升级模式,并将所述升级数据写入所述eMMC中;所述eMMC将所述eMMC的当前固件数据发送给所述U-Boot升级程序,以使所述U-Boot升级程序确认所述升级数据是否成功写入所述eMMC中。本发明实施例中,通过将写入的升级数据与原来的升级数据对比,保证写入在eMMC中的升级数据的准确性,确认写入准确后进行安装,保证eMMC成功升级。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程非易失存储器擦除终端设备的处理器以产生一个机器,使得通过计算机或其他可编程非易失存储器擦除终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程非易失存储器擦除终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程非易失存储器擦除终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种eMMC在线升级方法和装置。进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。