发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种设备版本升级方法及系统,用于解决现有技术中设备版本升级中在升级版本有问题或者升级过程中出问题导致升级不成功时设备无法运行、无法实现远程控制的问题。
为实现上述目的及其他相关目的,本发明提供一种设备版本升级方法,所述设备版本升级方法包括:在设备启动时,检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取;在所述环境变量区中的设备版本启动信息可以正常读取时,从所述设备版本启动信息中获取激活分区标识;根据获取的所述激活分区标识确定当前所要激活的设备版本所在的分区并引导激活所述分区内的设备版本,同时将当前所激活的设备版本所在的分区作为主存储区,将与所述主存储区存储不同设备版本的分区作为备用存储区;其中,预先在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识;将下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息进行比较,并在下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息均不同时,将下载的设备版本写入所述备用存储区并将与所述下载的设备版本的信息和对应的激活分区标识写入环境变量区。
优选地,所述设备版本升级方法还包括:在引导激活所述分区内的设备版本时生成用于指示是否正常激活所述分区内的设备版本的激活指示信号,在下一次获取激活分区标识后,检测所述激活指示信号是否正常,若是,则引导激活与所述激活分区标识对应的分区,若否,则切换分区,引导激活切换分区后分区内的设备版本。
优选地,所述环境变量区包括:存储有用于启动设备版本的设备版本启动信息的主环境变量区和备份所述主环境变量区中内容的备份环境变量区;在检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取时,首先检测所述主环境变量区中的设备版本启动信息数据是否可以正常读取,若是,则从所述主环境变量区获取所述激活分区标识,若否,则继续检测所述备份环境变量区中的设备版本启动信息是否可以正常读取,若是,则将所述备份环境变量区中的设备版本启动信息同步到所述主环境变量区中,并从当前的所述主环境变量区获取所述激活分区标识,若否,则终止设备版本启动。
优选地,所述设备版本升级方法还包括:在所述环境变量区中的设备版本启动信息可以正常读取时和/或在下载的设备版本信息与所述主存储区内或所述备用存储区内的设备版本信息不同时进行提示。
优选地,所述存储区为闪存区。
为实现上述目的,本发明还提供一种设备版本升级系统,所述设备版本升级系统包括:分区配置模块,用于预先在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识;环境变量区配置模块,用于分配环境变量区并通过所述环境变量区存储用于启动设备版本的设备版本启动信息;环境变量区检测模块,与所述环境变量区配置模块相连,用于检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取;激活分区标识获取模块,与所述环境变量区检测模块相连,用于在所述环境变量区中的设备版本启动信息可以正常读取时,从所述设备版本启动信息中获取激活分区标识;激活分区确认模块,分别与所述激活分区标识获取模块和所述分区配置模块相连,用于根据获取的所述激活分区标识确定当前所要激活的设备版本所在的分区;激活引导模块,分别与所述激活分区确认模块和所述分区配置模块相连,用于引导激活所述分区内的设备版本;主备分区确认模块,分别与所述激活引导模块和所述分区配置模块相连,用于将当前所激活的设备版本所在的分区作为主存储区,将与所述主存储区存储不同设备版本的分区作为备用存储区;比较模块,与所述分区配置模块相连,用于将下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息进行比较;升级写入模块,分别与所述比较模块、所述分区配置模块和所述环境变量区配置模块相连,用于下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息均不同时,将下载的设备版本写入所述备用存储区并将与所述下载的设备版本的信息和对应的激活分区标识写入环境变量区。
优选地,所述设备版本升级系统还包括:激活指示模块,用于在引导激活所述分区内的设备版本时生成用于指示是否正常激活所述分区内的设备版本的激活指示信号;激活指示信号检测模块,用于在下一次获取激活分区标识后,检测所述激活指示模块中的激活指示信号是否正常;在所述激活指示信号正常时所述激活引导模块引导激活与所述激活分区标识对应的分区;切换模块,与所述激活指示信号检测模块相连,在所述激活指示信号不正常时切换分区,并由所述激活引导模块引导激活切换分区后分区内的设备版本。
优选地,所述环境变量区配置模块中分配的所述环境变量区包括:存储有用于启动设备版本的设备版本启动信息的主环境变量区和备份所述主环境变量区中内容的备份环境变量区;所述环境变量区检测模块包括:主环境变量区检测单元,用于检测所述主环境变量区中的设备版本启动信息数据是否可以正常读取;在所述主环境变量区中的设备版本启动信息数据可以正常读取时,所述激活分区标识获取模块从所述主环境变量区获取所述激活分区标识;备份环境变量区检测单元,与所述主环境变量区检测单元相连,在所述主环境变量区中的设备版本启动信息数据不可以正常读取时,用于继续检测所述备份环境变量区中的设备版本启动信息是否可以正常读取;在所述备份环境变量区中的设备版本启动信息数据不可以正常读取时,终止设备版本启动;同步单元,与所述环境变量区配置模块和所述备份环境变量区检测单元相连,在所述备份环境变量区中的设备版本启动信息数据可以正常读取时,则将所述备份环境变量区中的设备版本启动信息同步到所述主环境变量区中,所述激活分区标识获取模块从当前的所述主环境变量区获取所述激活分区标识获取。
优选地,所述设备版本升级系统还包括:提示模块,分别与所述环境变量区检测模块和和所述升级写入模块相连,用于在所述环境变量区中的设备版本启动信息可以正常读取时和/或在下载的设备版本信息与所述主存储区内或所述备用存储区内的设备版本信息不同时进行提示。
优选地,所述存储区为闪存区。
如上所述,本发明的一种设备版本升级方法及系统,具有以下有益效果:
1、本发明在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识,根据设备启动时获取的激活分区标识确定当前所要激活的设备版本所在的分区并引导激活所述分区内的设备版本,大大降低了设备重启后无法运行以及远程控制的风险,并且在设备重启后,让设备自动选择合适的版本启动,设备版本升级出现问题的风险大大的被降低了,出现无法远程控制设备的情况也会减少,提高了设备运行的可靠性。
2、本发明可以实现OLT设备启动的灵活性和可靠性。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本实施例的目的在于提供一种设备版本升级方法及系统,用于解决现有技术中设备版本升级中在升级版本有问题或者升级过程中出问题导致升级不成功时设备无法运行、无法实现远程控制的问题。以下将详细阐述本实施例的一种设备版本升级方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种设备版本升级方法及系统。
本实施例提供一种设备版本升级方法,用于linux平台中嵌入式设备的版本升级,具体地,如图1所示,所述设备版本升级方法包括以下步骤。
步骤S11,在设备启动时,检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取。
步骤S12,在所述环境变量区中的设备版本启动信息可以正常读取时,从所述设备版本启动信息中获取激活分区标识。
步骤S13,根据获取的所述激活分区标识确定当前所要激活的设备版本所在的分区并引导激活所述分区内的设备版本,同时将当前所激活的设备版本所在的分区作为主存储区,将与所述主存储区存储不同设备版本的分区作为备用存储区;其中,预先在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识。
步骤S14,将下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息进行比较,并在下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息均不同时,将下载的设备版本写入所述备用存储区并将与所述下载的设备版本的信息和对应的激活分区标识写入环境变量区。
如图2所示,以下对步骤S11至步骤S14进行详细说明。
步骤S11,在设备启动时,检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取。其中,所述设备包括但不限于OLT(OpticalLineTerminal,光线路终端)。
步骤S12,在所述环境变量区中的设备版本启动信息可以正常读取时,从所述设备版本启动信息中获取激活分区标识。
具体地,于本实施例中,所述环境变量区包括:存储有用于启动设备版本的设备版本启动信息的主环境变量区和备份所述主环境变量区中内容的备份环境变量区。
如图2所示,在检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取时,首先检测所述主环境变量区中的设备版本启动信息数据是否可以正常读取,若是,则从所述主环境变量区获取所述激活分区标识,若否,则继续检测所述备份环境变量区中的设备版本启动信息是否可以正常读取,若是,则将所述备份环境变量区中的设备版本启动信息同步到所述主环境变量区中,并从当前的所述主环境变量区获取所述激活分区标识,若否,则终止设备版本启动。
步骤S13,根据获取的所述激活分区标识确定当前所要激活的设备版本所在的分区并引导激活所述分区内的设备版本,同时将当前所激活的设备版本所在的分区作为主存储区,将与所述主存储区存储不同设备版本的分区作为备用存储区。
其中,预先在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识,进一步地,于本实施例中,所述存储区为闪存区,即FLASH存储区。
其中,于本实施例中,所述设备版本升级方法还包括:在引导激活所述分区内的设备版本时生成用于指示是否正常激活所述分区内的设备版本的激活指示信号,在下一次获取激活分区标识后,检测所述激活指示信号是否正常,若是,则引导激活与所述激活分区标识对应的分区,若否,则切换分区,引导激活切换分区后分区内的设备版本。
具体地,如图3所示,设备的系统上电启动时,首先读取环境变量区,判断上一次是否正常启动,确定是否要切换版本启动,然后根据激活标志选择激活分区版本,正常启动。
步骤S14,将下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息进行比较,并在下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息均不同时,将下载的设备版本写入所述备用存储区并将与所述下载的设备版本的信息和对应的激活分区标识写入环境变量区。
即于本实施例中,在版本升级时,首先从环境变量区读取当前主备分区版本信息,并比较当前下载的版本信息,如果都不一样,直接写flash覆盖备份分区版本,并更新环境变量区,切换激活标志。本实施例的设备版本设计方法采用主备分区保存不同版本的机制,并增加上一次正常启动标志,激活分区标志,可以实现OLT设备启动的灵活性和可靠性。
此外,于本实施例中,所述设备版本升级方法还包括:在所述环境变量区中的设备版本启动信息可以正常读取时和/或在下载的设备版本信息与所述主存储区内或所述备用存储区内的设备版本信息不同时进行提示。
为使本领域技术人员进一步理解本实施例的设备版本升级方法,以下对本实施例的设备版本升级方法的实施过程进行进一步说明。
在当前设备的FLASH分配两块软件版本区,这两个区互为主备,会根据升级情况,确定主备关系;同时分配两块环境变量区,这两个区为固定的主备关系,并同时记录当前的版本详细信息以及当前的版本主备分区信息,在设备重启后,首先会读取环境变量区内容,根据当前激活标志,来启动对应的分区版本,如果当前激活版本无法正常启动,切换激活分区,再正常启动。
为实现上述设备版本升级方法,本实施例对应提供一种设备版本升级系统,如图4所示,所述设备版本升级系统1包括:分区配置模块11,环境变量区配置模块12,环境变量区检测模块13,激活分区标识获取模块14,激活分区确认模块15,激活引导模块17,主备分区确认模块16,比较模块18以及升级写入模块19。
于本实施例中,所述分区配置模块11用于预先在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识。其中,所述设备包括但不限于OLT(OpticalLineTerminal,光线路终端)。其中,所述存储区为闪存区,即FLASH存储区。具体地,于本实施例中,在当前设备的FLASH分配两块软件版本区,这两个区互为主备,会根据升级情况,确定主备关系。
于本实施例中,所述环境变量区配置模块12用于分配环境变量区并通过所述环境变量区存储用于启动设备版本的设备版本启动信息。
具体地,于本实施例中,所述环境变量区配置模块12中分配的所述环境变量区包括:存储有用于启动设备版本的设备版本启动信息的主环境变量区和备份所述主环境变量区中内容的备份环境变量区。
于本实施例中,所述环境变量区检测模块13与所述环境变量区配置模块12相连,用于检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取。
具体地,于本实施例中,如图5所示,所述环境变量区检测模块13包括:主环境变量区检测单元121,备份环境变量区检测单元122和同步单元123。
于本实施例中,所述主环境变量区检测单元121用于检测所述主环境变量区中的设备版本启动信息数据是否可以正常读取;在所述主环境变量区中的设备版本启动信息数据可以正常读取时,所述激活分区标识获取模块14从所述主环境变量区获取所述激活分区标识。
于本实施例中,所述备份环境变量区检测单元122与所述主环境变量区检测单元121相连,在所述主环境变量区中的设备版本启动信息数据不可以正常读取时,用于继续检测所述备份环境变量区中的设备版本启动信息是否可以正常读取;在所述备份环境变量区中的设备版本启动信息数据不可以正常读取时,终止设备版本启动。
于本实施例中,所述同步单元123与所述环境变量区配置模块12和所述备份环境变量区检测单元122相连,在所述备份环境变量区中的设备版本启动信息数据可以正常读取时,则将所述备份环境变量区中的设备版本启动信息同步到所述主环境变量区中,所述激活分区标识获取模块14从当前的所述主环境变量区获取所述激活分区标识获取。
在检测环境变量区中存储的用于启动设备版本的设备版本启动信息是否可以正常读取时,首先主环境变量区检测单元121检测所述主环境变量区中的设备版本启动信息数据是否可以正常读取,若是,则所述激活分区标识获取模块14从所述主环境变量区获取所述激活分区标识,若否,则所述备份环境变量区检测单元122继续检测所述备份环境变量区中的设备版本启动信息是否可以正常读取,若是,则所述同步单元123将所述备份环境变量区中的设备版本启动信息同步到所述主环境变量区中,所述激活分区标识获取模块14从当前的所述主环境变量区获取所述激活分区标识,若否,则终止设备版本启动。
于本实施例中,所述激活分区标识获取模块14与所述环境变量区检测模块13相连,用于在所述环境变量区中的设备版本启动信息可以正常读取时,从所述设备版本启动信息中获取激活分区标识;
于本实施例中,所述激活分区确认模块15分别与所述激活分区标识获取模块14和所述分区配置模块11相连,用于根据获取的所述激活分区标识确定当前所要激活的设备版本所在的分区;
于本实施例中,所述激活引导模块17分别与所述激活分区确认模块15和所述分区配置模块11相连,用于引导激活所述分区内的设备版本。
此外,于本实施例中,如图5所示,所述设备版本升级系统1还包括:激活指示模块110,激活指示信号检测模块111和切换模块112。
于本实施例中,激活指示模块110用于在引导激活所述分区内的设备版本时生成用于指示是否正常激活所述分区内的设备版本的激活指示信号;
于本实施例中,激活指示信号检测模块111用于在下一次获取激活分区标识后,检测所述激活指示模块110中的激活指示信号是否正常;在所述激活指示信号正常时所述激活引导模块17引导激活与所述激活分区标识对应的分区;
于本实施例中,切换模块112与所述激活指示信号检测模块111相连,在所述激活指示信号不正常时切换分区,并由所述激活引导模块17引导激活切换分区后分区内的设备版本。
于本实施例中,所述主备分区确认模块16分别与所述激活引导模块17和所述分区配置模块11相连,用于将当前所激活的设备版本所在的分区作为主存储区,将与所述主存储区存储不同设备版本的分区作为备用存储区。
于本实施例中,所述比较模块18与所述分区配置模块11相连,用于将下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息进行比较。
于本实施例中,所述升级写入模块19分别与所述比较模块18、所述分区配置模块11和所述环境变量区配置模块12相连,用于下载的设备版本信息与所述主存储区内和所述备用存储区内的设备版本信息均不同时,将下载的设备版本写入所述备用存储区并将与所述下载的设备版本的信息和对应的激活分区标识写入环境变量区。
即于本实施例中,在版本升级时,首先从环境变量区读取当前主备分区版本信息,并比较当前下载的版本信息,如果都不一样,直接写flash覆盖备份分区版本,并更新环境变量区,切换激活标志。本实施例的设备版本设计方法采用主备分区保存不同版本的机制,并增加上一次正常启动标志,激活分区标志,可以实现OLT设备启动的灵活性和可靠性。
此外,于本实施例中,如图5所示,所述设备版本升级系统1还包括:提示模块113,分别与所述环境变量区检测模块13和和所述升级写入模块19相连,用于在所述环境变量区中的设备版本启动信息可以正常读取时和/或在下载的设备版本信息与所述主存储区内或所述备用存储区内的设备版本信息不同时进行提示。
综上所述,本发明在设备的存储区分配有用于存储不同设备版本的两个分区并为每个分区配置不同的激活区分标识,根据设备启动时获取的激活分区标识确定当前所要激活的设备版本所在的分区并引导激活所述分区内的设备版本,大大降低了设备重启后无法运行以及远程控制的风险,并且在设备重启后,让设备自动选择合适的版本启动,设备版本升级出现问题的风险大大的被降低了,出现无法远程控制设备的情况也会减少,提高了设备运行的可靠性;本发明可以实现OLT设备启动的灵活性和可靠性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。