一种升级设备的方法及系统与流程

文档序号:11154516阅读:286来源:国知局
一种升级设备的方法及系统与制造工艺

本发明涉及计算机领域,尤其涉及一种升级设备的方法及系统。



背景技术:

随着电子技术、通信技术以及计算机技术的迅猛发展,嵌入式系统已经广泛应用于各领域,各种行业对嵌入式设备的系统功能、性能以及规模的要求都在日益提高,开发者必须能够针对客户的需求及时对系统进行维护和升级,以延长系统的使用周期,改善系统的性能。目前嵌入式设备的升级方式主要是,系统首先下载升级包,然后检测升级包是否正确,接着根据升级包升级系统,最后重启设备,升级完毕。

但是,嵌入式设备在升级设备的过程中如遇到突然断电、烧写或读取时nandflash出现坏块、升级后重启系统无法正常引导、升级后重启系统相关应用程序无法正常启动等情况,可能会导致嵌入式设备无法正常运行或数据丢失等后果,极大地影响到系统的可靠性和安全性。



技术实现要素:

本发明所要解决的技术问题是:提供一种升级设备的方法及系统,当设备升级失败时可恢复设备至升级前的可运行状态,提高设备使用的稳定性和可靠性。

为了解决上述技术问题,本发明采用的技术方案为:

本发明提供一种升级设备的方法,包括:

S1、预设第一系统和第二系统;设备启动时默认运行所述第一系统;

S2、根据升级包升级所述第二系统;

S3、所述升级的操作完成后检测所述第二系统,得到系统升级结果;

S4、若所述系统升级结果为升级成功,则设置设备启动时默认运行所述第二系统。

本发明还提供一种升级设备的系统,包括:

预设模块,用于预设第一系统和第二系统;设备启动时默认运行所述第一系统;

升级模块,用于根据升级包升级所述第二系统;

检测模块,用于所述升级的操作完成后检测所述第二系统,得到系统升级结果;

设置模块,用于若所述系统升级结果为升级成功,则设置设备启动时默认运行所述第二系统。

本发明的有益效果在于:通过预设第一系统和第二系统,对当前处于非运行态的第二系统进行升级操作,升级操作完成后检测升级结果,若升级结果为第二系统升级成功,则设置设备启动时默认运行第二系统,实现升级设备功能的效果;若升级结果为第二系统升级失败,则设备启动时仍默认运行第一系统,实现即时由于断电、烧写或读取时nandflash出现坏块、升级包本身存在问题等因素系统升级失败,设备仍可正常运行,无需返厂检修,提高了设备的稳定性和可靠性。此外,由于设备中预设了双系统,可在设备正常运行时同时升级另一个处于非运行态的系统,提高了设备升级的效率。

附图说明

图1为本发明一种升级设备的方法的具体实施方式的流程框图;

图2为本发明一种升级设备的系统的具体实施方式的结构框图;

标号说明:

1、预设模块;2、升级模块;3、检测模块;4、设置模块;5、合并模块;6、获取模块;7、重启模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:通过在设备内预设双系统,并在其中一系统升级操作完成后检测升级结果,提高设备的可靠性和稳定性。

如图1所示,本发明提供一种升级设备的方法,包括:

S1、预设第一系统和第二系统;设备启动时默认运行所述第一系统;

S2、根据升级包升级所述第二系统;

S3、所述升级的操作完成后检测所述第二系统,得到系统升级结果;

S4、若所述系统升级结果为升级成功,则设置设备启动时默认运行所述第二系统。

进一步地,所述S2之前,还包括:

合并操作系统、文件系统和设备树为二进制文件,得到所述升级包。

由上述描述可知,通过将操作系统、文件系统和设备树合并并转换为二进制文件,使得无需运行第二系统也可通过直接将升级包下载至第二系统所在分区覆盖之前的升级包从而完成升级操作,简化了系统升级的过程,提高了系统升级的效率和速度。

进一步地,所述S3具体为:

S31、检测所述第二系统中内核的升级结果,得到第一升级结果;

S32、检测所述第二系统中程序的升级结果,得到第二升级结果;

S33、若所述第一升级结果和所述第二升级结果均为升级成功,则设置所述系统升级结果为升级成功。

由上述描述可知,只有当内核和程序的升级结果均为升级成功,设备才可正常工作,检验了升级后的系统的有效性。

进一步地,所述S32具体为:

获取升级操作涉及的程序,形成第一程序集合;

获取所述第一程序集合中各程序的运行状态;

根据所述运行状态,形成与所述第一程序集合对应的第三升级结果集合;

若所述第三升级结果集合中的升级结果均为升级成功,则设置所述第二升级结果为升级成功。

由上述描述可知,通过检测程序的升级结果可检测程序与系统的兼容性。

进一步地,还包括:

实时获取设备的运行状态;

若所述运行状态为死机状态,则重启设备。

进一步地,实时获取设备的运行状态,具体为:

获取预设的输入输出接口引脚的电平状态,得到第一电平状态;

预设时间间隔获取预设的输入输出接口引脚的电平状态,得到第二电平状态;

若所述第一电平状态与所述第二电平状态相同,则设置所述设备的运行状态为死机状态。

由上述描述可知,在系统升级过程中出现死机等影响设备自动工作的状态时,可自动重启设备,恢复到设备可正常工作的状态。

如图2所示,本发明还提供一种升级设备的系统,包括:

预设模块1,用于预设第一系统和第二系统;设备启动时默认运行所述第一系统;

升级模块2,用于根据升级包升级所述第二系统;

检测模块3,用于所述升级的操作完成后检测所述第二系统,得到系统升级结果;

设置模块4,用于若所述系统升级结果为升级成功,则设置设备启动时默认运行所述第二系统。

进一步地,还包括:

合并模块5,用于合并操作系统、文件系统和设备树为二进制文件,得到所述升级包;

获取模块6,用于实时获取设备的运行状态;

重启模块7,用于若所述运行状态为死机状态,则重启设备。

进一步地,所述获取模块包括:

第一获取单元,用于获取预设的输入输出接口引脚的电平状态,得到第一电平状态;

第二获取单元,用于预设时间间隔获取预设的输入输出接口引脚的电平状态,得到第二电平状态;

第一设置单元,用于若所述第一电平状态与所述第二电平状态相同,则设置所述设备的运行状态为死机状态。

进一步地,所述检测模块包括:

第一检测单元,用于检测所述第二系统中内核的升级结果,得到第一升级结果;

第二检测单元,用于检测所述第二系统中程序的升级结果,得到第二升级结果;

第二设置单元,用于若所述第一升级结果和所述第二升级结果均为升级成功,则设置所述系统升级结果为升级成功。

由上述描述可知,通过上述升级设备的系统,对设备进行升级操作,提高了设备在升级过程的稳定性和可靠性。

实施例:

S1、预设第一系统和第二系统;设备启动时默认运行所述第一系统;

其中,第一系统和第二系统存储于Nand Flash介质中,第一系统和第二系统均由Linux操作系统、文件系统和设备树组成。设备的引导程序为uboot,存储于SPI Flash介质中,默认设置引导程序uboot的引导分区标记cur_image=0,则当启动设备时,默认进入第一系统所在的分区启动第一系统。

S2、合并操作系统、文件系统和设备树为二进制文件,得到升级包;

其中,将新的操作系统、文件系统和设备树合并为二进制文件,所述二进制文件即为升级系统所需的升级包。

S3、根据升级包升级所述第二系统;

其中,当需要升级系统时,将升级包下载至第二系统所在的分区,所述升级包会自动覆盖原升级包,从而实现在第一系统正常运行的状态下完成对第二系统的升级操作。在下载升级包的过程中,将第二系统所在分区的状态设置为升级态。使得当升级第二系统时,不必关闭相关功能,不影响设备正常工作。用户可在空闲时间重启设备检测所述第二系统,方便用户日常工作。

S4、所述升级的操作完成后检测所述第二系统,得到系统升级结果;具体为:

S41、检测所述第二系统中内核的升级结果,得到第一升级结果;

其中,检测所述第二系统中内核的升级结果的方法为,启动第二系统,若第二系统启动成功,则设置所述第一升级结果为升级成功,否则设置所述第一升级结果为升级失败。

S42、检测所述第二系统中程序的升级结果,得到第二升级结果;具体为:获取升级操作涉及的程序,形成第一程序集合;

获取所述第一程序集合中各程序的运行状态;

根据所述运行状态,形成与所述第一程序集合对应的第三升级结果集合;

若所述第三升级结果集合中的升级结果均为升级成功,则设置所述第二升级结果为升级成功。

S43、若所述第一升级结果和所述第二升级结果均为升级成功,则设置所述系统升级结果为升级成功。

S5、若所述系统升级结果为升级成功,则设置设备启动时默认运行所述第二系统。

其中,若所述系统升级结果为升级成功,设置第二系统所在分区为正常态,并修改引导程序uboot的引导分区标记cur_image=1,则当启动设备时,默认进入第二系统所在的分区启动第二系统。若所述系统升级结果为升级失败,设置第二系统所在分区为失败态。

系统分区的状态包括正常态、升级态和失败态。只有当系统分区的状态为正常态时,引导程序才可以指向该系统所在的分区。例如,现第二系统为升级后的系统,且升级成功,并将第二系统设置为设备启动时默认运行的系统。但是,经使用一段时间后,用户发觉更新前的系统更适合其业务需求,此时,可将系统分区的状态为正常态的第一系统设置为设备启动时默认运行的系统。用户可切换可正常运行的系统,以满足不同的需求。

设备重启时会自动检测各系统分区的状态,若检测到第二系统分区的状态为升级态,则说明该系统分区下载了升级包完成升级操作,但还未对已升级的系统进行检查是否可正常运行。此时,设备自动对第二系统的内核和程序进行检测,若第二系统可正常运行,则自动设置升级后的系统为设备启动时默认运行的系统。由上述描述可知,当系统升级完毕后并不会立刻检测其升级结果,并设置该系统为设备启动时默认运行的系统,而是等到设备重新启动时才执行相应的操作,有利于系统的升级不妨碍另一正在运行的系统正常工作,当正在运行的系统工作结束后再执行切换至升级后的系统的操作。

若第二系统的系统升级结果为升级失败,则设置第二系统所在分区的状态为失败态。当设备重新启动时,若检测到第二系统所在分区的状态为失败态,则不检测第二系统的系统升级结果,并运行第一系统,以确保设备正常工作。

此外,在第二系统的升级过程中,

实时获取设备的运行状态;具体为:

获取预设的输入输出接口引脚的电平状态,得到第一电平状态;

预设时间间隔获取预设的输入输出接口引脚的电平状态,得到第二电平状态;

若所述第一电平状态与所述第二电平状态相同,则设置所述设备的运行状态为死机状态。

若所述运行状态为死机状态,则重启设备。

其中,设备的CPU通过控制GPIO的电平状态变化,给片外单片机的Watchdog功能提供喂狗信号。一旦CPU出现问题,超时不喂狗,则片外单片机的Watchdog功能自动重启设备。

例如,通过一条引脚将CPU和片外单片机连接,CPU每隔5秒获取该引脚的电平状态,一旦CPU出现问题导致崩溃,则无法控制该引脚的电平变化,若等待时间超过预设的5秒电平状态仍未改变,则将CPU的异常状态发送至片外单片机,片外单片机重启设备。由上述描述可知,当第二系统在升级过程中出现任一意外状况导致设备死机,均可自动重启设备并运行处于正常态的第一系统,提高了设备升级过程的可靠性和安全性。

综上所述,本发明提供的一种升级设备的方法及系统,通过预设第一系统和第二系统,对当前处于非运行态的第二系统进行升级操作,升级操作完成后检测升级结果,若升级结果为第二系统升级成功,则设置设备启动时默认运行第二系统,实现升级设备功能的效果;若升级结果为第二系统升级失败,则设备启动时仍默认运行第一系统,实现即时由于断电、烧写或读取时nandflash出现坏块、升级包本身存在问题等因素系统升级失败,设备仍可正常运行,无需返厂检修,提高了设备的稳定性和可靠性。此外,由于设备中预设了双系统,可在设备正常运行时同时升级另一个处于非运行态的系统,提高了设备升级的效率。进一步地,简化了系统升级的过程,提高了系统升级的效率和速度。进一步地,检验了升级后的系统的有效性。进一步地,通过检测程序的升级结果可检测程序与系统的兼容性。进一步地,在系统升级过程中出现死机等影响设备自动工作的状态时,可自动重启设备,恢复到设备可正常工作的状态。进一步地,本发明还提供一种升级设备的系统,对设备进行升级操作,提高了设备在升级过程的稳定性和可靠性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1