一种固件安全升级方法及路由设备技术

技术编号:13171620 阅读:53 留言:0更新日期:2016-05-10 14:57
本发明专利技术公开了一种固件安全升级方法,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。本发明专利技术利用固件openwrt的JFFS2文件系统的可读写特性,在升级过程中在flash中暂时保存固件,在升级完成后自动删除固件,保证了升级过程可以顺利完成,同时flash空间可以正确释放。

【技术实现步骤摘要】

本专利技术涉及数据通信领域,特别是涉及一种固件安全升级方法及路由设备
技术介绍
目前openwrt路由器和传统路由器固件升级方法基本类似,可以通过串口或者web服务器将固件首先读入到SDRAM当中,然后擦除flash,将固件写入到flash当中,最后重启路由器。与传统路由器不同,openwrt的flash中的固件区域分为SquashFS和JFFS2两种文件系统,其中SquashFS是只读区域,而JFFS2具有可读写的特性。OpenWrt的包管理提供了一个完全可写的文件系统。用户可以从远程仓库下载ipk,并安装到路由器当中,扩展自己的功能,这点与安卓手机在应用市场下载apk应用相类似。利用这个特性用户可以便捷地升级部分功能,然而在软件快速迭代的现在,用户还是有相当多地场景是需要升级整个固件的。在目前绝大多数的路由器中,是不支持固件升级失败回退功能的,用户在升级固件的过程中,往往是小心翼翼.这限制了我司的固件快速推广.同时用户一旦因为意外情况,固件升级失败,由于无法再次进入web配置页面,导致用户路由器只能返厂维修或者自认倒霉。当前针对固件安全升级,解决方案主要是通过在flash中划定一块区域存放备份固件,当升级过程中发生意外情况,要么将备份区域的固件拷贝到uboot的启动位置,要么将uboo t的启动位置换到备份固件的首地址。总之,当前方案都会对flash空间造成一定的浪费。
技术实现思路
本专利技术的目的是提供一种安全的固件升级的方法,能够保证用户升级顺利完成,同时flash存储空间可以正确释放。本专利技术提供的技术方案如下:本专利技术提供一种固件安全升级方法,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)中;S30升级固件;S40当固件升级完成后,清理flash空间。本专利技术还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20; S10保存固件至f lash中;S20从f lash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。进一步优选的,所述步骤S10保存固件至flash中是指将固件分段式地保存到flash中。本专利技术还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。本专利技术还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。本专利技术还提供另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20;S10将固件分段式地保存到flash中;S12判断固件完整性;若判断为否,则返回执行步骤S10;否则,将flag区域中的标志位置1,保存固件首地址;S14读取并判断flag标志位;若flag的标志位为1,执行步骤S20;若flag的标志位为0,则读取flag地址位,进一步判断所述地址位是否为有效地址位;当flag地址位为有效地址,清理flash空间;S16判断清理flash空间是否完毕;若是,升级结束;否则,返回执行步骤S14;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。进一步优选的,所述步骤S30升级固件还包括:判断升级是否完成;若是,执行步骤S40 ;否则,重复执行步骤S14。进一步优选的,所述步骤S40当固件升级完成后,清理flash空间还包括:将flag标志位置0,返回执行步骤S16。本专利技术还提供一种路由设备,应用上述固件安全升级方法。与现有技术相比,本专利技术利用openwrt的JFFS2文件系统的可读写特性,在升级过程中在flash中暂时保存固件,在升级完成后自动删除固件.保证了升级过程可以顺利完成,同时flash空间可以正确释放。【附图说明】下面将以明确易懂的方式,结合【附图说明】优选实施方式,对一种固件安全升级方法及路由设备的上述特性、技术特征、优点及其实现方式予以进一步说明。图1为本专利技术一种固件安全升级方法的步骤示意图;图2为本专利技术一种固件安全升级方法的固件的flash分布图;图3为本专利技术一种固件安全升级方法的固件在flash中保存形式图;图4为本专利技术一种固件安全升级方法的流程图。【具体实施方式】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对照【附图说明】本专利技术的【具体实施方式】。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。为使图面简洁,各图中只示意性地表示出了与本专利技术相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。图1为本专利技术一种固件安全升级方法的步骤示意图,作为本专利技术的一个具体实施例,如图1所示,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。对上述实施例进行改进,得到另一种固件安全升级方法,包括S00:判断flash的存储空间是否大于固件所需空间;若判断结果为否,则清理部分flash空间;否则,执行步骤S20 ; S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。进一步优选的,所述步骤S10保存固件至flash中是指将固件分段式地保存到flash中。图2为本专利技术一种固件安全升级方法的固件的flash分布图。如图2所不: flash 被分为5 个区域:uboot; uboot -env;factory;firmware;config.Firmware被分为kernel和rootfs两本文档来自技高网...

【技术保护点】
一种固件安全升级方法,其特征在于,包括:S10保存固件至flash中;S20从flash中将固件读入到SDRAM中;S30升级固件;S40当固件升级完成后,清理flash空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:成祎
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

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

1