专利名称:嵌入式设备双系统自动引导方法
技术领域:
本发明涉及一种嵌入式设备,更具体地讲,涉及一种能够采用双系统备份和远程网络下载的嵌入式设备双系统自动引导方法。
背景技术:
目前,在电子产品中广泛使用了嵌入式设备。在目前的嵌入式设备中,一般只有一套引导系统。因此,当嵌入式设备由于故障而不能正常启动时,用户无法自行解决问题,只能等待维修人员来处理。对于采用双系统的嵌入式设备来说,当系统启动失败时,也需要用户进行干预,手动切换系统。当主系统和备份系统均失败时,只能等待维修人员前来处理,而对于维护人员来说,必需手动下载系统软件以修复设备,从而导致维护的过程繁琐并且容易出错。随着网络技术的发展,采用双系统备份以及远程网络下载已成可能。在这种情况下,需要一种能够在主系统和备份系统之间自动切换并且具有远程网络引导功能的嵌入式设备双系统自动引导方法及系统。
发明内容
在下面的描述中将部分地阐明本发明另外的方面和/或优点,通过描述,其会变得更加清楚,或者通过实施本发明可以了解。根据本发明的一方面,提供了一种嵌入式设备自动引导方法,包括以下步骤(a) 读取“活动引导分区”、“系统切换”、“本地引导状态”、“允许引导失败次数”和“当前引导失败次数”和“系统引导状态”变量;(b)确定“本地引导状态”变量值是否小于“系统引导状态”变量值;(c)当确定“本地引导状态”变量值小于“系统引导状态”变量值时,复位“当前引导失败次数”变量和“系统切换”变量为零,赋值“本地引导状态”变量值等于“系统引导状态”变量值;(d)以当前“活动引导分区”变量指示的分区引导嵌入式设备;(e)当确定“本地引导状态”变量值不小于“系统引导状态”变量值时,确定“当前引导失败次数”变量值是否小于“允许引导失败次数”变量值;(f)如果“当前引导失败次数”变量值小于“允许引导失败次数”变量值,则将“当前引导失败次数”变量值加1,并返回到步骤⑷;(g)如果“当前引导失败次数”变量值不小于“允许引导失败次数”变量值,则确定“系统切换”变量值是否为0 ; (h)如果“系统切换”变量值为0,则改变“活动引导分区”变量值,将“系统切换”变量值设置为1,并返回步骤(d) ; (i)如果“系统切换”变量值为1,则启动远程网络引导。本发明对于提高嵌入式设备的稳定性,提高嵌入式设备的质量具有显著意义。同时,本发明也有利于嵌入式设备的维护以及软件的升级,以降低售后维护成本。
通过下面结合附图对实施例进行的描述,本发明的这些和/或其他方面和优点将会变得清楚和更易于理解,其中
图1是示出根据本发明的嵌入式设备双系统自动引导系统的框图;图2A是示出图1中的嵌入式设备的框图;图2B是示出图1中的系统服务器的框图;图3A和图;3B是示出根据本发明实施例的嵌入式设备双系统自动引导方法的流程图;图4是示出根据本发明实施例的远程网络引导处理的流程图。
具体实施例方式现在对本发明实施例进行详细的描述,其示例表示在附图中,其中,相同的标号始终表示相同部件。图1是示出根据本发明的嵌入式设备双系统自动引导系统的框图,图2A是示出图 1中的嵌入式设备的框图,图2B是示出图1中的系统服务器的框图。参照图1、图2A和图 2B,嵌入式设备双系统自动引导系统包括嵌入式设备1和系统服务器2。嵌入式设备1包括主系统分区3、备份系统分区4、环境变量管理模块5、引导状态管理模块6、远程网络引导模块7、看门狗复位电路模块8、最小引导模块9 (即,基本引导程序)、硬件设备10、设备驱动程序11、网络设备12和非易失存储设备13。非易失存储设备13可以是多媒体(MMC)卡、 安全数字(SD)卡等,但不限于此。主系统分区3和备份系统分区4可以存储在非易失存储设备13中,也可以单独存储。在嵌入式设备启动后,最小引导模块9加载设备驱动程序11,初始化相关硬件设备10,并初始化看门狗复位电路模块8(即,确保看门狗复位周期大于整个系统引导所需时间,并留有余量),通过环境变量管理模块5从非易失存储设备13中读取非易失环境变量数据,从而判断设备引导分区(即,是从主系统分区3还是备份系统分区4引导嵌入式设备), 从判断出的分区引导嵌入式设备,并监控嵌入式设备引导状态。必要时,最小引导模块9初始化网络设备12以加载网络相关协议,从而启动远程网络引导模块7,自动获取系统服务器2配置信息,下载并更新本地系统文件,确保成功启动系统。其中,非易失存储设备13用于存储相关环境变量信息以及挂载(mount)文件系统。最小引导模块9可以完成相关硬件设备10的初始化,为非易失存储设备13挂载文件系统,并执行根据本发明实施例的引导方法。系统服务器2包括发现请求检测模块14、系统文件管理模块15和系统文件传输模块16。发现请求检测模块14用于检测嵌入式设备的远程系统文件下载请求;系统文件管理模块15用于管理不同嵌入式设备的系统文件版本,并可根据需要进行功能扩展;系统文件传输模块16用于完成与嵌入式设备之间的系统文件传送功能。此外,系统服务器2还包括必要的操作系统、硬件驱动模块、网络设备模块以及其他硬件。以下将参照图3A和图;3B描述最小引导模块9执行的引导方法。图3A和图;3B是示出根据本发明实施例的嵌入式设备双系统自动引导方法的流程图。参照图3A和图;3B,当嵌入式设备启动时,在步骤S301中,最小引导模块9通过环境变量管理模块5从非易失存储设备13中读取“活动引导分区”、“系统切换”、“本地引导状态”、 “允许引导失败次数”和“当前引导失败次数”环境变量。“活动引导分区”变量指示当前使用哪个分区引导嵌入式设备,即,指示是使用主系统分区还是备份系统分区引导嵌入式设备。“系统切换”变量为布尔类型,表示上一次成功引导嵌入式设备时,是否切换过引导分区,0 表示没有切换过引导分区,1表示切换过引导分区。“活动引导分区”变量也可以设置为布尔类型,0表示主引导分区,1表示备份引导分区。“允许引导失败次数”变量值可设置为大于等于1的任意整数。“当前引导失败次数”变量值在初始启动时可设置为任意值。“本地引导状态”变量和稍后描述的“系统引导状态”变量用于检测上次引导是否成功。在首次启动时,最小引导模块9对“本地引导状态”变量和“系统引导状态”变量赋值,其中“本地引导状态”变量值应小于“系统引导状态”变量值。在引导成功后,最小引导模块9将“系统引导状态”变量值加1。因此,在引导失败时,可以保证“本地引导状态”变量值不会小于“系统引导状态”变量值,而在引导成功时,“本地引导状态”变量值将小于“系统引导状态”变量值。在步骤S302中,最小引导模块9从存储在非易失存储设备13中的文件系统中的系统引导状态文件中读取“系统引导状态”变量。在步骤S303中,最小引导模块9确定“本地引导状态”变量值是否小于“系统引导状态”变量值。在首次启动时,最小引导模块在执行确定步骤之后,将赋值“本地引导状态” 变量值等于“系统引导状态”变量值。当确定“本地引导状态”变量值小于“系统引导状态”变量值时,在步骤S304中,复位“当前引导失败次数”变量和“系统切换”变量为零,赋值“本地引导状态”变量值等于“系统引导状态”变量值。然后,在步骤S305中,以当前“活动引导分区”变量指示的分区(主系统分区3或备份系统分区4)引导嵌入式设备。在步骤S306中,最小引导模块9确定引导是否成功。如果引导成功,则在步骤S307 中,将“系统引导状态”变量值加1。否则,方法返回步骤S303。另一方面,当确定“本地弓I导状态”变量值不小于“系统弓I导状态”变量值时,在步骤S308中,最小引导模块9确定“当前引导失败次数”变量值是否小于“允许引导失败次数”变量值。当确定“当前引导失败次数”变量值小于“允许引导失败次数”变量值时,在步骤S309,将“当前引导失败次数”变量值加1。然后,方法进行到步骤S305。当确定“当前引导失败次数”变量值不小于“允许引导失败次数”变量值时,在步骤S310中,最小引导模块9确定“系统切换”变量值是否为0。如果“系统切换”变量值为0,则在步骤S311中,切换引导分区(即,改变“活动引导分区”变量值),并将“系统切换”变量值设置为1,其中, 在切换引导分区时,如果“活动引导分区”变量指示主引导分区,则将“活动引导分区”变量切换为指示备份引导分区;如果“活动引导分区”变量指示备份引导分区,则将“活动引导分区”变量切换为指示主引导分区。然后,方法进行到步骤S305。这样,可以以切换到的另一分区引导嵌入式设备。然而,如果“系统切换”变量值为1,则在步骤S312中,最小引导模块9启动远程网络引导模块7。然后,在步骤S313中,嵌入式设备连接到系统服务器,从系统服务器下载系统文件,并使用下载的系统文件更新“活动引导分区”变量指示的引导分区的系统文件。在步骤S314中,复位“系统切换”,“本地引导状态”和“当前引导失败次数”变量值,并重新启动嵌入式设备(即,返回步骤S301 ?)。例如,可以将“系统切换”变量值复位为0,将“本地引导状态”变量值复位为小于“系统引导状态”变量值,并将“当前引导失败次数”变量值复位为0。
5
当系统引导成功时,例如,在步骤S307之后,嵌入式设备可以加载用户程序,复位看门狗复位电路模块8,启动喂狗程序,并完成启动。然而,当系统引导失败时,看门狗复位电路模块8将复位嵌入式设备,重新开始根据本发明的引导方法。图4是示出根据本发明实施例的远程网络引导处理的流程图。图4中的处理对应于图3中的步骤S313。参照图4,在步骤S401中,嵌入式设备广播“系统服务器发现请求”报文。在步骤 S402中,嵌入式设备确定是否接收到“系统服务器发现响应”报文。“系统服务器发现请求” 报文和“系统服务器发现响应”报文可采用本领域常用的报文格式。如果没有接收到“系统服务器发现响应”报文,则在步骤S403中确定是否超过尝试请求次数。如果超过尝试请求次数,则返回请求失败消息,并且处理结束。否则,处理进行到步骤S401。如果确定接收到“系统服务器发现响应”报文,则在步骤S404中,嵌入式设备提取系统服务器网络配置信息,提取系统文件信息,并远程下载系统文件。然后,在步骤S405 中,确定下载是否成功。如果下载没有成功,则处理进行到步骤S403。如果下载成功,则在步骤S406中,使用下载的系统文件更新“活动引导分区”变量指示的引导分区的系统文件。如上所述,在根据本发明的支持双系统备份和远程网络下载的嵌入式设备中,本地存储两份系统文件(或应用软件),当其中的一套系统文件启动失败时,可以自动检测系统文件启动错误,自动切换到备份系统文件。当主引导系统和备份系统均发生故障时,嵌入式设备的远程网络引导模块能够与远程服务器进行协商,下载最新的系统文件,更新本地系统文件,并成功启动嵌入式设备。虽然已经参照本发明的特定示例性实施例显示和描述了本发明,但是本领域技术人员应该理解,在不脱离由权利要求及其等同物限定的本发明的精神和范围的情况下,可在形式和细节上进行各种改变。
权利要求
1.一种嵌入式设备自动引导方法,包括以下步骤(a)读取“活动引导分区”、“系统切换”、“本地引导状态”、“允许引导失败次数”和“当前引导失败次数”和“系统引导状态”变量;(b)确定“本地引导状态”变量值是否小于“系统引导状态”变量值;(c)当确定“本地引导状态”变量值小于“系统引导状态”变量值时,复位“当前引导失败次数”变量和“系统切换”变量为零,赋值“本地引导状态”变量值等于“系统引导状态”变量值;(d)以当前“活动引导分区”变量指示的分区引导嵌入式设备;(e)当确定“本地引导状态”变量值不小于“系统引导状态”变量值时,确定“当前引导失败次数”变量值是否小于“允许引导失败次数”变量值;(f)如果“当前引导失败次数”变量值小于“允许引导失败次数”变量值,则将“当前引导失败次数”变量值加1,并返回到步骤(d);(g)如果“当前引导失败次数”变量值不小于“允许引导失败次数”变量值,则确定“系统切换”变量值是否为0;(h)如果“系统切换”变量值为0,则改变“活动引导分区”变量值,将“系统切换”变量值设置为1,并返回步骤(d);(i)如果“系统切换”变量值为1,则启动远程网络引导。
2.根据权利要求1所述的嵌入式设备自动引导方法,还包括以下步骤(j)如果引导成功,则将“系统引导状态”变量值加1,否则,返回步骤(b)。
3.根据权利要求1所述的嵌入式设备自动引导方法,其中,步骤(i)包括(il)从系统服务器下载系统文件,并使用下载的系统文件更新“活动引导分区”变量指示的引导分区的系统文件;( 2)复位“系统切换”,“本地引导状态”和“当前引导失败次数”变量值,并重新启动嵌入式设备。
4.根据权利要求1所述的嵌入式设备自动引导方法,其中,在嵌入式设备首次启动时, 在步骤(b)之前设置“本地引导状态”变量值小于“系统引导状态”变量值。
全文摘要
本发明提供一种嵌入式设备双系统自动引导方法。嵌入式设备自动引导方法包括读取环境变量;基于读取的环境变量确定是否从当前分区进行引导;如果确定从当前分区进行引导,则以当前分区引导嵌入式设备;如果确定不从当前分区进行引导时,则确定是否切换到另一分区;如果确定切换到另一分区,则以切换到的另一分区引导嵌入式设备;如果确定不切换到另一分区,则启动远程网络引导。
文档编号H04L29/08GK102214106SQ20101014460
公开日2011年10月12日 申请日期2010年4月8日 优先权日2010年4月8日
发明者全泽昌, 疏朝明, 韩亚辉, 韩奎国 申请人:三星电子(中国)研发中心, 三星电子株式会社