移动终端的固件升级方法及系统转让专利

申请号 : CN201310045143.X

文献号 : CN103118198B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏宇鑫李斌

申请人 : 惠州TCL移动通信有限公司

摘要 :

本发明公开了移动终端的固件升级方法及系统,其方法包括:先由移动终端与PC机连接,将与PC机通信的协议栈内容的DA模块下载存储至RAM模块中;之后由移动终端向PC机返还当前RAM模块中的可用空间大小;之后由移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RMA模块的可用空间大小进行拆分后,依次发送给移动终端;最后通过移动终端将PC机发送的镜像依次写入EMMC模块中。本发明通过在PC机将镜像传输给移动终端时,根据移动终端RMA模块的可用空间大小拆分成多个数据包,根据移动终端可用内存的大小动态的对下载数据进行拆分,实现下载工具的全方位匹配,在提升下载速度的同时,也确保了固件升级成功。

权利要求 :

1.一种移动终端的固件升级方法,其特征在于,包括:移动终端与PC机连接,将与PC机通信的协议栈内容的DA模块下载存储至RAM模块中;

移动终端向PC机返还当前RAM模块中的可用空间大小, 手机镜像在编译制作时,会将RAM模块的内存根据开机引导程序的不同阶段进行划分,并建立相应的映射关系,这个映射关系会被指定编译到手机的镜像里,开机的过程中,加载开机引导程序镜像时,会去查找上述的映射关系;

移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RAM模块的可用空间大小进行拆分后,依次发送给移动终端;

移动终端将PC机发送的镜像依次写入EMMC模块中;

所述移动终端向PC机返还当前RAM模块中的可用空间大小的步骤之后,所述的方法还包括:在PC机将移动终端返还的RAM模块的可用空间大小保存为全局变量或者本地临时文件;

所述移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RAM模块的可用空间大小进行拆分后,依次发送给移动终端的步骤具体包括:在移动终端执行DA模块的代码时,再次与PC机连接;

PC机将需要下载的镜像根据所述RAM模块的可用空间大小拆分成若干个数据包;

在每个数据包之前增加一个标识进行协议封装;

将数据包依次发送给移动终端;

PC机拆分需要下载的镜像时,根据以下公式拆分数据包:每次发送的数据大小= 总数据大小/可用RAM模块空间大小;

所述移动终端将PC机发送的镜像依次写入EMMC模块中的步骤具体包括:移动终端接收PC机传递的数据包;

判断每个数据包中是否存在标识;如果是,则证明PC机传递过来的数据是拆分过的数据,根据数据包的接收顺序将数据包依次写入EMMC模块中,且每次写入时将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址,从而在整个数据写入完毕后,使EMMC模块中的数据得到了合并,确保了数据的完整性;否则,直接将数据包写入EMMC模块中。

2.一种移动终端的固件升级系统,其特征在于,包括移动终端和PC机;

所述移动终端包括:

RAM模块,用于存储数据;

开机引导模块,用于控制移动终端开关机,及向PC机返还移动终端当前RAM模块中的可用空间大小, 手机镜像在编译制作时,会将RAM模块的内存根据开机引导程序的不同阶段进行划分,并建立相应的映射关系,这个映射关系会被指定编译到手机的镜像里,开机的过程中,加载开机引导程序镜像时,会去查找上述的映射关系;

DA模块,用于将PC机传输的镜像写入移动终端的EMMC模块中;

所述PC机包括:

PC工具模块,用于将包含与PC机通信的协议栈内容的DA模块传输给移动终端;

拆分模块,用于将需要下载的镜像根据RAM模块的可用空间大小进行拆分;

所述拆分模块,还用于在每个数据包之前增加一个标识;

所述DA模块,还用于在写入的数据包中存在标识时,证明PC机传递过来的数据是拆分过的数据,根据数据包的接收顺序将数据包依次写入EMMC模块中,将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址,从而在整个数据写入完毕后,使EMMC模块中的数据得到了合并,确保了数据的完整性。

3.根据权利要求2所述的移动终端的固件升级系统,其特征在于,所述移动终端包括智能手机、平板电脑。

说明书 :

移动终端的固件升级方法及系统

技术领域

[0001] 本发明涉及至固件升级,特别涉及一种移动终端的固件升级方法及系统。

背景技术

[0002] 随着手机、PDA(Personal Digital Assistant,又称为掌上电脑)等移动终端行业的快速发展,Android操作系统占据了当前移动终端市场上59%的份额,而每天的Android设备激活量平均有130万台,并且这个数据还在不断增长。而在这些激活的Android设备中,每款设备的RAM配置根据不同的市场需求也是不相同的。
[0003] 目前,Android手机内存的主流配置有512M和1G,但随着三方应用程序的不断增加,Android系统本身编译出来的固件大小也在逐渐扩大,这就出现了烧机的问题(固件升级),如果将从PC端下载到手机中的固件已经逐渐超过了Android手机中可用内存的大小,这样就会导致烧机失败,以致软件无法得到正确升级。
[0004] 如图1所示,现有的下载流程为:首先,手机在开机时与PC机建立数据链路连接;之后,由PC机将包括与其通信的协议栈部分内容的DA((Discovery Agent,发现代理))模块下载到手机的RAM(random access memory,随机存储器)模块中;下载成功后,手机的CPU开始执行DA模块中的代码,以便后续与PC机通信;之后,DA模块再次与PC机通信建立连接;然后,PC机将需要下载的镜像通过手机端的DA模块发送到手机端的RAM模块中;再由RAM模块将该镜像写到EMMC(Embedded MultiMediaCard,为MMC协会所订立的内嵌式存储器标准规格)模块中。
[0005] 基于上述下载流程,如果PC机发送到手机端镜像的大小大于手机端RAM模块大小(此时因手机已经开机,本身已经耗费了一定的内存,所以此时AM模块可用的内存大小肯定小于其本身的大小),下载即会失败。
[0006] 为了解决烧机失败的问题,目前业界普遍做法是在PC工具端将需要下载的镜像进行最小拆分,但是如果拆分的镜像过小,会使得下载速度过慢、下载时间过长,如果拆分的镜像过大,则有可能会导致下载失败,这种方式只能根据下载数据大小定制,不具有通用性。
[0007] 有鉴于此,本发明提供一种移动终端的固件升级方法及系统。

发明内容

[0008] 鉴于上述现有技术的不足之处,本发明的目的在于提供一种移动终端的固件升级方法及系统,以解决现有固件升级方式不能通用的问题。
[0009] 为了达到上述目的,本发明采取了以下技术方案:
[0010] 一种移动终端的固件升级方法,其包括:
[0011] 移动终端与PC机连接,将与PC机通信的协议栈内容的DA模块下载存储至RAM模块中;
[0012] 移动终端向PC机返还当前RAM模块中的可用空间大小;
[0013] 移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RMA模块的可用空间大小进行拆分后,依次发送给移动终端;
[0014] 移动终端将PC机发送的镜像依次写入EMMC模块中。
[0015] 所述的移动终端的固件升级方法中,所述移动终端向PC机返还当前RAM模块中的可用空间大小的步骤之后,所述的方法还包括:
[0016] 在PC机将移动终端返还的RAM模块的可用空间大小保存为全局变量或者本地临时文件。
[0017] 所述的移动终端的固件升级方法中,所述移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RMA模块的可用空间大小进行拆分后,依次发送给移动终端的步骤具体包括:
[0018] 在移动终端执行DA模块的代码时,再次与PC机连接;
[0019] PC机将需要下载的镜像根据所述RMA模块的可用空间大小拆分成若干个数据包;
[0020] 在每个数据包之前增加一个标识进行协议封装;
[0021] 将数据包依次发送给移动终端。
[0022] 所述的移动终端的固件升级方法中,PC机拆分需要下载的镜像时,根据以下公式拆分数据包:
[0023] 每次发送的数据大小= 总数据大小/可用RAM模块空间大小。
[0024] 所述的移动终端的固件升级方法中,所述移动终端将PC机发送的镜像依次写入EMMC模块中的步骤具体包括:
[0025] 移动终端接收PC机传递的数据包;
[0026] 判断每个数据包中是否存在标识;如果是,则根据数据包的接收顺序将数据包依次写入EMMC模块中,且每次写入时将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址;否则,直接将数据包写入EMMC模块中。
[0027] 一种移动终端的固件升级系统,其包括移动终端和PC机;
[0028] 所述移动终端包括:
[0029] RAM模块,用于存储数据;
[0030] 开机引导模块,用于控制移动终端开关机,及向PC机返还移动终端当前RAM模块中的可用空间大小;
[0031] DA模块,用于将PC机传输的镜像写入移动终端的EMMC模块中;
[0032] 所述PC机包括:
[0033] PC工具模块,用于将包含与PC机通信的协议栈内容的DA模块传输给移动终端;
[0034] 拆分模块,用于将需要下载的镜像根据RMA模块的可用空间大小进行拆分。
[0035] 所述的移动终端的固件升级系统中,
[0036] 所述拆分模块,还用于在每个数据包之前增加一个标识;
[0037] 所述DA模块,还用于在写入的数据包中存在标识时,将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址。
[0038] 所述的移动终端的固件升级系统中,所述移动终端包括但不限于智能手机、平板电脑。
[0039] 相较于现有技术,本发明提供的移动终端的固件升级方法及系统,通过在PC机将镜像传输给移动终端时,根据移动终端RMA模块的可用空间大小拆分成多个数据包,根据移动终端可用内存的大小动态的对下载数据进行拆分,实现下载工具的全方位匹配,在提升下载速度的同时,也确保了固件升级成功。

附图说明

[0040] 图1为现有移动终端的固件升级的原理图。
[0041] 图2为本发明移动终端固件升级流程图。
[0042] 图3为本发明移动终端固件升级系统的结构框图。

具体实施方式

[0043] 为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0044] 本发明基本现在按固定大小拆分下载镜像到时下载失败或者下载时间过长的问题提供一种移动终端的固件升级方法,如图2所示,其包括:
[0045] S100、移动终端与PC机连接,将与PC机通信的协议栈内容的DA模块下载存储至RAM模块中。
[0046] 移动终端需要在开机状态下获取PC机上的数据,在连接时由PC机向移动终端发起握手通信建立数据链路连接,连接成功后,移动终端将包括与PC机通信的协议栈内容的DA模块下载存储至RAM模块中。
[0047] S200、移动终端向PC机返还当前RAM模块中的可用空间大小。
[0048] 以移动终端为智能手机为例,手机镜像在编译制作时,会将RAM模块的内存根据开机引导程序的不同阶段进行划分,并建立相应的映射关系,这个映射关系会被指定编译到手机的镜像里,以便开机时使用。而在开机的过程中,加载开机引导程序镜像时,会去查找上述的映射表格,它规定了每一阶段开机引导程序镜像所使用的RAM地址及所耗费的RAM大小,而一般的下载都是在开机引导程序加载时进行的,在下载时,只需清楚开机引导程序所对应的RAM映射关系,以总RAM大小减去已占用的RAM大小,即可计算出此时可供固件升级下载使用的最大RAM空间大小。
[0049] S300、移动终端执行DA模块的代码时,PC机将需要下载的镜像根据RMA模块的可用空间大小进行拆分后,依次发送给移动终端。
[0050] 为了使移动终端能识别拆分的镜像,所述步骤S400具体包括:
[0051] 第一步、在移动终端执行DA模块的代码时,再次与PC机连接。在下载成功后,移动终端的CPU便开始执行DA模块中的代码,以便后续与PC机通信。
[0052] 第二步、PC机将需要下载的镜像根据所述RMA模块的可用空间大小拆分成若干个数据包part.1、part.2…part.n(如图3所示)。其中,PC机拆分需要下载的镜像时,根据以下公式拆分数据包:
[0053] 每次发送的数据大小= 总数据大小/可用RAM模块空间大小
[0054] 通过以上方式,便可以确保下载成功,而且使下载时间最短。
[0055] 第三步、在每个数据包之前增加一个标识进行协议封装。譬如,在每次发送数据包之前加入一个文件头,用来标示该数据包是拆分后的数据包,提示移动终端需要进行特殊处理。
[0056] 第四步、将数据包依次发送给移动终端。
[0057] S400、移动终端将PC机发送的镜像依次写入EMMC模块中。
[0058] 具体实施时,移动终端在接收到PC机传递的数据包之后,首先判断每个数据包中是否存在标识,如果没有标识直接将数据包写入EMMC模块中即可;如果数据包中存在标识,则证明PC机传递过来的数据是拆分过的数据;此时移动终端根据数据包的数量和接收顺序将数据包依次写入EMMC模块中,且每次写入时将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址,从而在整个数据写入完毕后,使EMMC模块中的数据得到了合并(如图3所示),确保了数据的完整性。
[0059] 进一步的实施例中,在步骤S200之后,所述的方法还包括:在PC机将移动终端返还的RAM模块的可用空间大小保存为全局变量或者本地临时文件,供PC读取。
[0060] 基本上述的移动终端的固件升级方法,本发明实施例相应提供一种移动终端的固件升级系统,如图3所示,所述的系统包括移动终端和PC机,所述移动终端包括但不限于智能手机、平板电脑。
[0061] 其中,移动终端包括:RAM模块、开机引导模块、DA模块和EMMC模块。RAM模块用于存储数据;开机引导模块用于控制移动终端开关机,及向PC机返还移动终端当前RAM模块中的可用空间大小;DA模块位于RAM模块中,用于将PC机传输的镜像写入移动终端的EMMC模块中。
[0062] 所述PC机包括:PC工具模块和拆分模块,所述PC工具模块用于将包含与PC机通信的协议栈内容的DA模块传输给移动终端;拆分模块用于将需要下载的镜像根据RMA模块的可用空间大小进行拆分。
[0063] 为了确保下载成功且使下载时间最短,所述拆分模块还用于在每个数据包之前增加一个标识;所述DA模块还用于在写入的数据包中存在标识时,将写入地址进行偏移,使下次写入数据的启始地址为上次写入数据的结束地址,即:下一次偏移的地址长度为上一个数据包的地址总长度,以使EMMC模块中的数据能够得到合并,保证数据的完整性,确保升级成功。
[0064] 综上所述,本发明提供的移动终端的固件升级方法及系统,通过在PC机将镜像传输给移动终端时,根据移动终端RMA模块的可用空间大小拆分成多个数据包,根据移动终端可用内存的大小动态的对下载数据进行拆分,实现下载工具的全方位匹配,在提升下载速度的同时,也确保了固件升级成功。
[0065] 可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。