对固件进行升级的方法及装置制造方法及图纸

技术编号:12386658 阅读:126 留言:0更新日期:2015-11-25 19:02
本发明专利技术是关于一种对固件进行升级的方法及装置,属于计算机技术领域。该方法包括:在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将升级版本备份到闪存的第三分区,第三分区中存储有固件的不同版本;将闪存的第四分区中指定标识位设置为升级状态;重新启动电子设备,运行闪存的第一分区;当检测到第四分区中指定标识位为升级状态时,将升级版本写入第二分区;运行第二分区中的升级版本。本发明专利技术将固件的升级版本在闪存的第三分区进行备份,使得升级版本运行失败后,能够从第三分区中获取到备份的固件,从而避免了电子设备因固件升级失败不能正常运行,提高了升级的可靠性。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种对固件进行升级的方法及装置
技术介绍
固件为写入EROM(EraseableReadOnlyMemory,可擦写只读存储器)或EEPROM(Ele4tri4allyErasableProgrammableRead-OnlyMemory,电可擦可编程只读存储器)中的程序,通俗来讲,固件也就是具有软件功能的硬件。固件在电子设备的嵌入式分布系统中承担着最基础、最底层的工作,通过对电子设备中的固件进行升级,可完善电子设备的功能、增强电子设备的稳定性、修补电子设备的漏洞。目前,为了实现对固件的升级,常将电子设备的闪存(Flash)分为两个分区。其中一个分区用于写入Bootloader程序(Bootloader程序为一种引导启动程序,在系统内核运行前运行),另一个分区用于写入固件。电子设备启动后,先运行一个分区中的Bootloader程序,如果Bootloader程序中的升级标识位上的标识为非升级标识,则跳转到另一分区并运行另一分区中的固件;如果Bootloader程序中的升级标识位上的标识为升级标识,则删除另一分区中的固件,并将升级后的固件写入到另一分区,进而将Bootloader程序中的升级标识位上的标识重置为非升级标识,之后,重新启动电子设备,运行升级后的固件以完成对固件的升级。
技术实现思路
为克服相关技术中存在的问题,本专利技术提供一种对固件进行升级的方法及装置。根据本专利技术实施例的第一方面,提供一种对固件进行升级的方法,所述方法包括:在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将所述升级版本备份到所述闪存的第三分区,所述第三分区中存储有所述固件的不同版本;将所述闪存的第四分区中指定标识位设置为升级状态;重新启动电子设备,运行所述闪存的第一分区;当检测到所述第四分区中所述指定标识位为升级状态时,将所述升级版本写入所述第二分区;运行所述第二分区中的所述升级版本。可选地,所述将所述升级版本备份到所述闪存的第三分区之前,还包括:启动所述电子设备;检测所述第四分区中所述指定标识位是否为升级状态;当检测到所述第四分区中所述指定标识为非升级状态时,进行开机自检。可选地,所述进行开机自检,包括:对所述第二分区中的所述当前版本进行校验;如果对所述第二分区中的所述当前版本校验成功,则运行所述第二分区中的所述当前版本;如果对所述第二分区中的所述当前版本校验失败,则对所述第二分区中的所述当前版本进行修复。可选地,所述对所述第二分区中的所述当前版本进行修复之前,还包括:将所述当前版本从所述第二分区中删除;所述对所述第二分区中的所述当前版本进行修复,包括:从所述第三区中获取所述固件上一次升级时的升级版本;将所述固件上一次升级时的升级版本解压缩到所述第二分区,得到解压缩数据;对所述解压缩数据进行校验;当对所述解压缩数据校验成功时,运行所述解压缩数据。可选地,所述将所述升级版本备份到所述闪存的第三分区,包括:从所述内存中获取所述升级版本;将所述升级版本写入RAM(Random-AccessMemory,随机存取存储器);对所述RAM中的所述升级版本进行校验;当对所述RAM中的所述升级版本校验成功时,将所述RAM中的所述升级版本写入到所述闪存的第三分区。可选地,所述将所述升级版本写入所述第二分区之前,还包括:将所述当前版本从所述第二分区中删除;所述将所述升级版本写入所述第二分区,包括:将所述RAM中的升级版本解压缩到所述第二分区。可选地,所述运行所述第二分区中的所述升级版本之前,还包括:对所述第二分区中的所述升级版本进行校验;当对所述第二分区中的所述升级版本校验成功后,执行运行所述第二分区中的所述升级版本的步骤。根据本专利技术实施例的第二方面,提供一种对固件进行升级的装置,所述装置包括:备份模块,用于在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将所述升级版本备份到所述闪存的第三分区,所述第三分区中存储有所述固件的不同版本;设置模块,用于将所述闪存的第四分区中指定标识位设置为升级状态;第一启动模块,用于重新启动电子设备,运行所述闪存的第一分区;写入模块,用于当检测到所述第四分区中所述指定标识位为升级状态时,将所述升级版本写入所述第二分区;运行模块,用于运行所述第二分区中的所述升级版本。可选地,所述装置还包括:第二启动模块,用于启动所述电子设备;检测模块,用于检测所述第四分区中所述指定标识位是否为升级状态;自检模块,用于当检测到所述第四分区中所述指定标识为非升级状态时,进行开机自检。可选地,所述自检模块,用于对所述第二分区中的所述当前版本进行校验;当对所述第二分区中的所述当前版本校验成功时,运行所述第二分区中的所述当前版本;当对所述第二分区中的所述当前版本校验失败时,对所述第二分区中的所述当前版本进行修复。可选地,所述装置还包括:删除模块,用于将所述当前版本从所述第二分区中删除;所述自检模块,具体用于从所述第三区中获取所述固件上一次升级时的升级版本;将所述固件上一次升级时的升级版本解压缩到所述第二分区,得到解压缩数据;对所述解压缩数据进行校验;当对所述解压缩数据校验成功时,运行所述解压缩数据。可选地,所述备份模块,用于从所述内存中获取所述升级版本;将所述升级版本写入RAM中;对所述RAM中的所述升级版本进行校验;当对所述RAM中的所述升级版本校验成功时,将所述RAM中的所述升级版本写入到所述第三分区。可选地,所述装置还包括:所述删除模块,用于将所述当前版本从所述第二分区中删除;所述写入模块,用于将所述RAM中的升级版本解压缩到所述第二分区。可选地,所述装置还包括:校验模块,用于对所述第一分区中的所述升级版本进行校验;所述运行模块,用于当所述校验模块对所述第二分区中的所述升级版本校验成功后,执行运行所述第二分区中的所述升级版本的步骤。根据本专利技术实施例的第三方面,提供一种对固件进行升级的装置,所述装置包括:处理器;用于存储处理器可执行的指令的存储器;其中,所述处理器被配置为:在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将所述升级版本备份到所述闪存的第三分区,所述第三分区中存储有所述固件的不同版本;将所述闪存的第四分区中指定标识位设置为升级状态;重新启动电子设备,运行所述闪存的第一分区;当检测到所述第四分区中所述指定标识位为升级状态时,将所述升级版本写入所述第二分区;运行所述第二分区中的所述升级版本。本专利技术的实施例提供的技术方案可本文档来自技高网...

【技术保护点】
一种对固件进行升级的方法,其特征在于,所述方法包括:在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有当前版本的升级版本时,将所述升级版本备份到所述闪存的第三分区,所述第三分区中存储有所述固件的不同版本;将所述闪存的第四分区中指定标识位设置为升级状态;重新启动电子设备,运行所述闪存的第一分区;当检测到所述第四分区中所述指定标识位为升级状态时,将所述升级版本写入所述第二分区;运行所述第二分区中的所述升级版本。

【技术特征摘要】
1.一种对固件进行升级的方法,其特征在于,所述方法包括:
在运行闪存的第二分区中固件的当前版本过程中,当检测到内存中存储有
当前版本的升级版本时,将所述升级版本备份到所述闪存的第三分区,所述第
三分区中存储有所述固件的不同版本;
将所述闪存的第四分区中指定标识位设置为升级状态;
重新启动电子设备,运行所述闪存的第一分区;
当检测到所述第四分区中所述指定标识位为升级状态时,将所述升级版本
写入所述第二分区;
运行所述第二分区中的所述升级版本。
2.根据权利要求1所述的方法,其特征在于,所述将所述升级版本备份到
所述闪存的第三分区之前,还包括:
启动所述电子设备;
检测所述第四分区中所述指定标识位是否为升级状态;
当检测到所述第四分区中所述指定标识为非升级状态时,进行开机自检。
3.根据权利要求2所述的方法,其特征在于,所述进行开机自检,包括:
对所述第二分区中的所述当前版本进行校验;
如果对所述第二分区中的所述当前版本校验成功,则运行所述第二分区中
的所述当前版本;
如果对所述第二分区中的所述当前版本校验失败,则对所述第二分区中的
所述当前版本进行修复。
4.根据权利要求3所述的方法,其特征在于,所述对所述第二分区中的所
述当前版本进行修复之前,还包括:
将所述当前版本从所述第二分区中删除;
所述对所述第二分区中的所述当前版本进行修复,包括:
从所述第三分区中获取所述固件上一次升级时的升级版本;
将所述固件上一次升级时的升级版本解压缩到所述第二分区,得到解压缩
数据;
对所述解压缩数据进行校验;
当对所述解压缩数据校验成功时,运行所述解压缩数据。
5.根据权利要求1所述的方法,其特征在于,所述将所述升级版本备份到
所述闪存的第三分区,包括:
从所述内存中获取所述升级版本;
将所述升级版本写入随机存取存储器RAM中;
对所述RAM中的所述升级版本进行校验;
当对所述RAM中的所述升级版本校验成功时,将所述RAM中的所述升级
版本写入到所述闪存的第三分区。
6.根据权利要求5所述的方法,其特征在于,所述将所述升级版本写入所
述第二分区之前,还包括:
将所述当前版本从所述第二分区中删除;
所述将所述升级版本写入所述第二分区,包括:
将所述RAM中的升级版本解压缩到所述第二分区。
7.根据权利要求1所述的方法,其特征在于,所述运行所述第二分区中的
所述升级版本之前,还包括:
对所述第二分区中的所述升级版本进行校验;
当对所述第二分区中的所述升级版本校验成功后,执行运行所述第二分区

\t中的所述升级版本的步骤。
8.一种对固件进行升级的装置,其特征在于,所述装置包括:
备份模块,用于在运行闪存的第二分区中固件的当前版本过程中,当检测
到内存中存储有当前版本的升级版本时,将所述升级版本备份到所述闪存的第
三分区,所述第三分区中...

【专利技术属性】
技术研发人员:刘新阳黄玉宇叶华林张堂政田景颐张东浩
申请(专利权)人:广州飞米电子科技有限公司小米科技有限责任公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1