CN113986268A - 远程软件更新的初始化方法、远程软件更新方法和装置 - Google Patents
远程软件更新的初始化方法、远程软件更新方法和装置 Download PDFInfo
- Publication number
- CN113986268A CN113986268A CN202111269983.5A CN202111269983A CN113986268A CN 113986268 A CN113986268 A CN 113986268A CN 202111269983 A CN202111269983 A CN 202111269983A CN 113986268 A CN113986268 A CN 113986268A
- Authority
- CN
- China
- Prior art keywords
- software
- image file
- target software
- backup
- target
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种远程软件更新的初始化方法、远程软件更新方法、装置和车辆控制设备;该方法包括:获取目标软件的设备信息以及目标软件的备份软件的设备信息;基于目标软件的设备信息对目标软件的镜像文件进行校验,对目标软件的镜像文件运行状态进行检测;如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,对备份软件的镜像文件运行状态进行检测;将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。上述方式可以使软件更新过程顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
Description
技术领域
本发明涉及自动驾驶技术领域,尤其涉及一种远程软件更新的初始化方法、远程软件更新方法和装置。
背景技术
自动驾驶车辆的车辆控制器中运行有多种应用软件,这些应用软件可以实现车辆自动驾驶功能,以及其他各类辅助软件功能。为了保证应用软件功能的稳定性和完善性,需要对应用软件进行更新。相关技术中,通常由云服务平台向车辆控制器发送更新通知,从而控制车辆控制器中的软件进行更新,在软件更新过程或者软件更新的初始化中,车辆控制器或者云服务平台可能发生断电或其他故障,也可能因网络原因导致车辆控制器和云服务器平台的网络链接中断,进而使软件更新过程失败,影响了车辆控制器中应用软件的正常更新和正常运行。
发明内容
有鉴于此,本发明的目的在于提供一种远程软件更新的初始化方法、远程软件更新方法、装置和车辆控制设备,以使软件更新过程可以顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
第一方面,本发明实施例提供了一种远程软件更新的初始化方法,方法包括:如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。
上述如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息的步骤,包括:如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,清空目标软件的镜像文件和设备信息;复制备份软件的镜像文件,得到目标软件的新镜像文件;复制备份软件的设备信息,得到目标软件的新设备信息;继续执行获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤。
上述获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤之前,方法还包括:从云服务平台中下载目标软件的镜像文件和备份软件的镜像文件;上述获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤,包括:从云服务平台中获取目标软件的设备信息,以及目标软件的备份软件的设备信息。
上述对目标软件的镜像文件运行状态进行检测的步骤,包括:从目标软件的栈顶地址中获取目标软件的标题信息;检查目标软件的标题信息是否有效,如果标题信息有效,确定目标软件可运行。
上述方法还包括:如果目标软件校验成功且目标软件可运行,检查目标软件的远程更新请求是否有效;如果远程更新请求有效,对目标软件进行软件更新。
第二方面,本发明实施例提供了一种远程软件更新方法,方法包括:如果接收到目标软件的远程更新请求,初始化目标软件;将目标软件设置为备份软件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。
上述对目标软件的镜像文件进行校验的步骤,包括:对目标软件的镜像文件进行校验,得到第一校验值;从目标软件的设备信息中获取针对目标软件的镜像文件的第二校验值;如果第一校验值和第二校验值一致,确定目标软件的镜像文件校验成功。
第三方面,本发明实施例提供了一种远程软件更新的初始化装置,装置包括:信息获取模块,用于如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;第一校验检查模块,用于基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;第二校验检查模块,用于如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;第一设置模块,用于如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。
第四方面,本发明实施例提供了一种远程软件更新装置,装置包括:初始化模块,用于如果接收到目标软件的远程更新请求,初始化目标软件;第二设置模块,用于将目标软件的镜像文件设置为备份软件的镜像文件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;第三校验检查模块,用于向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;编译模块,用于如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。
第五方面,本发明实施例提供了一种车辆控制设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述远程软件更新的初始化方法,或者实现上述远程软件更新方法。
第六方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述远程软件更新的初始化方法,或者实现上述远程软件更新方法。
本发明实施例带来了以下有益效果:
上述远程软件更新的初始化方法、远程软件更新方法、装置和车辆控制设备,备份软件和目标软件具有相同的功能,如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。上述方式中,针对目标软件设置备份软件,在远程软件更新的初始化过程中,如果目标软件的镜像文件校验失败或者不可运行,则可以通过备份软件的镜像文件和设备信息使目标软件的镜像文件恢复正常,进而实现目标软件的顺利更新,因而,当车辆控制器或者云服务平台发生断电、网络链接中断等故障,导致目标软件的镜像文件被破坏时,可以通过备份软件恢复,进而使软件更新过程可以顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种硬件场景示例的示意图;
图2为本发明实施例提供的一种远程软件更新的初始化方法的流程图;
图3为本发明实施例提供的另一种远程软件更新的初始化方法的示意图;
图4为本发明实施例提供的一种远程软件更新方法的流程图;
图5为本发明实施例提供的另一种远程软件更新方法的示意图;
图6为本发明实施例提供的一种远程软件更新的初始化装置的结构示意图;
图7为本发明实施例提供的一种远程软件更新装置的结构示意图;
图8为本发明实施例提供的一种车辆控制设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到在软件更新过程或者软件更新的初始化中,车辆控制器或者云服务平台可能发生断电、网络链接中断等故障,进而使软件更新失败,影响车辆控制器中应用软件的正常更新和正常运行。基于此,本发明实施例提供一种远程软件更新的初始化方法、远程软件更新方法、装置和车辆控制设备,该技术可以应用于各类智能化车辆中,如无人驾驶车辆,也可以应用于可运行各类应用软件、应用程序的车辆,或其他智能化的移动设备。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种远程软件更新的初始化方法进行详细介绍,该方法可以应用于车辆控制设备;该车辆控制设备安装在车辆中,该车辆控制设备中运行有引导加载程序Bootloader,该车辆控制设备中通常安装有嵌入式系统,引导加载程序是嵌入式系统在加电后执行的第一段代码,完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装载到内存中,然后跳转到操作系统所在的空间,启动操作系统运行。可以理解的是,本实施例的远程软件更新的初始化方法和远程软件更新方法也可以应用于其他终端设备。
图1所示为本实施例所涉及的硬件场景示例。云服务平台可以运行在云服务器中,云服务平台与车辆控制设备通信连接;车辆控制设备设置在车辆中。云服务平台可以向车辆控制设备下发各类通知、请求、内容等,例如,软件更新请求、地图服务数据等。车辆控制设备中运行有引导加载程序Bootloader,以及各类应用程序、应用软件等。
在本实施例中,通过引导加载程序实现上述远程软件更新的初始化方法,如图2所示,该远程软件更新的初始化方法包括如下步骤:
步骤S202,如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;
车辆控制设备通常与云服务平台通信连接,云服务平台向车辆控制设备发送目标软件的远程更新请求,该远程更新请求中可以包括目标软件的软件标识,目标软件的更新版本信息,以及向车辆控制设备询问是否更新目标软件的询问信息等。目标软件的设备信息以及备份软件的设备信息由前述云服务平台远程下发,设备信息也可以称为Boardinfo,设备信息可以包括软件的属性信息,例如,软件CRC(Cyclic Redundancy Check,循环冗余校验)、编译时间、代码库的哈希值、软件版本号、代码分支以及设备信息的CRC校验值等。
获取目标软件的设备信息和备份软件的设备信息时,可以直接从云服务平台获取,也可以预先从云服务平台下载并保存至存储区,从存储区再获取设备信息。目标软件的设备信息和备份软件的设备信息可以在同一时间从云服务平台获取,也可以在不同时间分别获取目标软件的设备信息和备份软件的设备信息;或者,目标软件的设备信息可以直接从云服务平台获取,而备份软件的设备信息可以从存储区获取。
在本实施例中,目标软件设置有一备份软件,当目标软件正常运行时,备份软件通常不运行,当目标软件更新或运行发生异常时,此时启动备份软件,用于实现与目标软件相同的功能,从而避免软件功能异常,影响车辆的正常运行。备份软件可以与目标软件具有相同的内容、版本,也可以与目标软件的内容、版本不同,例如,备份软件的版本比目标软件更低,但低版本的备份软件运行更加稳定。基于此,在本实施例中的远程软件更新的初始化过程中,需要结合备份软件实现。
步骤S204,基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;
目标软件的镜像文件以及备份软件的镜像文件均可以从云服务平台下载,也可以预先从云服务平台下载并保存只存储区,从存储区再获取镜像文件。目标软件的镜像文件和备份软件的镜像文件可以在同一时间从云服务平台获取,也可以在不同时间分别获取目标软件的镜像文件和备份软件的镜像文件;或者,目标软件的镜像文件可以直接从云服务平台获取,而备份软件的镜像文件可以从存储区获取。
对镜像文件进行校验可以通过多种方式实现,例如,计算镜像文件的信息摘要MD5(Message Digest,信息摘要)值、安全散列SHA(Secure Hash Algorithm,安全散列算法)值,循环冗余校验CRC值等,校验镜像文件的目的主要是确定镜像文件在从云服务平台传输至车辆控制设备时,是否发生损坏、缺漏、篡改等,因此,校验镜像文件可以保证镜像文件的完整性和准确性。
一种具体的实现方式中,可以先对目标软件的镜像文件进行CRC校验,得到一校验值,可以称为第一校验值,然后再从目标软件的设备信息中提取目标软件在云服务平台中进行CRC校验的校验值,可以称为第二校验值,比较上述第一校验值与第二校验值是否一致,如果二者一致,则可以确定目标软件的镜像文件校验成功。
在对目标软件的镜像文件运行状态进行检测时,也可以通过多种方式实现,例如,检查镜像文件的存储地址是否合法、检查镜像文件的应用标题是否存在等;检测结果可以为镜像文件可运行,或者镜像文件不可运行。
步骤S206,如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;
在初始化过程中,当目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,则后续不可以再基于目标软件的镜像文件,对目标软件进行远程更新,此时,由于本实施例中设置了目标软件的备份软件,则可以考虑基于备份软件的镜像文件进行远程更新。基于此,在初始化过程中,当目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行时,基于备份软件的设备信息对备份软件的镜像文件进行校验,并对备份软件的镜像文件运行状态进行检测。
对备份软件的镜像文件进行校验的具体方式,可以参考前述对目标软件的镜像文件的校验方式。在对备份软件的镜像文件运行状态进行检测时,也可以通过多种方式实现,例如,检查镜像文件的存储地址是否合法、检查镜像文件的应用标题是否存在等。备份软件的镜像文件的检测结果可以为镜像文件可运行,或者镜像文件不可运行。
步骤S208,如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。
如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,则可以认为备份软件的镜像文件可以用于后续的远程更新,基于此,在本步骤中,可以将备份软件的镜像文件设置为目标软件的镜像文件,具体的,可以将目标软件的镜像文件删除,然后对备份软件的镜像文件进行复制至目标软件的镜像文件的存储区域;同理,将目标软件的设备信息删除,然后对备份软件的设备信息进行复制至目标软件的设备信息的存储区域。
此时,目标软件的镜像文件通过备份软件的镜像文件恢复正常,为了与备份软件的镜像文件相匹配,目标软件的设备信息也更新为备份软件的设备信息,此时的目标软件的镜像文件和设备信息,即可用于后续的远程更新,从而保证后续远程更新的顺利实现。
上述远程软件更新的初始化方法,备份软件和目标软件具有相同的功能,如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。上述方式中,针对目标软件设置备份软件,在远程软件更新的初始化过程中,如果目标软件的镜像文件校验失败或者不可运行,则可以通过备份软件的镜像文件和设备信息使目标软件的镜像文件恢复正常,进而实现目标软件的顺利更新,因而,当车辆控制器或者云服务平台发生断电、网络链接中断等故障,导致目标软件的镜像文件被破坏时,可以通过备份软件恢复,进而使软件更新过程可以顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
下述实施例具体说明将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息的具体实现方式。
如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,清空目标软件的镜像文件和设备信息;复制备份软件的镜像文件,得到目标软件的新镜像文件;该新镜像文件可以保存在目标软件的镜像文件在清空之前保存的存储位置上;复制备份软件的设备信息,得到目标软件的新设备信息;该新设备信息可以保存在目标软件的设备信息在清空之前保存的存储位置上;继续执行获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤。
此时,引导加载程序会重新启动针对目标软件的远程软件更新的初始化过程。即,重新从前述步骤S202开始执行,此时,步骤S202中,获取到的就是目标软件的新镜像文件和新设备信息,由于新镜像文件和新设备信息是备份软件的镜像文件和设备信息,且备份软件的镜像文件校验成功且备份软件的镜像文件可运行,此时,目标软件的新镜像文件也可以校验成功且可运行,从而可以保证初始化过程以及后续软件更新过程的顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
相关技术中,在对镜像文件进行校验时,大多依赖于镜像文件本身所有的信息进行校验,没有外部信息的支持,即,校验码以及其他设备信息保存在镜像文件内部。如果镜像文件内的信息发生篡改,也可能校验成功,此时,如果基于这样的镜像文件进行软件更新,则可能导致系统被不良软件入侵和破坏,造成系统不稳定。基于该问题,在本实施例中,在校验镜像文件时,首先获取外部信息,基于外部信息对镜像文件进行校验。具体的,在获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤之前,从云服务平台中下载目标软件的镜像文件和备份软件的镜像文件;获取镜像文件之后,从云服务平台中获取目标软件的设备信息,以及目标软件的备份软件的设备信息。可以理解的是,设备信息和镜像文件的获取通过不同的步骤实现,且设备信息和镜像文件的下载链路分开设置,设备信息作为镜像文件的外部信息,通过外部的设备信息对镜像文件进行校验,可以进一步提高校验的可靠性,从而提高镜像文件的准确性和稳定性。
在对目标软件的镜像文件运行状态进行检测时,一种具体的实现方式中,从目标软件的栈顶地址中获取目标软件的标题信息;检查目标软件的标题信息是否有效,如果标题信息有效,确定目标软件可运行。标题信息也可以称为应用标题,目标软件的栈顶地址也可以称为目标软件的首地址。栈顶地址中的标题信息可以用于指示目标软件是否可以运行。控制器在运行过程中,可以根据该栈顶地址将目标软件放置在RAM(Random AccessMemory,随机存取存储器)或内存中运行。目标软件的标题信息通常具备合法性要求,否则控制器无法识别目标应用。
如果控制器内运行的系统被挟持,并被迫输入了一个未知软件,控制器可以通过检测该软件的标题信息,从而阻止该未知软件的运行。因而,标题信息也可以理解为目标软件的可运行标记。通过上述方式,可以可靠的检查目标软件的镜像文件是否可以运行,从而确定软件更新以及操作系统的稳定可靠性。
如果目标软件校验成功且目标软件可运行,检查目标软件的远程更新请求是否有效;如果远程更新请求有效,对目标软件进行软件更新。在大多情况下,远程更新请求具有时效性,当远程更新请求过期,则该远程更新请求无效,此时,需要重新获取远程更新请求,执行上述初始化方法,进而完成远程软件更新。
为了便于理解上述远程软件更新的初始化方法,图3所示为另一种上述远程软件更新的初始化方法的示意图,该方法包括如下步骤:
步骤S302,读取目标软件和备份软件的设备信息至闪存;
这里的备份软件即目标软件的备份软件;备份软件和目标软件具有相同的功能;当接收到目标软件的远程更新请求后,可以从云服务平台中获取目标软件的设备信息和备份软件的设备信息,然后将目标软件和备份软件的设备信息读取至闪存,也可以预先从云服务平台中获取目标软件的设备信息和备份软件的设备信息,存储硬盘存储区,当接收到目标软件的远程更新请求后,从硬盘存储区读取目标软件的设备信息和备份软件的设备信息至闪存。
步骤S304,读取系统信息至闪存;
该系统信息(System Info)指的是RTOS(Real Time Operating System,实时操作系统)信息,包括了远程软件更新的升级标记位以及系统重启时间等信息。系统信息可以预先存储在车辆控制设备中的硬盘存储区中。在本实施例中,远程软件更新也可以称为OTA(空中下载技术,Over-the-Air Technology)。上述远程软件更新的升级标记位具体可以为OTA标识。该OTA标识用于指示目标软件是否需要更新。
步骤S306,设置OTA标识至0XFFFFFFFF,设置OTA请求为有效;
该OTA标识通常保存在系统信息中,该OTA标识可以用于判断目标软件是否需要进行更新。将OTA标识设置为0XFFFFFFFF,可以指示目标软件需要进行更新;上述OTA请求即前述实施例中的目标软件的远程更新请求,将OTA请求设置为有效,以便于后续检查远程更新请求的有效性时,该远程更新请求为有效。
步骤S308,在闪存中计算目标软件的镜像文件的CRC校验值;
步骤S310,在闪存中计算备份软件的镜像文件的CRC校验值;
步骤S312,判断目标软件的CRC校验值是否有效,且检查目标软件的栈顶地址是否有效;如果目标软件的CRC校验值有效,且目标软件的栈顶地址有效,执行步骤S314;如果目标软件的CRC校验值无效,或者目标软件的栈顶地址无效,执行步骤S320;
目标软件的设备信息中通常保存有目标软件的镜像文件的标准CRC校验值,该标准CRC校验值可以在云服务平台中计算得到;上述步骤中,在车辆控制器的闪存中再次计算目标软件的镜像文件的CRC校验值,该CRC校验值如果与前述标准CRC校验值一致,则可以确定目标软件的CRC校验值有效。
检查目标软件的栈顶地址是否有效,用于对目标软件的镜像文件的运行状态进行检测,具体的,从目标软件的栈顶地址中获取目标软件的标题信息;检查目标软件的标题信息是否有效,如果标题信息有效,确定目标软件可运行。
步骤S314,检查OTA请求是否有效;如果OTA请求有效,执行步骤S316;如果OTA请求无效,执行步骤S318;
步骤S316,执行OTA过程,结束。
步骤S318,跳转至目标软件,结束。
步骤S320,判断备份软件的CRC校验值是否有效,且检查备份软件的栈顶地址是否有效;如果备份软件的CRC校验值有效,且备份软件的栈顶地址有效,执行步骤S322;如果备份软件的CRC校验值无效,或者备份软件的栈顶地址无效,执行步骤S330;
备份软件的设备信息中通常保存有备份软件的镜像文件的标准CRC校验值,该标准CRC校验值可以在云服务平台中计算得到;上述步骤中,在车辆控制器的闪存中再次计算备份软件的镜像文件的CRC校验值,该CRC校验值如果与前述标准CRC校验值一致,则可以确定备份软件的CRC校验值有效。
检查备份软件的栈顶地址是否有效,用于对备份软件的镜像文件的运行状态进行检测,具体的,从备份软件的栈顶地址中获取备份软件的标题信息;检查备份软件的标题信息是否有效,如果标题信息有效,确定备份软件可运行。
步骤S322,在闪存中清空目标软件的镜像文件和设备信息;
步骤S324,将备份软件的镜像文件复制到目标软件的镜像文件所在的位置;该步骤对应前述实施例中的将备份软件的镜像文件设置为目标软件的镜像文件的步骤。
步骤S326,将备份软件的设备信息复制到目标软件的设备信息所在的位置;该步骤对应前述实施例中的将备份软件的设备信息设置为目标软件的设备信息的步骤。
步骤S328,重新启动,结束。重新启动后,则继续执行前述步骤S302。
步骤S330,在闪存中清空目标软件和备份软件的镜像文件;
步骤S332,在闪存中清空目标软件和备份软件的设备信息;
步骤S334,执行OTA过程,结束。
在上述方式中,当车辆控制器或者云服务平台发生断电、网络链接中断等故障,导致目标软件的镜像文件被破坏时,可以通过备份软件恢复,进而使软件更新过程可以顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
基于上述远程软件更新的初始化方法,本实施例还提供一种远程软件更新方法,该方法应用于车辆控制设备;该车辆控制设备中运行有引导加载程序Bootloader和域控制器,通过引导加载程序实现该方法;如图4所示,该方法包括如下步骤:
步骤S402,如果接收到目标软件的远程更新请求,初始化目标软件;
该步骤S402可以通过前述远程软件更新的初始化方法实现,具体的,可以通过前述步骤S202-S208实现,或者通过前述步骤S302-S334实现。
步骤S404,将目标软件设置为备份软件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;
该步骤用于对备份软件进行更新。在对目标软件进行更新之前,将当前版本的目标软件作为备份软件,将当前版本的目标软件的设备信息作为备份软件的设备信息。一方面,当前版本的目标软件通常已运行一段时间,具有较高的稳定性,当更新后的目标软件发生故障时,通过备份软件的运行保证实现相同的功能;另一方面,该方式也可以保证备份软件的版本与目标软件的版本差异较小,从而避免过低的备份软件难以实现与目标软件相同的功能,或者备份软件与目标软件的接口存在差异,进而提高目标软件故障时,备份软件可以稳定启动并实现相应的功能。
步骤S406,向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;
在域控制器与引导加载程序Bootloader在传输镜像文件的过程中,也可能会发生各类异常状况,如链路终端、系统异常、物理中断等,导致传输的镜像文件发生错误,因此,在对镜像文件执行编译操作之前,还需要对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验,对目标软件的镜像文件运行状态进行检测和校验的具体方式,可以参考前述实施例,在此不再赘述。
步骤S408,如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。
上述远程软件更新方法,如果接收到目标软件的远程更新请求,初始化目标软件;将目标软件设置为备份软件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。上述方式中,针对目标软件设置备份软件,在远程软件更新的过程中,备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能,因而当目标软件更新发生错误时,也不影响功能的实现,保障了车辆控制器中应用软件的正常更新和正常运行。
一种具体的实现方式中,对目标软件的镜像文件进行校验过程中,对目标软件的镜像文件进行校验,得到第一校验值;从目标软件的设备信息中获取针对目标软件的镜像文件的第二校验值;如果第一校验值和第二校验值一致,确定目标软件的镜像文件校验成功。
为了便于理解上述远程软件更新方法,图5所示为另一种上述远程软件更新方法的示意图,该方法包括如下步骤:
步骤S502,将目标软件复制为备份软件;
步骤S504,将目标软件的设备信息复制为备份软件的设备信息;
步骤S502和S504对应前述实施例中的将目标软件设置为备份软件,将目标软件的设备信息设置为备份软件的设备信息的步骤,在本实施例中,通过复制的方式设置备份软件和备份软件的设备信息。
步骤S506,清空目标软件;
步骤S508,向域控制器中的传感集线器驱动发送回响请求;
引导加载程序Bootloader向域控制器发出回响请求,该回响请求也可以称为EchoRequest;域控制器确认该回响请求中的内容中后,会向引导加载程序发出回响响应,即Echo Response;该回响响应中包括目标软件的设备信息。
步骤S510,判断是否接收到回响响应;如果接收到回响响应,执行步骤S512,如果没有接收到回响响应,执行步骤S508;
步骤S512,开始传输目标软件的镜像文件的数据;
该步骤对应前述实施例中的向域控制器获取目标软件的镜像文件的步骤。域控制器将目标软件的镜像文件通过数据传输的方式发送到引导加载程序中,每次传输的数据包大小可以为512字节,如果目标软件的镜像文件的大小为500k字节,则需要传输一小段时间,约5秒左右。
步骤S514,接收数据并将数据写入闪存;
步骤S516,判断数据是否传输完毕;如果传输完毕,执行步骤S520;如果没有执行完毕,执行步骤S518;
步骤S518,检查数据是否仍然在传输;如果仍然在传输,执行步骤S514;如果没有在传输,执行步骤S532;
当数据传输没有完成,同时数据不再传输,此时可能发生了数据传输故障,可能导致数据传输故障的原因包括:数据链路中断,例如线束脱落、网络交换机宕机、网络协议栈崩溃、以太网芯片烧毁等等;系统异常,例如,芯片系统数据传输软件模块异常、芯片系统宕机等等;物理中断,例如,设备断电、设备着火、大电流击穿(静电)等等。当数据传输没有完成,同时数据不再传输时,引导加载程序向域控制器获取目标软件的镜像文件失败,此时则需要重新启动,再次从步骤S502开始执行。
步骤S520,停止数据传输;
步骤S522,检查目标软件的栈顶地址是否有效;如果栈顶地址有效,执行步骤S524;如果栈顶地址无效,执行步骤S526;
检查目标软件的栈顶地址是否有效,用于对目标软件的镜像文件的运行状态进行检测,具体的,从目标软件的栈顶地址中获取目标软件的标题信息;检查目标软件的标题信息是否有效,如果标题信息有效,确定目标软件可运行。
步骤S524,停止数据传输,执行步骤S528;
步骤S526,在闪存中清空目标软件和目标软件的设备信息;执行步骤S532;
步骤S528,检查设备信息中的校验值是否有效;如果有效,执行步骤S530;如果无效,执行步骤S526;
步骤S530,跳转至目标软件;结束。
步骤S532,重新启动,结束。重新启动后,则继续执行前述步骤S502。
上述方式中,针对目标软件设置备份软件,在远程软件更新的过程中,备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能,因而当目标软件更新发生错误时,也不影响功能的实现,保障了车辆控制器中应用软件的正常更新和正常运行。
对应于上述方法实施例,参见图6所示的一种远程软件更新的初始化装置的结构示意图,该装置包括:
信息获取模块60,用于如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;
第一校验检查模块62,用于基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;
第二校验检查模块64,用于如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;
第一设置模块66,用于如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。
上述远程软件更新的初始化装置,备份软件和目标软件具有相同的功能,如果接收到目标软件的远程更新请求,获取目标软件的设备信息,以及目标软件的备份软件的设备信息;基于目标软件的设备信息对目标软件的镜像文件进行校验,和对目标软件的镜像文件运行状态进行检测;如果目标软件的镜像文件校验失败或者目标软件的镜像文件不可运行,基于备份软件的设备信息对备份软件的镜像文件进行校验,和对备份软件的镜像文件运行状态进行检测;如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,将备份软件的镜像文件设置为目标软件的镜像文件,将备份软件的设备信息设置为目标软件的设备信息,以对设置后的目标软件进行软件更新。上述方式中,针对目标软件设置备份软件,在远程软件更新的初始化过程中,如果目标软件的镜像文件校验失败或者不可运行,则可以通过备份软件的镜像文件和设备信息使目标软件的镜像文件恢复正常,进而实现目标软件的顺利更新,因而,当车辆控制器或者云服务平台发生断电、网络链接中断等故障,导致目标软件的镜像文件被破坏时,可以通过备份软件恢复,进而使软件更新过程可以顺利实现,保障了车辆控制器中应用软件的正常更新和正常运行。
上述第一设置模块还用于:如果备份软件的镜像文件校验成功且备份软件的镜像文件可运行,清空目标软件的镜像文件和设备信息;复制备份软件的镜像文件,得到目标软件的新镜像文件;复制备份软件的设备信息,得到目标软件的新设备信息;继续执行获取目标软件的设备信息,以及目标软件的备份软件的设备信息的步骤。
上述装置还包括下载模块,用于:从云服务平台中下载目标软件的镜像文件和备份软件的镜像文件;上述信息获取模块还用于:从云服务平台中获取目标软件的设备信息,以及目标软件的备份软件的设备信息。
上述第一校验检查模块,还用于:从目标软件的栈顶地址中获取目标软件的标题信息;检查目标软件的标题信息是否有效,如果标题信息有效,确定目标软件可运行。
上述装置还包括:检查模块,用于如果目标软件校验成功且目标软件可运行,检查目标软件的远程更新请求是否有效;如果远程更新请求有效,对目标软件进行软件更新。
参见图7所示的一种远程软件更新装置的结构示意图,该装置包括:
初始化模块70,用于如果接收到目标软件的远程更新请求,初始化目标软件;
第二设置模块72,用于将目标软件的镜像文件设置为备份软件的镜像文件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;
第三校验检查模块74,用于向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;
编译模块76,用于如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。
上述远程软件更新装置,如果接收到目标软件的远程更新请求,初始化目标软件;将目标软件设置为备份软件,将目标软件的设备信息设置为备份软件的设备信息;其中,备份软件和目标软件具有相同的功能;备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能;向域控制器获取目标软件的镜像文件,对目标软件的镜像文件运行状态进行检测,并对目标软件的镜像文件进行校验;如果目标软件的镜像文件校验成功且目标软件的镜像文件可运行,对目标软件的镜像文件执行编译操作。上述方式中,针对目标软件设置备份软件,在远程软件更新的过程中,备份软件用于在目标软件更新的过程中运行,并实现目标软件的功能,因而当目标软件更新发生错误时,也不影响功能的实现,保障了车辆控制器中应用软件的正常更新和正常运行。
上述第三校验检查模块还用于:对所述目标软件的镜像文件进行校验,得到第一校验值;从所述目标软件的设备信息中获取针对所述目标软件的镜像文件的第二校验值;如果所述第一校验值和所述第二校验值一致,确定所述目标软件的镜像文件校验成功。
本实施例还提供一种车辆控制设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述远程软件更新的初始化方法,或者远程软件更新方法。该车辆控制设备可以是服务器,也可以是终端设备。
参见图8所示,该车辆控制设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述远程软件更新的初始化方法,或者远程软件更新方法。
进一步地,图8所示的车辆控制设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述远程软件更新的初始化方法,或者远程软件更新方法。
本发明实施例所提供的远程软件更新的初始化方法,或者远程软件更新方法、装置、车辆控制设备及存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种远程软件更新的初始化方法,其特征在于,所述方法包括:
如果接收到目标软件的远程更新请求,获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息;其中,所述备份软件和所述目标软件具有相同的功能;
基于所述目标软件的设备信息对所述目标软件的镜像文件进行校验,和对所述目标软件的镜像文件运行状态进行检测;
如果所述目标软件的镜像文件校验失败或者所述目标软件的镜像文件不可运行,基于所述备份软件的设备信息对所述备份软件的镜像文件进行校验,和对所述备份软件的镜像文件运行状态进行检测;
如果所述备份软件的镜像文件校验成功且所述备份软件的镜像文件可运行,将所述备份软件的镜像文件设置为目标软件的镜像文件,将所述备份软件的设备信息设置为所述目标软件的设备信息,以对设置后的目标软件进行软件更新。
2.根据权利要求1所述的方法,其特征在于,如果所述备份软件的镜像文件校验成功且所述备份软件的镜像文件可运行,将所述备份软件的镜像文件设置为目标软件的镜像文件,将所述备份软件的设备信息设置为所述目标软件的设备信息的步骤,包括:
如果所述备份软件的镜像文件校验成功且所述备份软件的镜像文件可运行,清空所述目标软件的镜像文件和设备信息;
复制所述备份软件的镜像文件,得到所述目标软件的新镜像文件;复制所述备份软件的设备信息,得到所述目标软件的新设备信息;
继续执行获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息的步骤。
3.根据权利要求1所述的方法,其特征在于,获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息的步骤之前,所述方法还包括:从云服务平台中下载所述目标软件的镜像文件和所述备份软件的镜像文件;
所述获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息的步骤,包括:从云服务平台中获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息。
4.根据权利要求1所述的方法,其特征在于,对所述目标软件的镜像文件运行状态进行检测的步骤,包括:
从所述目标软件的栈顶地址中获取所述目标软件的标题信息;
检查所述目标软件的标题信息是否有效,如果所述标题信息有效,确定所述目标软件可运行。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述目标软件校验成功且所述目标软件可运行,检查所述目标软件的远程更新请求是否有效;
如果所述远程更新请求有效,对所述目标软件进行软件更新。
6.一种远程软件更新方法,其特征在于,所述方法包括:
如果接收到目标软件的远程更新请求,初始化所述目标软件;
将所述目标软件设置为备份软件,将所述目标软件的设备信息设置为所述备份软件的设备信息;其中,所述备份软件和所述目标软件具有相同的功能;所述备份软件用于在所述目标软件更新的过程中运行,并实现所述目标软件的功能;
向所述域控制器获取所述目标软件的镜像文件,对所述目标软件的镜像文件运行状态进行检测,并对所述目标软件的镜像文件进行校验;
如果所述目标软件的镜像文件校验成功且所述目标软件的镜像文件可运行,对所述目标软件的镜像文件执行编译操作。
7.根据权利要求6所述的方法,其特征在于,对所述目标软件的镜像文件进行校验的步骤,包括:
对所述目标软件的镜像文件进行校验,得到第一校验值;
从所述目标软件的设备信息中获取针对所述目标软件的镜像文件的第二校验值;
如果所述第一校验值和所述第二校验值一致,确定所述目标软件的镜像文件校验成功。
8.一种远程软件更新的初始化装置,其特征在于,所述装置包括:
信息获取模块,用于如果接收到目标软件的远程更新请求,获取所述目标软件的设备信息,以及所述目标软件的备份软件的设备信息;其中,所述备份软件和所述目标软件具有相同的功能;
第一校验检查模块,用于基于所述目标软件的设备信息对所述目标软件的镜像文件进行校验,和对所述目标软件的镜像文件运行状态进行检测;
第二校验检查模块,用于如果所述目标软件的镜像文件校验失败或者所述目标软件的镜像文件不可运行,基于所述备份软件的设备信息对所述备份软件的镜像文件进行校验,和对所述备份软件的镜像文件运行状态进行检测;
第一设置模块,用于如果所述备份软件的镜像文件校验成功且所述备份软件的镜像文件可运行,将所述备份软件的镜像文件设置为目标软件的镜像文件,将所述备份软件的设备信息设置为所述目标软件的设备信息,以对设置后的目标软件进行软件更新。
9.一种远程软件更新装置,其特征在于,所述装置包括:
初始化模块,用于如果接收到目标软件的远程更新请求,初始化所述目标软件;
第二设置模块,用于将所述目标软件的镜像文件设置为备份软件的镜像文件,将所述目标软件的设备信息设置为所述备份软件的设备信息;其中,所述备份软件和所述目标软件具有相同的功能;所述备份软件用于在所述目标软件更新的过程中运行,并实现所述目标软件的功能;
第三校验检查模块,用于向所述域控制器获取所述目标软件的镜像文件,对所述目标软件的镜像文件运行状态进行检测,并对所述目标软件的镜像文件进行校验;
编译模块,用于如果所述目标软件的镜像文件校验成功且所述目标软件的镜像文件可运行,对所述目标软件的镜像文件执行编译操作。
10.一种车辆控制设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-5任一项所述的远程软件更新的初始化方法,或者实现权利要求6或7所述的远程软件更新方法。
11.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-5任一项所述的远程软件更新的初始化方法,或者实现权利要求6或7所述的远程软件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269983.5A CN113986268A (zh) | 2021-10-29 | 2021-10-29 | 远程软件更新的初始化方法、远程软件更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269983.5A CN113986268A (zh) | 2021-10-29 | 2021-10-29 | 远程软件更新的初始化方法、远程软件更新方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986268A true CN113986268A (zh) | 2022-01-28 |
Family
ID=79744124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111269983.5A Pending CN113986268A (zh) | 2021-10-29 | 2021-10-29 | 远程软件更新的初始化方法、远程软件更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986268A (zh) |
-
2021
- 2021-10-29 CN CN202111269983.5A patent/CN113986268A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110178114B (zh) | 车辆控制装置以及程序更新系统 | |
KR101082940B1 (ko) | 네트워크 장비 및 이러한 장비의 시작을 모니터링하기 위한 방법 | |
CN109408153B (zh) | 软件启动方法和软件升级方法 | |
CN106250192B (zh) | 上位机的软件升级方法及系统 | |
CN106897166B (zh) | 一种移动终端及其修复方法 | |
CN111506326A (zh) | 终端设备的升级方法、装置、设备及存储介质 | |
CN113806811A (zh) | 一种被篡改固件自动恢复方法、装置及存储介质 | |
CN113986268A (zh) | 远程软件更新的初始化方法、远程软件更新方法和装置 | |
CN116932010A (zh) | 系统固件升级方法、装置及服务器 | |
CN111399890A (zh) | 游戏的热更新方法、装置、系统及电子设备 | |
CN116820528A (zh) | 固件版本升级方法、装置、芯片和电子设备 | |
CN115827024A (zh) | 车载程序的更新方法及系统 | |
JP2005284902A (ja) | 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム | |
CN110659052B (zh) | 网络设备中系统软件的更新方法、系统及可读存储介质 | |
CN114237722A (zh) | 一种系统的启动方法、装置、设备及工程车辆 | |
CN112596749A (zh) | 一种系统开机自检和自修复的方法、装置 | |
CN111190627A (zh) | 系统升级方法及装置 | |
JP2014179047A (ja) | 情報処理装置 | |
CN116521201B (zh) | 电池包的软件升级方法和电池包 | |
CN111083001B (zh) | 一种固件异常检测方法及装置 | |
CN115857998B (zh) | 基于zynq和fpga架构的升级方法、装置和介质 | |
CN114793196B (zh) | 固件升级方法、装置、设备和存储介质 | |
CN108170444B (zh) | 固件更新侦错系统 | |
CN114217835A (zh) | 一种对音响设备进行在线升级的方法及音响设备 | |
CN112988201A (zh) | 程序更新方法、装置以及电子设备 |
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 |