嵌入式操作系统在线升级的方法、装置、设备和存储介质制造方法及图纸

技术编号:30523089 阅读:15 留言:0更新日期:2021-10-27 23:07
本申请涉及工业控制领域,本申请提供了一种嵌入式操作系统在线升级的方法、装置、设备和存储介质。本申请实施例,应用于计算设备,所述计算设备包括FLASH,所述FLASH包括引导分区、配置分区、BOOT分区和APP分区,所述引导分区中存储有引导代码,本申请实施例的嵌入式操作系统在线升级的方法,运行引导代码即可实现BOOT分区和APP分区的升级固件更新。本申请实施例通过FLASH中四个分区之间的简单逻辑校验和跳转实现了嵌入式操作系统的升级固件自动更新功能,从而显著降低了嵌入式操作系统的维护成本。护成本。护成本。

【技术实现步骤摘要】
嵌入式操作系统在线升级的方法、装置、设备和存储介质


[0001]本申请涉及工业控制领域,尤其涉及一种嵌入式操作系统在线升级的方法、装置、设备和存储介质。

技术介绍

[0002]目前,嵌入式操作系统在线升级技术主要通过在设备的闪存(FLASH)内划分出一段空间作为升级固件,通过该升级固件接收上位机的升级数据包,写入FLASH内应用程序空间完成升级。该方法缺陷为:升级固件不能自升级,当设备升级固件有漏洞(BUG)时,不能通过发布新升级固件的方式解决,只能返厂并使用专有机器烧写升级固件,这显著增加了嵌入式操作系统的维护成本。

技术实现思路

[0003]鉴于现有技术的以上问题,本申请提供一种嵌入式操作系统在线升级的方法、装置、设备和存储介质,能够实现嵌入式操作系统的在线升级,显著降低嵌入式操作系统的维护成本。
[0004]为达到上述目的,本申请第一方面提供了一种嵌入式操作系统在线升级的方法,应用于计算设备,所述计算设备包括FLASH,所述FLASH包括引导分区、配置分区、升级固件BOOT分区和应用程序APP分区,所述引导分区中存储有引导代码,包括:
[0005]运行所述引导代码以验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同,所述第一校验码对应于所述BOOT分区;
[0006]在所述BOOT分区的校验码与所述第一校验码不同时将所述APP分区中的BOOT数据包复制到所述BOOT分区;
[0007]在所述BOOT分区的校验码与所述第一校验码相同时或所述复制之后,更新APP分区的升级数据包,所述升级数据包为所述BOOT数据包或APP数据包。
[0008]由此,通过在FLASH中增设存储有引导代码的FIRMWARE分区即可实现设备中升级固件的自动更新。
[0009]作为第一方面的一种可能的实现方式,所述方法还包括:验证所述APP分区的校验码与所述配置分区中记录的第二校验码是否相同,所述第二校验码对应于所述APP分区;所述更新APP分区的升级数据包,具体包括:在所述APP分区的校验码与所述第二校验码不同时,接收来自上位机的所述升级数据包并写入APP分区。
[0010]由此,通过基于APP分区的校验码和BOOT分区的校验码的简单校验逻辑,便可实现升级数据包的自动更新。
[0011]作为第一方面的一种可能的实现方式,所述方法还包括:在所述升级数据包为APP数据包时,更新所述APP分区的校验码和所述配置分区中的第二校验码;和/或,在所述升级数据包为BOOT数据包时,将所述配置分区中的第一校验码置0,并运行所述引导分区中的引导代码以重新验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同。
[0012]由此,可实时更新APP分区、配置分区和BOOT分区中的校验码,以便通过校验码的校验逻辑完成BOOT分区、APP分区的升级固件更新。
[0013]作为第一方面的一种可能的实现方式,所述方法还包括:在所述BOOT分区的校验码与所述第一校验码相同且所述APP分区的校验码与所述第二校验码相同时,运行所述APP分区中APP数据包的嵌入式逻辑代码。
[0014]由此,可通过更新后的升级固件实现计算设备的具体功能。
[0015]本申请第二方面提供了一种嵌入式操作系统在线升级的装置,所述装置包括:BOOT校验模块、BOOT分区更新模块和APP分区更新模块;所述装置应用于计算设备,所述计算设备包括FLASH,所述FLASH包括引导分区、配置分区、升级固件BOOT分区和应用程序APP分区,所述引导分区中存储有引导代码;其中,
[0016]所述BOOT校验模块,配置为运行所述引导代码以验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同,所述第一校验码对应于所述BOOT分区,在所述BOOT分区的校验码与所述第一校验码不同时通知所述BOOT分区更新模块,在所述BOOT分区的校验码与所述第一校验码不同时通知所述APP分区更新模块;
[0017]BOOT分区更新模块,配置为在所述BOOT分区的校验码与所述第一校验码不同时,将所述APP分区中的BOOT数据包复制到所述BOOT分区,并在完成所述复制之后通知所述APP分区更新模块;
[0018]APP分区更新模块,配置为在所述BOOT分区的校验码与所述第一校验码相同时或所述复制之后,更新APP分区的升级数据包,所述升级数据包为所述BOOT数据包或APP数据包。
[0019]由此,通过在FLASH中增设存储有引导代码的FIRMWARE分区即可实现设备中升级固件的自动更新。
[0020]作为第二方面的一种可能的实现方式,所述装置还包括:
[0021]APP校验模块,配置为验证所述APP分区的校验码与所述配置分区中记录的第二校验码是否相同,在所述APP分区的校验码与所述第二校验码不同时通知所述APP分区更新模块,所述第二校验码对应于所述APP分区,
[0022]所述APP分区更新模块,具体配置为在所述APP分区的校验码与所述第二校验码不同时,接收来自上位机的所述升级数据包并写入APP分区。
[0023]由此,通过基于APP分区的校验码和BOOT分区的校验码的简单校验逻辑,便可实现升级数据包的自动更新。
[0024]作为第二方面的一种可能的实现方式,所述APP分区更新模块,还配置为在所述升级数据包为APP数据包时通知所述APP校验模块;和/或,在所述升级数据包为BOOT数据包时通知所述BOOT校验模块;
[0025]所述APP校验模块,还配置为在所述升级数据包为APP数据包时,更新所述APP分区的校验码和所述配置分区中的第二校验码;和/或,
[0026]所述BOOT校验模块,还配置为在所述升级数据包为BOOT数据包时,将所述配置分区中的第一校验码置0,并运行所述引导分区中的引导代码以验证所述BOOT分区的校验码与所述配置分区中的第一校验码是否相同。
[0027]由此,可实时更新APP分区、配置分区和BOOT分区中的校验码,以便通过校验码的
校验逻辑完成BOOT分区、APP分区的升级固件更新。
[0028]作为第二方面的一种可能的实现方式,所述装置还包括:升级模块;其中,
[0029]所述APP校验模块,还配置为在所述APP分区的校验码与所述第二校验码相同时通知所述升级模块;
[0030]所述升级模块,配置为在所述BOOT分区的校验码与所述第一校验码相同且所述APP分区的校验码与所述第二校验码相同时,运行所述APP分区中APP数据包的嵌入式逻辑代码。
[0031]由此,可通过更新后的升级固件实现计算设备的具体功能。
[0032]本申请实施例第三方面提供了一种计算设备,包括:
[0033]FLASH,包括引导分区、配置分区、BOOT分区和APP分区,所述引导分区中存储有引导代码;
[0034]处理器;
[0035]存储器,存储有程序指令,所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种嵌入式操作系统在线升级的方法,其特征在于,应用于计算设备,所述计算设备包括FLASH,所述FLASH包括引导分区、配置分区、升级固件BOOT分区和应用程序APP分区,所述引导分区中存储有引导代码,包括:运行所述引导代码以验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同,所述第一校验码对应于所述BOOT分区;在所述BOOT分区的校验码与所述第一校验码不同时将所述APP分区中的BOOT数据包复制到所述BOOT分区;在所述BOOT分区的校验码与所述第一校验码相同时或所述复制之后,更新APP分区的升级数据包,所述升级数据包为所述BOOT数据包或APP数据包。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:验证所述APP分区的校验码与所述配置分区中记录的第二校验码是否相同,所述第二校验码对应于所述APP分区;所述更新APP分区的升级数据包,具体包括:在所述APP分区的校验码与所述第二校验码不同时,接收来自上位机的所述升级数据包并写入APP分区。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述升级数据包为APP数据包时,更新所述APP分区的校验码和所述配置分区中的第二校验码;和/或,在所述升级数据包为BOOT数据包时,将所述配置分区中的第一校验码置0,并运行所述引导分区中的引导代码以重新验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同。4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:在所述BOOT分区的校验码与所述第一校验码相同且所述APP分区的校验码与所述第二校验码相同时,运行所述APP分区中APP数据包的嵌入式逻辑代码。5.一种嵌入式操作系统在线升级的装置,其特征在于,所述装置包括:BOOT校验模块、BOOT分区更新模块和APP分区更新模块;所述装置应用于计算设备,所述计算设备包括FLASH,所述FLASH包括引导分区、配置分区、升级固件BOOT分区和应用程序APP分区,所述引导分区中存储有引导代码;其中,所述BOOT校验模块,配置为运行所述引导代码以验证所述BOOT分区的校验码与所述配置分区中记录的第一校验码是否相同,所述第一校验码对应于所述BOOT分区,在所述BOOT分区的校验码与所述第一校验码不同时通知所述BOOT分区更新模块,在所述BOOT分区的校验码与所述第一校验码不同时通知所述APP分区更新模块...

【专利技术属性】
技术研发人员:先凤新
申请(专利权)人:科东广州软件科技有限公司
类型:发明
国别省市:

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

1