CN114185576A - 嵌入式设备升级方法、装置、计算机设备和存储介质 - Google Patents
嵌入式设备升级方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114185576A CN114185576A CN202111534142.2A CN202111534142A CN114185576A CN 114185576 A CN114185576 A CN 114185576A CN 202111534142 A CN202111534142 A CN 202111534142A CN 114185576 A CN114185576 A CN 114185576A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- firmware package
- cloud
- upgrading
- cloud firmware
- 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/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- 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/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Abstract
本申请涉及一种嵌入式设备升级方法、装置、计算机设备。所述方法包括获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传云服务器;获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;基于云固件包信息下载子系统标识的云固件包,并将云固件包存储到主存储空间中;检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。采用本方法能够节省子系统的存储空间。
Description
技术领域
本申请涉及嵌入式设备技术领域,特别是涉及一种嵌入式设备升级方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着物联网的快速发展,出现了嵌入式设备升级技术,嵌入式设备包含多个子系统,比如,行车记录仪设备中包含微控制单元、蓝牙模块、调制解调器模块、全球导航卫星系统模块、应用处理器等子系统。目前,在对嵌入式设备中的子系统进行升级时是通过无线网络或本地传输方式从各子系统对应的服务器下载各子系统对应的固件升级包,各子系统通过预留的存储空间保存固件升级包,并在嵌入式设备未工作时进行升级。然而将固件升级包存储在各子系统预留的存储空间中会导致嵌入式设备中各子系统存在存储空间紧张的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节省子系统存储资源的固件升级方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一种嵌入式设备升级方法,所述方法包括:
获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
在其中一个实施例中,将子系统标识和当前固件包版本信息上传至云服务器,包括:
基于预设云服务器地址与云服务器建立无线通信连接;
基于无线通信连接向云服务器上传子系统标识和当前固件包版本信息;
在基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中之后,还包括:
断开无线通信连接中的通信协议。
在其中一个实施例中,云固件包信息包括云固件包存储地址、云固件包下载方式和云固件包校验信息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中,包括:
基于固件包存储地址通过云固件包下载方式下载云固件包,并使用云固件包校验信息验证云固件包完整性通过时,将云固件包和云固件包校验信息存储到主存储空间中;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级,包括:
基于预设通信接口将主存储空间中的云固件包和云固件包校验信息传输至子系统,以使子系统在升级状态下使用云固件包校验信息验证云固件包完整性通过时,使用云固件包进行升级。
在其中一个实施例中,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态,包括:
基于预设通信接口向子系统标识对应的子系统发送升级指令,子系统根据升级指令进行重启,并在重启后进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级,包括:
基于预设通信接口将主存储空间中的云固件包传输至子系统,子系统在升级状态下将云固件包写入预设固件包执行空间;子系统当检测云固件包写入预设固件包执行空间完成时,触发子系统复位指令,基于子系统复位指令从预设固件包执行空间中读取云固件包,并运行云固件包。
在其中一个实施例中,子系统标识包括至少两个;所述方法,还包括:
获取至少两个子系统对应的子系统标识和当前固件包版本信息,将至少两个子系统对应的子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器根据子系统标识检测到云固件包版本信息与当前固件包版本信息不一致时返回的至少两个云固件包信息;
基于至少两个云固件包版本信息下载至少两个子系统标识对应的云固件包,并将至少两个子系统标识对应的云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向至少两个子系统标识对应的子系统发送升级指令,以使至少两个子系统标识对应的子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中至少两个子系统标识对应的云固件包分别传输至对应的子系统,以使至少两个子系统标识对应的子系统在升级状态下使用对应的云固件包进行升级。
在其中一个实施例中,所述方法,还包括:
基于预设云服务器地址与云服务器建立无线通信长连接;
获取云服务器发送的升级提示信息和云固件包信息,升级提示信息是云服务器在检测到子系统标识存在对应的云固件包时发送升级通知消息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
一种嵌入式设备升级装置,所述装置包括:
获取模块,用于获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
存储模块,用于基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
升级模块,用于检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
一种计算机设备,计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
上述嵌入式设备升级方法、装置、计算机设备、存储介质和计算机程序产品,获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。由于云固件包先存储在主存储空间,在嵌入式设备待机状态时通过预设通信接口将云固件包直接传输至子系统固件包执行空间,并且在传输完成后子系统复位完成升级,不需要通过存储在子系统内部再进行云固件包升级,节省了嵌入式设备中各子系统的存储空间。
附图说明
图1为一个实施例中嵌入式设备升级方法的应用环境图;
图2为一个实施例中嵌入式设备升级方法的流程示意图;
图3为一个实施例中嵌入式设备升级的框架示意图;
图4为一个实施例中主控子系统和其他子系统的通信方式示意图;
图5为一个实施例中对至少两个子系统进行升级的流程示意图;
图6为另一个实施例中嵌入式设备升级方法的流程示意图;.
图7为一个具体实施例中嵌入式设备升级方法的流程示意图;
图8为一个实施例中嵌入式设备升级装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的嵌入式设备升级方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至服务器104;终端102获取服务器104检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;终端102基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;终端102基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种嵌入式设备升级方法的流程示意图,以该方法应用于图1中的终端为例进行说明。本实施例中,该方法包括以下步骤:
步骤202,获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器。
其中,子系统标识是指子系统唯一的身份标识。当前固件包版本信息是指该子系统现有的固件包的版本信息,固件包是对应子系统的固件升级文件。上传是指终端与云服务器建立无线通信连接进行数据传输。
具体地,终端获取嵌入式设备中子系统对应的子系统身份标识和当前固件包版本信息,将子系统身份标识和当前固件包版本信息通过与云服务器建立的无线通信连接上传至云服务器。
步骤204,获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息。
其中,云固件包信息是指云服务器提供给终端用于下载云固件包的相关下载信息,包括云固件包下载地址等信息。云服务器预先存储有各子系统标识对应的子系统的云固件包信息和云固件包版本信息。具体地,云服务器接收到终端发送的子系统标识和当前固件包版本信息,基于终端发送的子系统标识在已保存的所有子系统标识对应的固件包版本信息中查找到对应的云固件包版本信息;当云服务器检测到当前固件包版本信息与云固件包版信息不一致时,将云固件包信息返回给终端用于下载云固件包。
步骤206,基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中。
其中,主存储空间是指终端的大容量存储空间,该存储空间用于存储终端下载的各子系统对应的云固件包。
具体地,终端根据云固件包信息的下载信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间。
步骤208,检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态。
其中,预设通信接口是指终端与各子系统之间用于进行通信的接口。升级指令是指终端发送的使子系统进入升级状态的命令。升级状态是指子系统可接收云固件包并进行升级的状态。
具体地,终端通过其内部的控制中心检测当前运行状态,当当前运行状态处于未使用的待机状态时,通过预设通信通道向子系统标识对应的子系统发送升级指令,该子系统根据接收到的升级指令进入可以接收固件包状态,此时终端可将云固件包发送至该子系统。
步骤210,基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
具体地,终端通过与子系统的预设通信接口将主存储空间中的云固件包传输至处于升级状态的子系统中,该子系统运行云固件包完成升级。
上述嵌入式设备升级方法、装置、计算机设备、存储介质和计算机程序产品,获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。由于云固件包先存储在主存储空间,在嵌入式设备待机状态时通过预设通信接口将云固件包直接传输至子系统固件包执行空间,并且在传输完成后子系统复位完成升级,不需要通过存储在子系统内部再进行云固件包升级,节省了嵌入式设备中各子系统的存储空间。
在一个实施例中,步骤202,将子系统标识和当前固件包版本信息上传至云服务器,包括:
基于预设云服务器地址与云服务器建立无线通信连接;
基于无线通信连接向云服务器上传子系统标识和当前固件包版本信息;
步骤206,在基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中之后,还包括:
断开无线通信连接中的通信协议。
其中,预设云服务器地址是指云服务器的地址,可以根据该地址访问云服务器。无线通信是指使用无线网络进行通信,用于终端和服务器进行相互数据传输。
具体地,云服务器是指OTA(Over-The-Air technology,空中下载技术)服务器。无线通信连接可以是无线网络通过HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议进行数据传输的连接,也可以是FTP(File Transfer Protocol,文件传输协议)协议和TCP(Transmission Control Protocol,传输控制协议)协议进行数据传输的连接。终端通过无线网络与OTA服务器进行通信,将子系统标识和当前固件包版本信息发送给OTA服务器,并且在终端将云固件包存储到主存储空间后,断开与OTA服务器进行数据传输的无线网络连接中的通信协议,比如,TCP协议。
上述实施例中,通过将云固件包存储在终端的主存储空间内,无需占用子系统的内存空间存储云固件包,节省了子系统的存储空间。
在一个具体实施例中,如图3所示,为嵌入式设备升级的框架示意图,包括:
在OTA服务器上,根据各子系统的器件和功能进行分类并存储各子系统对应的固件包,通过无线网络接收子系统标识和当前固件包版本信息并返回子系统对应的云固件包信息;
在终端上,包含有微控制单元、蓝牙模块、调制解调器模块、全球导航卫星系统模块、应用处理器等子系统,其中,应用处理器作为主控子系统的存在,用于控制终端的工作状态、子系统相关的工作状态和子系统的升级状态。终端通过无线网络将子系统标识和当前固件包版本信息发送给OTA服务器并接收子系统对应的云固件包信息。并且在云固件包存储到主存储空间之后断开无线网络连接中的通信协议;当终端处于待机状态时,云固件包对应的子系统进入升级状态,终端将主存储空间内的云固件包传输至该子系统进行升级。
在一个实施例中,云固件包信息包括云固件包存储地址、云固件包下载方式和云固件包校验信息,步骤206,基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中,包括:
基于固件包存储地址通过云固件包下载方式下载云固件包,并使用云固件包校验信息验证云固件包完整性通过时,将云固件包和云固件包校验信息存储到主存储空间中;
步骤208,基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级,包括:
基于预设通信接口将主存储空间中的云固件包和云固件包校验信息传输至子系统,以使子系统在升级状态下使用云固件包校验信息验证云固件包完整性通过时,使用云固件包进行升级。
其中,预设通信接口是指终端中主控子系统与其他子系统、主存储空间与子系统通信和数据传输的硬件接口,用于在终端内向子系统发送相关指令、传输云固件包。云固件包校验信息用于校验在从云服务器传输到主存储空间和从主存储空间传输到各子系统的过程中云固件包的完整性。云固件包下载方式是指下载云固件包的方式,比如OTA、通信协议。
具体地,预设通信接口可以是UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)、USB(Universal Serial Bus,通用串行总线)、I2C(Inter-Integrated Circuit,两线式串行总线)等接口。向子系统发送升级指令,比如,调制解调器模块可以发送AT指令(以AT作首,字符结束的字符串),主控子系统向蓝牙模块、WiFi(无线网络通信技术)、全球导航卫星系统模块等子系统发送升级指令。
终端通过无线网络在固件包存储地址中使用云固件包下载方式下载云固件包,并使用云固件包校验信息验证云固件包完整性通过时,将云固件包和云固件包校验信息存储到主存储空间中;
终端通过硬件接口将主存储空间中的云固件包和云固件包校验信息传输至子系统,以使子系统在升级状态下使用云固件包校验信息验证云固件包完整性通过时,使用云固件包进行升级。
上述实施例中,通过先将云固件包存储于主存储空间内,并且对云固件包的完整性进行校验,当子系统启动升级时可以直接将完整的云固件包传输至子系统进行升级,不需要占用子系统的存储空间用于存储云固件包和等待升级,可以节省子系统的存储空间。
在一个具体实施例中,如图4所示,一种主控子系统和其他子系统的通信方式示意图,包括:
终端中的应用处理器模块是主控子系统,包括固件管理程序、下载代理程序、OTA升级管理程序、子系统OTA接口、子系统应用程序编程接口、硬件接口。其中OTA升级管理程序负责连接终端和云服务器,管理所有子系统的升级过程并将云固件包分发给对应的各子系统,告知各子系统何时进行升级,将各子系统的升级结果上报给云服务器。主控子系统与其他子系统的通信方式为UART、USB、I2C接口,比如,主控子系统与调制解调器模块的通信接口是UART或USB、主控子系统与全球导航卫星系统模块、蓝牙模块、微控制单元的通信接口是UART。
在一个实施例中,步骤206,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态,包括:
基于预设通信接口向子系统标识对应的子系统发送升级指令,子系统根据升级指令进行重启,并在重启后进入升级状态;
步骤208,基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级,包括:
基于预设通信接口将主存储空间中的云固件包传输至子系统,子系统在升级状态下将云固件包写入预设固件包执行空间;子系统当检测云固件包写入预设固件包执行空间完成时,触发子系统复位指令,基于子系统复位指令从预设固件包执行空间中读取云固件包,并运行云固件包。
其中,升级状态是指子系统在接收到升级指令后开放子系统内预设固件包执行空间的写入权限,此时可将云固件写入预设固件包执行空间。
具体地,主控子系统向子系统标识对应的子系统发送升级指令,子系统根据升级指令进行重启,重启后进入升级状态并开放内预设固件包执行空间的写入权限;当子系统使用云固件包校验信息检测到校验写入预设固件包执行空间的云固件包是完整的时,向终端发送子系统写入结果,终端根据子系统写入结果判断子系统写入完成,触发子系统复位指令,子系统复位启动时读取云固件包,子系统能通过运行云固件包正常工作时判断为升级成功。
上述实施例中,通过先将云固件包存储于主存储空间内,当子系统启动升级时可以直接将云固件包传输至子系统进行升级,不需要占用子系统的存储空间用于存储云固件包和等待升级,可以节省子系统的存储空间。
在一个实施例中,如图5所示,子系统标识包括至少两个;所述方法,还包括:
步骤502,获取至少两个子系统对应的子系统标识和当前固件包版本信息,将至少两个子系统对应的子系统标识和当前固件包版本信息上传至云服务器;
步骤504,获取云服务器根据子系统标识检测到云固件包版本信息与当前固件包版本信息不一致时返回的至少两个云固件包信息;
步骤506,基于至少两个云固件包版本信息下载至少两个子系统标识对应的云固件包,并将至少两个子系统标识对应的云固件包存储到主存储空间中;
步骤508,检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向至少两个子系统标识对应的子系统发送升级指令,以使至少两个子系统标识对应的子系统根据升级指令进入升级状态;
步骤510,基于预设通信接口将主存储空间中至少两个子系统标识对应的云固件包分别传输至对应的子系统,以使至少两个子系统标识对应的子系统在升级状态下使用对应的云固件包进行升级。
具体地,终端基于至少两个云固件包版本信息可以同时下载至少两个子系统标识对应的云固件包,并将至少两个子系统标识对应的云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向至少两个子系统标识对应的子系统可以在不同时间点分别发送升级指令,以使至少两个子系统标识对应的子系统根据升级指令在不同时间点进入升级状态;
基于预设通信接口将主存储空间中至少两个子系统标识对应的云固件包可以在不同时间点分别传输至对应的子系统,以使至少两个子系统标识对应的子系统在升级状态下可以在不同时间点使用对应的云固件包进行升级。
优选地,终端检测到子系统完成升级后,基于预设通信接口向下一个子系统标识对应的子系统发送升级指令,以使下一个子系统标识对应的子系统根据升级指令进入升级状态,然后基于预设通信接口将主存储空间中下一个子系统标识对应的云固件包传输至对应的子系统,以使下一个子系统标识对应的子系统可以在上一个子系统完成升级后进入升级状态下使用对应的云固件包进行升级。
上述实施例中,通过先将各个子系统对应的云固件包存储于主存储空间内,当子系统启动升级时可以直接将云固件包传输至各个子系统进行升级,不需要占用各个子系统的存储空间用于存储云固件包和等待升级,可以节省各个子系统的存储空间。
在一个实施例中,如图6所示,所述方法,还包括:
步骤602,基于预设云服务器地址与云服务器建立无线通信长连接;
步骤604,获取云服务器发送的升级提示信息和云固件包信息,升级提示信息是云服务器在检测到子系统标识存在对应的云固件包时发送升级通知消息;
步骤606,基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
步骤608,检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
步骤610,基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
具体地,终端与云服务器建立无线通信长连接,当云服务器检测到有新云固件包时,通过无线通信长连接可以发送升级提示信息和新云固件包信息给终端,也可以是云服务器先发送升级提示信息给终端,待终端接收到升级提示信息后再将新云固件包信息发送给终端;
终端基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;基于预设通信接口将主存储空间中的云固。件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。子系统完成升级后,终端与云服务器保持无线通信长连接,并等待下一次云服务器发送的升级提示信息和新云固件包信息。
在一个具体实施例中,如图7所示,一种嵌入式设备升级的流程示意图,包括:
终端获取各子系统的信息,包括各子系统对应的子系统标识和当前固件包版本信息;
终端通过无线网络连接OTA云服务器,并将子系统对应的子系统标识和当前固件包版本信息上传至OTA云服务器,OTA云服务器基于子系统标识在已保存的各子系统标识对应的固件包版本信息中查找对应的云固件包版本信息,并检测云固件包版本信息与当前固件包版本信息是否一致;
当云服务器检测到当云固件包版本信息与当前固件包版本信息一致时,终端暂停此轮各子系统的升级,直到预设周期结束后,再次获取各子系统对应的子系统标识和当前固件包版本信息并上传至OTA云服务器;
当云服务器检测到当云固件包版本信息与当前固件包版本信息不一致时,终端获取云服务器返回的云固件包版本信息对应的云固件包信息;
终端基于固件包存储地址通过云固件包下载方式下载各子系统对应的云固件包,并使用云固件包校验信息验证云固件包完整性通过时,将云固件包和云固件包校验信息存储到主存储空间中,判断云固件包的下载结果为下载完成;
终端中的一个子系统启动升级,终端基于预设硬件接口向该子系统发送升级指令,该子系统根据升级指令进行重启,并在重启后进入所述升级状态;
终端基于预设硬件接口将主存储空间中的所述云固件包和云固件包校验信息传输至子系统,子系统在升级状态下使用云固件包校验信息验证云固件包完整性通过时,向终端发送子系统写入结果,终端根据子系统写入结果判断子系统写入完成,并触发子系统复位指令;
子系统复位启动时读取云固件包,子系统能通过运行云固件包正常工作时判断为升级成功,并将子系统升级成功信息发送至终端,然后下一个子系统启动升级;
当终端检测到所有子系统升级成功,上报云服务器子系统的升级结果和子系统信息,云服务器清除升级成功的云固件包。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的嵌入式设备升级方法的嵌入式设备升级装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个嵌入式设备升级装置实施例中的具体限定可以参见上文中对于嵌入式设备升级方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种嵌入式设备升级装置800,包括:获取模块802、存储模块804和升级模块806,其中:
获取模块802,用于获取子系统对应的子系统标识和当前固件包版本信息,将子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器检测到当前固件包版本信息与子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
存储模块804,用于基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
升级模块806,用于检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
在一个实施例中,获取模块802用于基于预设云服务器地址与云服务器建立无线通信连接;基于无线通信连接向云服务器上传子系统标识和当前固件包版本信息;
获取模块802,还包括:
断连模块,用于断开无线通信连接中的通信协议。
在一个实施例中,固件包信息包括云固件包存储地址、云固件包下载方式和云固件包校验信息;
存储模块804用于基于固件包存储地址通过云固件包下载方式下载云固件包,并使用云固件包校验信息验证云固件包完整性通过时,将云固件包和云固件包校验信息存储到主存储空间中;
存储模块804,还包括:
传输模块,用于基于预设通信接口将主存储空间中的云固件包和云固件包校验信息传输至子系统,以使子系统在升级状态下使用云固件包校验信息验证云固件包完整性通过时,使用云固件包进行升级。
在一个实施例中,升级模块806,用于基于预设通信接口向子系统标识对应的子系统发送升级指令,子系统根据升级指令进行重启,并在重启后进入升级状态;
升级模块806,还包括:
写入模块,用于基于预设通信接口将主存储空间中的云固件包传输至子系统,子系统在升级状态下将云固件包写入预设固件包执行空间;子系统当检测云固件包写入预设固件包执行空间完成时,触发子系统复位指令,基于子系统复位指令从预设固件包执行空间中读取云固件包,并运行云固件包。
在一个实施例中,子系统标识包括至少两个,所述嵌入式设备升级装置600,还包括:
获取至少两个子系统对应的子系统标识和当前固件包版本信息,将至少两个子系统对应的子系统标识和当前固件包版本信息上传至云服务器;
获取云服务器根据子系统标识检测到云固件包版本信息与当前固件包版本信息不一致时返回的至少两个云固件包信息;
基于至少两个云固件包版本信息下载至少两个子系统标识对应的云固件包,并将至少两个子系统标识对应的云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向至少两个子系统标识对应的子系统发送升级指令,以使至少两个子系统标识对应的子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中至少两个子系统标识对应的云固件包分别传输至对应的子系统,以使至少两个子系统标识对应的子系统在升级状态下使用对应的云固件包进行升级。
在一个实施例中,所述嵌入式设备升级装置800,还包括:
基于预设云服务器地址与云服务器建立无线通信长连接;
获取云服务器发送的升级提示信息和云固件包信息,升级提示信息是云服务器在检测到子系统标识存在对应的云固件包时发送升级通知消息;
基于云固件包信息下载子系统标识对应的云固件包,并将云固件包存储到主存储空间中;
检测当前运行状态,当当前运行状态为待机状态时,基于预设通信接口向子系统标识对应的子系统发送升级指令,以使子系统根据升级指令进入升级状态;
基于预设通信接口将主存储空间中的云固件包传输至子系统,以使子系统在升级状态下使用云固件包进行升级。
上述嵌入式设备升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种嵌入式设备升级方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种嵌入式设备升级方法,其特征在于,所述方法包括:
获取子系统对应的子系统标识和当前固件包版本信息,将所述子系统标识和所述当前固件包版本信息上传至云服务器;
获取所述云服务器检测到所述当前固件包版本信息与所述子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
基于所述云固件包信息下载所述子系统标识对应的云固件包,并将所述云固件包存储到主存储空间中;
检测当前运行状态,当所述当前运行状态为待机状态时,基于预设通信接口向所述子系统标识对应的子系统发送升级指令,以使所述子系统根据所述升级指令进入升级状态;
基于所述预设通信接口将所述主存储空间中的所述云固件包传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包进行升级。
2.根据权利要求1所述的方法,其特征在于,所述将所述子系统标识和所述当前固件包版本信息上传至云服务器,包括:
基于预设云服务器地址与所述云服务器建立无线通信连接;
基于所述无线通信连接向所述云服务器上传所述子系统标识和所述当前固件包版本信息;
在所述基于所述云固件包信息下载所述子系统标识对应的云固件包,并将所述云固件包存储到主存储空间中之后,还包括:
断开所述无线通信连接中的通讯协议。
3.根据权利要求1所述的方法,其特征在于,所述云固件包信息包括云固件包存储地址、云固件包下载方式和云固件包校验信息;
基于所述云固件包信息下载所述子系统标识对应的云固件包,并将所述云固件包存储到主存储空间中,包括:
基于所述固件包存储地址通过所述云固件包下载方式下载所述云固件包,并使用所述云固件包校验信息验证所述云固件包完整性通过时,将所述云固件包和所述云固件包校验信息存储到主存储空间中;
所述基于预设通信接口将所述主存储空间中的所述云固件包传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包进行升级,包括:
基于预设通信接口将所述主存储空间中的所述云固件包和所述云固件包校验信息传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包校验信息验证所述云固件包完整性通过时,使用所述云固件包进行升级。
4.根据权利要求1所述的方法,其特征在于,所述基于预设通信接口向所述子系统标识对应的子系统发送升级指令,以使所述子系统根据所述升级指令进入升级状态,包括:
基于预设通信接口向所述子系统标识对应的子系统发送升级指令,所述子系统根据所述升级指令进行重启,并在重启后进入所述升级状态;
所述基于预设通信接口将所述主存储空间中的云固件包传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包进行升级,包括:
基于预设通信接口将所述主存储空间中的云固件包传输至所述子系统,所述子系统在所述升级状态下将所述云固件包写入预设固件包执行空间;所述子系统当检测所述云固件包写入所述预设固件包执行空间完成时,触发子系统复位指令,基于所述子系统复位指令从所述预设固件包执行空间中读取所述云固件包,并运行所述云固件包。
5.根据权利要求1所述的方法,其特征在于,所述子系统标识包括至少两个;所述方法,还包括:
获取至少两个子系统对应的子系统标识和当前固件包版本信息,将所述至少两个子系统对应的子系统标识和当前固件包版本信息上传至云服务器;
获取所述云服务器根据所述子系统标识检测到所述云固件包版本信息与所述当前固件包版本信息不一致时返回的至少两个云固件包信息;
基于所述至少两个云固件包版本信息下载所述至少两个子系统标识对应的云固件包,并将所述至少两个子系统标识对应的云固件包存储到所述主存储空间中;
检测当前运行状态,当所述当前运行状态为待机状态时,基于预设通信接口向所述至少两个子系统标识对应的子系统发送升级指令,以使所述至少两个子系统标识对应的子系统根据所述升级指令进入升级状态;
基于预设通信接口将所述主存储空间中所述至少两个子系统标识对应的云固件包分别传输至对应的子系统,以使所述至少两个子系统标识对应的子系统在所述升级状态下使用对应的云固件包进行升级。
6.根据权利要求1所述的方法,其特征在于,所述方法,还包括:
基于所述预设云服务器地址与所述云服务器建立无线通信长连接;
获取所述云服务器发送的升级提示信息和所述云固件包信息,所述升级提示信息是所述云服务器在检测到所述子系统标识存在对应的所述云固件包时发送升级通知消息;
基于所述云固件包信息下载所述子系统标识对应的云固件包,并将所述云固件包存储到主存储空间中;
检测当前运行状态,当所述当前运行状态为待机状态时,基于预设通信接口向所述子系统标识对应的子系统发送升级指令,以使所述子系统根据所述升级指令进入升级状态;
基于预设通信接口将所述主存储空间中的所述云固件包传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包进行升级。
7.一种嵌入式设备升级装置,其特征在于,所述装置包括:
获取模块,用于获取子系统对应的子系统标识和当前固件包版本信息,将所述子系统标识和所述当前固件包版本信息上传至云服务器;
获取所述云服务器检测到所述当前固件包版本信息与所述子系统标识对应的云固件包版本信息不一致时返回的云固件包信息;
存储模块,用于基于所述云固件包信息下载所述子系统标识对应的云固件包,并将所述云固件包存储到主存储空间中;
升级模块,用于检测当前运行状态,当所述当前运行状态为待机状态时,基于预设通信接口向所述子系统标识对应的子系统发送升级指令,以使所述子系统根据所述升级指令进入升级状态;
基于预设通信接口将所述主存储空间中的所述云固件包传输至所述子系统,以使所述子系统在所述升级状态下使用所述云固件包进行升级。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534142.2A CN114185576A (zh) | 2021-12-15 | 2021-12-15 | 嵌入式设备升级方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534142.2A CN114185576A (zh) | 2021-12-15 | 2021-12-15 | 嵌入式设备升级方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185576A true CN114185576A (zh) | 2022-03-15 |
Family
ID=80543923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111534142.2A Pending CN114185576A (zh) | 2021-12-15 | 2021-12-15 | 嵌入式设备升级方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185576A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541047A (zh) * | 2023-07-05 | 2023-08-04 | 广州疆海科技有限公司 | 固件升级方法、装置、计算机设备及计算机可读存储介质 |
-
2021
- 2021-12-15 CN CN202111534142.2A patent/CN114185576A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116541047A (zh) * | 2023-07-05 | 2023-08-04 | 广州疆海科技有限公司 | 固件升级方法、装置、计算机设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669872B2 (en) | Smart broadcasting device | |
KR101007739B1 (ko) | Fota 서비스 제공 방법 및 그 시스템 | |
CN106020875B (zh) | 嵌入式终端的固件更新管理方法和装置 | |
US20140006225A1 (en) | Automatic device inventory management for different types of devices | |
US9928053B2 (en) | Joint acquisition of update software for multiple devices | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
WO2018040746A1 (zh) | 一种驱动程序的安装方法及装置、电子设备 | |
WO2017076051A1 (zh) | 一种获取超级用户权限的方法及装置 | |
CN113553218A (zh) | 基于云手机克隆备份真机的方法、终端设备、及存储介质 | |
CN112148337A (zh) | 一种固件升级方法及装置 | |
US10284614B2 (en) | Method for downloading contents of electronic device and electronic device thereof | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
CN114185576A (zh) | 嵌入式设备升级方法、装置、计算机设备和存储介质 | |
CN113411203B (zh) | 终端的配置方法、装置、计算机设备和存储介质 | |
CN112486733B (zh) | 系统还原方法、装置、终端及存储介质 | |
CN105453518B (zh) | 计量网络的同步 | |
CN112328561A (zh) | 一种日志传递方法、系统、电子设备和存储介质 | |
CN114253558A (zh) | 一种补丁包安装方法和装置 | |
CN116719670B (zh) | 数据处理的方法、电子设备及可读存储介质 | |
CN108153548A (zh) | 一种emmc固件升级方法和装置 | |
US20210004240A1 (en) | Electronic device for performing booting, and operating method therefor | |
CN111292138B (zh) | 一种车载广告的更新方法、装置、电子设备及存储介质 | |
CN112181467A (zh) | 终端的存储器固件升级方法、装置、终端和存储介质 | |
KR102170520B1 (ko) | 로딩 타임을 개선하는 전자 장치 및 방법 | |
CN109347937B (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 |