CN114416153A - 一种实时操作系统的热升级方法及控制器 - Google Patents

一种实时操作系统的热升级方法及控制器 Download PDF

Info

Publication number
CN114416153A
CN114416153A CN202111620282.1A CN202111620282A CN114416153A CN 114416153 A CN114416153 A CN 114416153A CN 202111620282 A CN202111620282 A CN 202111620282A CN 114416153 A CN114416153 A CN 114416153A
Authority
CN
China
Prior art keywords
partition
block
differential
upgrade
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111620282.1A
Other languages
English (en)
Inventor
刘伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Abup Intelligent Technology Co ltd
Original Assignee
Shanghai Abup Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Abup Intelligent Technology Co ltd filed Critical Shanghai Abup Intelligent Technology Co ltd
Priority to CN202111620282.1A priority Critical patent/CN114416153A/zh
Publication of CN114416153A publication Critical patent/CN114416153A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及嵌入式设备技术领域,具体涉及一种实时操作系统的热升级方法及控制器,包括:步骤S1:自一外部的服务器获取差分升级包;步骤S2:根据所述差分升级包获取所述第一系统中的待升级区块;步骤S3:采用所述差分升级包对所述待升级区块进行升级,以形成第二系统,随后将所述第二系统写入所述存储介质中的第二分区;步骤S4:重启所述控制器并运行所述第二系统,以完成热升级过程。本发明的有益效果在于:通过差分升级避免了现有技术中对实时操作系统进行整体升级导致整体的下载、安装时间过长的问题,有效缩短了升级时间,节省了计算资源。

Description

一种实时操作系统的热升级方法及控制器
技术领域
本发明涉及嵌入式设备技术领域,具体涉及一种实时操作系统的热升级方法及控制器。
背景技术
实时操作系统(RTOS,Real Time Operating System),是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。由于实时操作系统响应迅速,处理时间短,因此在工业领域,如自动化生产线、大型化工系统、物联网设备等技术领域中得到了广泛应用。通常情况下,为了更好地满足用户的需求,在嵌入式设备的全生命周期中,往往会需要对实时操作系统进行更新以添加新的功能或对原有缺陷进行修正。
现有技术中,已存在有对物联网设备中的实时操作系统进行升级的相关升级方法。但是,在实际实施过程中,发明人发现,现有技术中对实时操作系统的升级过程中,往往会导致业务中断的问题。并且,现有技术中所依赖的更新方式往往存在有整包下载时间过长、存储空间消耗大等问题。
发明内容
针对现有技术中存在的上述问题,现提供一种实时操作系统的热升级方法及控制器。
具体技术方案如下:
一种实时操作系统的热升级方法,适用于一控制器,所述控制器的存储介质内设置有第一分区,所述第一分区内存储有第一系统,所述控制器运行所述第一系统;
则所述热升级方法包括:
步骤S1:自一外部的服务器获取差分升级包;
步骤S2:根据所述差分升级包获取所述第一系统中的待升级区块;
步骤S3:采用所述差分升级包对所述待升级区块进行升级,以形成第二系统,随后将所述第二系统写入所述存储介质中的第二分区;
步骤S4:重启所述控制器并运行所述第二系统,以完成热升级过程。
优选地,所述步骤S1包括:
当所述第一系统正在运行一应用程序时,所述第一系统采用一升级程序连接所述服务器并获取所述差分升级包;
所述第一系统对所述应用程序和所述升级程序进行调度,以使得所述应用程序和所述升级程序并行执行。
优选地,所述差分升级包中包括一差异数据标识;
则所述步骤S2包括:
步骤S21:获取所述第一系统中的多个区块;
步骤S22:根据所述差异数据标识自所述区孔中选取至少一个所述待升级区块。
优选地,所述差分升级包中包括有对应于所述待升级区块的替换数据区块;
则所述步骤S3包括:
步骤S31:依次获取所述第一系统中的所述区块,判断所述区块是否为所述待升级区块;
若是,将所述差分升级包中对应的所述替换数据区块写入所述第二分区;
若否,将所述区块写入所述第二分区;
步骤S32:重复所述步骤S31,直至所述第一系统中的所有所述区块判断完毕,以在所述第二分区内形成所述第二系统。
优选地,所述差异数据标识位于所述差分升级包的头部,多个所述替换数据区块分别根据对应的所述区块在所述第一系统中的顺序,依次排列于所述差异数据标识的后方;
则所述热升级方法还包括:
当获取到所述差异数据标识后,继续下载所述差分升级包,以依次获取后续的所述替换数据区块,同时并行执行所述步骤S2。
优选地,所述替换数据区块包括一对应于所述替换数据区块的长度信息;
则于所述步骤S31中,当所述区块为所述待升级区块时,根据所述长度信息判断对应于所述待升级区块的所述替换数据区块是否下载完成;
若是,将所述差分升级包中对应的所述替换数据区块写入所述第二分区;
若否,等待所述替换数据区块下载完成,随后将所述差分升级包中对应的所述替换数据区块写入所述第二分区。
优选地,于所述步骤S32之前还包括一校验过程,所述校验过程包括:
步骤A311:自所述第二分区内获取写入区块;
步骤A312:对所述写入区块进行校验生成校验结果,根据所述校验结果判断所述写入区块是否正确;
若是,转向所述步骤S32;
若是,擦除所述写入区块,返回所述步骤S31。
优选地,所述第一分区内于所述步骤S1之前设置有一启动标识符,用于使所述控制器以所述第一系统启动;
则所述步骤S4包括:
步骤S41:擦除所述第一分区内的所述启动标识符,于所述第二分区内写入所述启动标识符;
步骤S42:重启所述控制器,并根据所述启动标识符选择以所述第二系统启动,以完成所述热升级过程。
一种控制器,包括处理器和存储器,所述处理器连接所述存储器;
所述存储器中划分有第一分区和第二分区,所述第一分区中预设有第一系统;
所述处理器运行所述第一系统,并执行上述的热升级方法,进而在所述第二分区内创建第二系统。
优选地,所述存储器内还划分有一第三分区,所述第三分区内存储所述控制器下载得到的差分升级包。
上述技术方案具有如下优点或有益效果:通过差分升级避免了现有技术中对实时操作系统进行整体升级导致整体的下载、安装时间过长的问题,有效缩短了升级时间,节省了计算资源。
附图说明
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1为本发明实施例的整体示意图;
图2为本发明实施例中步骤S2子步骤示意图;
图3为本发明实施例中步骤S3子步骤示意图;
图4为本发明另一实施例中热升级方法示意图;
图5为本发明另一实施例中步骤S3子步骤示意图;
图6为本发明另一实施例中步骤S3子步骤示意图;
图7为本发明实施例中步骤S4子步骤示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明包括:
一种实时操作系统的热升级方法,适用于一控制器,控制器的存储介质内设置有第一分区,第一分区内存储有第一系统,控制器运行第一系统;
则如图1所示,热升级方法包括:
步骤S1:自一外部的服务器获取差分升级包;
步骤S2:根据差分升级包获取第一系统中的待升级区块;
步骤S3:采用差分升级包对待升级区块进行升级,以形成第二系统,随后将第二系统写入存储介质中的第二分区;
步骤S4:重启控制器并运行第二系统,以完成热升级过程。
具体地,针对现有技术中对嵌入式设备中的实时操作系统进行完整升级耗时较长,需要占用大量带宽下载完整镜像的问题,本发明通过选用差分升级方法实现对实时操作系统的待更新部分的升级,缩短了系统更新过程的时长。
在实施过程中,控制器为一具有通用处理器的嵌入式设备,其设置在一外部的具有物联网功能的设备中,用于根据相关应用程序实现相应的功能。实时操作系统为基于现有技术实现的一操作系统,其能够基于现有技术中的网络通信协议自服务器中获取版本号进而判断操作系统是否需要升级。存储介质为计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。存储介质中至少划分有第一分区、第二分区和第三分区。其中第一分区用于存储第一系统,第二分区用于存储第二系统,第三分区用于存储差分升级包。第一分区和第二分区所占用的扇区相同或不同。在一个实施例中,第三分区占用的扇区数量为两个。需要说明的是,存储介质中还可以划分有其他分区用于存储文件、程序或其他数据内容,其与本发明所记载的热升级方法无关,在此不再赘述。
在一种较优的实施例中,如图2所示,步骤S1包括:
当第一系统正在运行一应用程序时,第一系统采用一升级程序连接服务器并获取差分升级包;
第一系统对应用程序和升级程序进行调度,以使得应用程序和升级程序并行执行。
具体地,针对现有技术中,对实时操作系统升级的过程会导致业务中断的问题,本实施例中通过系统对应用程序和升级程序进行调度实现了应用程序和升级程序的并行执行,进而避免了在升级过程中需要中断正常业务的问题。
作为可选的实施方式,第一系统基于时间片对应用程序和升级程序进行调度。其中,应用程序和升级程序在第一系统中的优先级相同。第一系统在运行过程中,在每一次中断开始时,根据当前中断的序号依次对应用程序和升级程序进行挂起和执行,进而使得应用程序和升级程序在整体过程上可以并行执行。避免了现有技术中升级程序在下载升级包时需要挂起应用程序的缺陷。
在一种较优的实施例中,差分升级包中包括一差异数据标识;
则如图3所示,步骤S2包括:
步骤S21:获取第一系统中的多个区块;
步骤S22:根据差异数据标识自区孔中选取至少一个待升级区块。
具体地,针对现有技术中对实时操作系统进行整体升级耗时较长的问题,本实施例中通过在差分升级包中设置差异数据标识实现了对本次更新过程中待更新的区块的提取,进而实现了系统的差分升级,节省了下载升级包所需的网络流量
在一种较优的实施例中,差分升级包中包括有对应于待升级区块的替换数据区块;
则如图4所示,步骤S3包括:
步骤S31:依次获取第一系统中的区块,判断区块是否为待升级区块;
若是,将差分升级包中对应的替换数据区块写入第二分区;
若否,将区块写入第二分区;
步骤S32:重复步骤S31,直至第一系统中的所有区块判断完毕,以在第二分区内形成第二系统。
具体地,针对现有技术中,实时操作系统升级时需要对系统分区进行整体刷写,耗时较长的问题,本实施例中通过在差分升级包中设置替换数据区块,并在生成新的第二系统的过程中仅用替换数据区块替代待升级区块,实现了差分升级的过程。避免了现有技术中将不需要升级的区块进行完整解压、写入需要较长时间和较多计算资源的问题。
在一种较优的实施例中,如下表1所示,差异数据标识位于差分升级包的头部,多个替换数据区块分别根据对应的区块在第一系统中的顺序,依次排列于差异数据标识的后方;
差异数据标识 第一替换数据区块 第n替换数据区块
表1
则如图4所示,热升级方法还包括:
当获取到差异数据标识后,继续下载差分升级包,以依次获取后续的替换数据区块,同时并行执行步骤S2。
具体地,针对现有技术中,对实时操作系统需要完整下载升级包后再进行升级,升级时间较长的问题,本实施例中通过对差分升级包中数据结构进行调整,使得差分升级包在下载过程中可以与数据校验、待升级区块确认过程同步执行,进而缩短了整体的升级时间。
在一种较优的实施例中,替换数据区块包括一对应于替换数据区块的长度信息;
则如图5所示,于步骤S31中,当区块为待升级区块时,根据长度信息判断对应于待升级区块的替换数据区块是否下载完成;
若是,将差分升级包中对应的替换数据区块写入第二分区;
若否,等待替换数据区块下载完成,随后将差分升级包中对应的替换数据区块写入第二分区。
具体地,针对现有技术中,系统升级过程依赖于完整的升级包,整体等待时间较长的问题,本实施例中通过对差分升级包的数据结构进行调整,进而使得差分升级包可以应用于分段更新中,使得下载过程和区块写入过程可以并行执行,从而缩短了差分升级的整体耗时。
在实施过程中,替换数据区块中根据预设的差分升级协议设置有一长度信息。比如,在一实施例中,长度信息的长度为4个字节,位于替换数据区块中数据偏移的第32个字节。每个替换数据区块包括一对应的长度信息。升级程序通过比对长度信息和已接收到的该替换数据区块的字节长度判断该替换数据区块是否已下载完成。当该替换数据区块下载完成后,则表明对应于该替换数据区块的待升级区块可以进行升级,则将替换数据区块根据上述的顺序写入第二分区,以完成该待升级区块的升级工作。
在一种较优的实施例中,于步骤S32之前还包括一校验过程,如图6所示,校验过程包括:
步骤A311:自第二分区内获取写入区块;
步骤A312:对写入区块进行校验生成校验结果,根据校验结果判断写入区块是否正确;
若是,转向步骤S32;
若是,擦除写入区块,返回步骤S31。
具体地,针对差分升级过程容易存在有数据错误进而导致升级失败、系统无法启动的问题,本实施例中通过在每一个区块写入之后进行校验以生成校验结果,进而有效地判断出已写入的区块是否能够在第二系统中被正常读取、执行。基于上述技术手段实现了对升级过程形成的第二系统的校验,进而提高了系统升级的成功率,减少系统回滚次数。
在一种较优的实施例中,第一分区内于步骤S1之前设置有一启动标识符,用于使控制器以第一系统启动;
则如图7所示,步骤S4包括:
步骤S41:擦除第一分区内的启动标识符,于第二分区内写入启动标识符;
步骤S42:重启控制器,并根据启动标识符选择以第二系统启动,以完成热升级过程。
具体地,为实现对实时操作系统的完整升级过程,本实施例中通过设置启动标识符实现了对当前正在运行的第一系统和更新形成的第二系统的有效区分,进而使得实时操作系统在更新后可以正常运行第二操作系统。
一种控制器,包括处理器和存储器,处理器连接存储器;
存储器中划分有第一分区和第二分区,第一分区中预设有第一系统;
处理器运行第一系统,并执行上述的热升级方法,进而在第二分区内创建第二系统。
在一种较优的实施例中,存储器内还划分有一第三分区,第三分区内存储控制器下载得到的差分升级包。
本发明的有益效果在于:通过差分升级避免了现有技术中对实时操作系统进行整体升级导致整体的下载、安装时间过长的问题,有效缩短了升级时间,节省了计算资源。
以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

Claims (10)

1.一种实时操作系统的热升级方法,其特征在于,适用于一控制器,所述控制器的存储介质内设置有第一分区,所述第一分区内存储有第一系统,所述控制器运行所述第一系统;
则所述热升级方法包括:
步骤S1:自一外部的服务器获取差分升级包;
步骤S2:根据所述差分升级包获取所述第一系统中的待升级区块;
步骤S3:采用所述差分升级包对所述待升级区块进行升级,以形成第二系统,随后将所述第二系统写入所述存储介质内的一第二分区;
步骤S4:重启所述控制器并运行所述第二系统,以完成热升级过程。
2.根据权利要求1所述的热升级方法,其特征在于,所述步骤S1包括:
当所述第一系统正在运行一应用程序时,所述第一系统采用一升级程序连接所述服务器并获取所述差分升级包;
所述第一系统对所述应用程序和所述升级程序进行调度,以使得所述应用程序和所述升级程序并行执行。
3.根据权利要求1所述的热升级方法,其特征在于,所述差分升级包中包括一差异数据标识;
则所述步骤S2包括:
步骤S21:获取所述第一系统中的多个区块;
步骤S22:根据所述差异数据标识自所述区孔中选取至少一个所述待升级区块。
4.根据权利要求3所述的热升级方法,其特征在于,所述差分升级包中包括有对应于所述待升级区块的替换数据区块;
则所述步骤S3包括:
步骤S31:依次获取所述第一系统中的所述区块,判断所述区块是否为所述待升级区块;
若是,将所述差分升级包中对应的所述替换数据区块写入所述第二分区;
若否,将所述区块写入所述第二分区;
步骤S32:重复所述步骤S31,直至所述第一系统中的所有所述区块判断完毕,以在所述第二分区内形成所述第二系统。
5.根据权利要求4所述的热升级方法,其特征在于,所述差异数据标识位于所述差分升级包的头部,多个所述替换数据区块分别根据对应的所述区块在所述第一系统中的顺序,依次排列于所述差异数据标识的后方;
则所述热升级方法还包括:
当获取到所述差异数据标识后,继续下载所述差分升级包,以依次获取后续的所述替换数据区块,同时并行执行所述步骤S2。
6.根据权利要求5所述的热升级方法,其特征在于,所述替换数据区块包括一对应于所述替换数据区块的长度信息;
则于所述步骤S31中,当所述区块为所述待升级区块时,根据所述长度信息判断对应于所述待升级区块的所述替换数据区块是否下载完成;
若是,将所述差分升级包中对应的所述替换数据区块写入所述第二分区;
若否,等待所述替换数据区块下载完成,随后将所述差分升级包中对应的所述替换数据区块写入所述第二分区。
7.根据权利要求4所述的热升级方法,其特征在于,于所述步骤S32之前还包括一校验过程,所述校验过程包括:
步骤A311:自所述第二分区内获取写入区块;
步骤A312:对所述写入区块进行校验生成校验结果,根据所述校验结果判断所述写入区块是否正确;
若是,转向所述步骤S32;
若是,擦除所述写入区块,返回所述步骤S31。
8.根据权利要求4所述的热升级方法,其特征在于,所述第一分区内于所述步骤S1之前设置有一启动标识符,用于使所述控制器以所述第一系统启动;
则所述步骤S4包括:
步骤S41:擦除所述第一分区内的所述启动标识符,于所述第二分区内写入所述启动标识符;
步骤S42:重启所述控制器,并根据所述启动标识符选择以所述第二系统启动,以完成所述热升级过程。
9.一种控制器,其特征在于,包括处理器和存储器,所述处理器连接所述存储器;
所述存储器中划分有第一分区和第二分区,所述第一分区中预设有第一系统;
所述处理器运行所述第一系统,并执行如权利要求1-8任意一项所述的热升级方法,进而在所述第二分区内创建第二系统。
10.根据权利要求9所述的控制器,其特征在于,所述存储器内还划分有一第三分区,所述第三分区内存储所述控制器下载得到的差分升级包。
CN202111620282.1A 2021-12-27 2021-12-27 一种实时操作系统的热升级方法及控制器 Pending CN114416153A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111620282.1A CN114416153A (zh) 2021-12-27 2021-12-27 一种实时操作系统的热升级方法及控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111620282.1A CN114416153A (zh) 2021-12-27 2021-12-27 一种实时操作系统的热升级方法及控制器

Publications (1)

Publication Number Publication Date
CN114416153A true CN114416153A (zh) 2022-04-29

Family

ID=81269790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111620282.1A Pending CN114416153A (zh) 2021-12-27 2021-12-27 一种实时操作系统的热升级方法及控制器

Country Status (1)

Country Link
CN (1) CN114416153A (zh)

Similar Documents

Publication Publication Date Title
CN109189445B (zh) 一种物联网设备程序升级的方法
CN110765026B (zh) 自动化测试方法、装置、存储介质及设备
CN111897558A (zh) 容器集群管理系统Kubernetes升级方法和装置
CN112000358B (zh) 充电桩的升级方法与智能充电桩
CN107608681A (zh) 操作系统安装方法、装置和服务器
CN112394966A (zh) 设备升级方法、装置、计算机可读介质及设备
CN111104147A (zh) 一种bmc升级方法、装置、终端及存储介质
CN112068896A (zh) Dts修改的方法、装置及计算机可读存储介质
CN110597545A (zh) 一种基于ota组件的热补丁智能升级方法及系统
CN110750285A (zh) 固件升级方法、装置、计算机设备和存储介质
US20220405083A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
CN116360831A (zh) 一种应用程序升级方法、装置、电子设备及存储介质
CN108664255B (zh) 一种软件升级方法及装置
CN109375953B (zh) 一种操作系统启动方法及装置
CN110618828B (zh) 一种数据更新方法及装置
CN105610645A (zh) 车辆管理系统及其控制方法、装置
CN114416153A (zh) 一种实时操作系统的热升级方法及控制器
CN117215656A (zh) 基于Linux系统自适配车机芯片方法、装置、电子设备及车辆
CN107957878B (zh) 一种基于存储资源再分配的嵌入式设备软件在线升级方法
CN117170699A (zh) 基于uds协议的汽车控制器升级系统及方法
CN115437674A (zh) 一种固件升级方法、装置、介质及电子设备
CN114880008A (zh) 软件升级方法及系统
CN115904933A (zh) 代码仓库管理方法、装置、电子设备及存储介质
CN114546455A (zh) 一种双分区的mcu软件升级方法及装置
CN113766554A (zh) 获取WiFi校准数据的方法、装置及WiFi设备校准测试系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination