嵌入式网络设备及其更新固件的方法技术

技术编号:6959328 阅读:204 留言:0更新日期:2012-04-11 18:40
一种嵌入式网络设备,包括内存、非门闪存、原固件的第一部分与第二部分、更新模块,其中,非门闪存包括用于存储原固件的第一部分的第一镜像区、用于存储原固件的第二部分的第二镜像区及第三镜像区。更新模块获取嵌入式网络设备的新固件的第一部分及第二部分并存储于内存中,并将第一镜像区存储的原固件的第一部分拷贝到第三镜像区,将内存中的新固件的第一部分拷贝到第一镜像区,将内存中的新固件的第二部分拷贝到第三镜像区,及将第一镜像区中的新固件的第一部分的启动指针指向第三镜像区。本发明专利技术还提供了一种固件更新的方法。所述嵌入式网络设备及固件更新的方法不仅能保证嵌入式网络设备更新固件的可靠性,还能减小更新固件时备份所需的闪存。

【技术实现步骤摘要】

本专利技术涉及嵌入式网络设备,尤其涉及一种嵌入式网络设备更新固件的方法。
技术介绍
随着闪存技术的发展,常见的嵌入式网络设备,如ADSL路由器,在使用过程中更新存放在闪存内的固件变得越来越常见。固件是指嵌入式网络设备底层运行的系统,没有固件,嵌入式网络设备就无法运行。由于固件的特殊性,使得更新固件只能一次就成功,不允许失败。但实际情况中存在导致失败的原因,比如更新过程中嵌入式网络设备断电。为应对这种状况,嵌入式网络设备需要将整个固件进行备份,然后在更新失败时启用备份的固件进行启动。嵌入式网络设备的固件一般都存储在非门闪存(Nor Flash)中。目前市场上非门闪存的价格一直居高不下,一个4MB的非门闪存市价约0.6美金,8MB的约1. 1美金,16MB 的约2美金。很显然,备份固件所占用的非门闪存无形中提高了嵌入式网络设备的成本, 这一点对于大量生产的制造型企业尤其重要。比如,若一个嵌入式网络设备的固件大小为 2. 1MB,那么备份固件也需要2. 1MB,那么,该嵌入式网络设备需要4. 2MB的空间来存储固件,从而使得该嵌入式网络设备必须使用8MB的非门闪存,比不存储备份固件时需要的4MB 的非门闪存成本增加了约1倍。因此,在保证嵌入式网络设备更新固件的可靠性的前提下, 怎样进一步降低固件更新所需的非门闪存带来的成本压力,是业界有待解决的难题。
技术实现思路
有鉴于此,有必要提供一种嵌入式网络设备,不仅能保证其更新固件的可靠性,还能减小更新固件时备份所需的闪存。同时,还有必要提供一种更新固件的方法,不仅能保证嵌入式网络设备更新固件的可靠性,还能减小更新固件时备份所需的闪存。本专利技术实施方式中的嵌入式网络设备,包括内存、非门闪存、原固件的第一部分与第二部分,其中,非门闪存包括用于存储固件的第一部分的第一镜像区、用于存储原固件的第二部分的第二镜像区及用于备份的第三镜像区。嵌入式网络设备还包括更新模块,用于获取嵌入式网络设备的新固件的第一部分及第二部分并存储于内存中,并将第一镜像区存储的原固件的第一部分拷贝到第三镜像区,将内存中的新固件的第一部分拷贝到第一镜像区,将内存中的新固件的第二部分拷贝到第三镜像区,以及将第一镜像区中的新固件的第一部分的启动指针指向第三镜像区。本专利技术实施方式中的更新固件的方法,用于嵌入式网络设备中,所述嵌入式网络设备包括内存、非门闪存、原固件的第一部分与第二部分,其中,非门闪存包括用于存储原固件的第一部分的第一镜像区、用于存储原固件的第二部分的第二镜像区及用于备份的第三镜像区。所述方法包括获取嵌入式网络设备的新固件的第一部分及第二部分并存储于内存中;将第一镜像区存储的原固件的第一部分拷贝到第三镜像区;将内存中的新固件的第一部分拷贝到第一镜像区;将内存中的新固件的第二部分拷贝到第三镜像区;及将第一镜像区中的新固件的第一部分的启动指针指向第三镜像区。 本专利技术实施方式中的嵌入式网络设备,通过只备份固件的一部分来减小更新固件所需的闪存,并结合采用本专利技术实施方式中的更新固件的方法来保证嵌入式网络设备更新固件的可靠性。附图说明图1为本专利技术嵌入式网络设备一实施方式的结构图。图2为本专利技术更新固件的方法一实施方式的流程图。图3为图1中一实施方式的嵌入式网络设备更新固件后启动的流程图图4为图1中一实施方式的嵌入式网络设备更新固件的示例图。主要元件符号说明嵌入式网络设备10处理器12内存14非门闪存16第一镜像区160第二镜像区162第三镜像区164更新模块100记录模块102启动装载程序10具体实施例方式请参阅图1,所示为本专利技术嵌入式网络设备10 —实施方式的结构图。嵌入式网络设备10包括固件(Firmware),其中,固件是指固化在嵌入式网络设备10的集成电路内部的程序代码,负责控制和协调集成电路的功能。在本实施方式中,嵌入式网络设备10可以为路由器、调制解调器、网关等嵌入式的网络设备。在本实施方式中,嵌入式网络设备10的固件至少可以分为两个独立的部分,此处两个独立的部分是指其一个部分的更新不受另一个部分的制约,也就是说仅更新其中的一个部分,未更新的部分亦可结合已更新的部分正常运行。如,嵌入式网络设备10采用Linux 系统,其固件可分为内核(Kernel)与跟文件系统(Root File System)两部分,更新后的内核与更新前的根文件系统一样可以结合起来正常运行。在本实施方式中,嵌入式网络设备10包括处理器12、内存14、非门闪存(Nor Flash) 16、更新模块100、记录模块102及启动装载程序104。在嵌入式网络设备10正常运行时,内存14中装载了嵌入式网络设备10的固件,处理器12执行装载在内存14中的嵌入式网络设备10的固件,以实现嵌入式网络设备10的正常运行。非门闪存16中包括第一镜像区160、第二镜像区162及第三镜像区164三个存储区,其中,第二镜像区162与第三镜像区164在多次更新时轮流作为备份区,S卩如果第一次更新时以第三镜像区164作为备份区,那么下次更新时以第二镜像区162作为备份区。此处,以第三镜像区164作为备份区为例对本案进行详细说明。此时,第一镜像区160存储了嵌入式网络设备10的原固件的第一部分,第二镜像区162存储了嵌入式网络设备10的原固件的第二部分。在本实施方式中,非门闪存16中还存储有更新消息,用于标识固件更新情况。在本实施方式中,更新消息包括更新状态、更新部分、备份区三个字段。其中,更新状态表示固件更新是否成功完成,更新部分表示目前在更新的固件的部分,备份区表示目前备份固件的存储区,即第二镜像区162或者第三镜像区164。此处备份区以第三镜像区164为例进行说明。更新模块100获取嵌入式网络设备10的新固件并存储于内存14中,并获取更新信息的备份区为第三镜像区164。更新模块100先将第一镜像区160存储的嵌入式网络设备10的原固件的第一部分拷贝到备份区,然后将内存14中的新固件的第一部分拷贝到第一镜像区160,再将内存14中的新固件的第二部分拷贝到备份区,最后将第一镜像区160中的新固件的第一部分的启动指针指向备份区,从而完成固件更新。在本实施方式中,启动指标是一种指针,其指向哪个区,启动装载程序104就会在装载完新固件的第一部分后自动装载哪个区存放的固件。记录模块102在更新模块100拷贝完原固件的第一部分后记录更新信息的更新状态为正在更新中,并记录更新部分为原固件的第一部分。记录模块102在更新模块100拷贝完新固件的第一部分后将更新信息的更新部分更改为新固件的第二部分,再在更新模块 100重新指向启动指针后将更新信息的更新状态更改为完成更新,并将备份区改为第二镜像区162。需要说明的是,记录更新消息的更新状态为正在更新中是指将更新消息的更新状态字段赋值为用于表达正在更新的一个值,如,将正在更新中用1表示,将完成更新预设为用0表示,则记录更新消息的更新状态为正在更新中就是将更新消息的更新状态字段赋值为1,更改所述更新消息的更新状态为完成更新就是将更新消息的更新状态字段的值更改为0。其它涉及更新消息各字段的记录、更新、获取的意思都可依此类推。在完成固件更新后,嵌入式网络设备10重新启动。此时,启动装载程序104读取更新消息的字段,判断本文档来自技高网...

【技术保护点】
1.一种嵌入式网络设备,包括内存、非门闪存、原固件的第一部分与第二部分,其中,所述非门闪存包括用于存储所述原固件的第一部分的第一镜像区、用于存储所述原固件的第二部分的第二镜像区及用于备份的第三镜像区,其特征在于:所述嵌入式网络设备还包括更新模块,用于获取所述嵌入式网络设备的新固件的第一部分及第二部分并存储于所述内存中,并将所述原固件的第一部分拷贝到所述第三镜像区,将所述新固件的第一部分拷贝到所述第一镜像区,将所述新固件的第二部分拷贝到所述第三镜像区,以及将新固件的第一部分的启动指针指向所述第三镜像区。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄光毅郑岂衔林书弘
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:94

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

1