CN116243949A - 一种软件升级方法、装置、嵌入式设备及存储介质 - Google Patents
一种软件升级方法、装置、嵌入式设备及存储介质 Download PDFInfo
- Publication number
- CN116243949A CN116243949A CN202310145381.1A CN202310145381A CN116243949A CN 116243949 A CN116243949 A CN 116243949A CN 202310145381 A CN202310145381 A CN 202310145381A CN 116243949 A CN116243949 A CN 116243949A
- Authority
- CN
- China
- Prior art keywords
- module
- file
- upgrade
- software
- version information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004146 energy storage Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件升级方法、装置、嵌入式设备及存储介质,软件升级方法应用于包括多个模块的嵌入式设备,所述方法包括:获取升级文件中多个模块的软件版本信息;针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,所述本地版本信息指示所述嵌入式设备存储的所对应模块当前软件的版本;获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;基于所述文件内容,升级所对应目标模块的软件。解决了对包括多个模块的嵌入式设备升级时,所需下载的数据量大,升级时间长的技术问题,减少了嵌入式设备升级的数据量,降低了嵌入式设备升级的时长。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种软件升级方法、装置、嵌入式设备及存储介质。
背景技术
嵌入式设备主要由嵌入式处理器、相关支撑硬件和嵌入式软件系统组成,嵌入式设备是集软硬件于一体的可独立工作的“器件”。由于嵌入式设备存在后续功能升级或漏洞修正的操作,为此,嵌入式设备需要具有远程升级的功能。
但是,由于嵌入式设备中大多包括多个模块,每个模块均可以有单独的嵌入式程序作为模块的软件。故,目前在进行嵌入式设备升级时,所需下载的数据量较大,导致嵌入式设备的升级时间较长。
发明内容
本发明提供了一种软件升级方法、装置、嵌入式设备及存储介质,以解决对包括多个模块的嵌入式设备升级时,所需下载的数据量大,升级时间长的技术问题。
根据本发明的一方面,提供了一种软件升级方法,应用于包括多个模块的嵌入式设备,所述方法包括:
获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;
针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,所述本地版本信息指示所述嵌入式设备存储的所对应模块当前软件的版本;
获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;
基于所述文件内容,升级所对应目标模块的软件。
根据本发明的另一方面,提供了一种软件升级装置,集成在包括多个模块的嵌入式设备中,所述装置包括:
第一获取模块,用于获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;
确定模块,用于针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识;
第二获取模块,用于获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;
升级模块,用于基于所述文件内容,升级所对应目标模块。
根据本发明的另一方面,提供了一种嵌入式设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的软件升级方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的软件升级方法。
本发明实施例的技术方案,通过获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,所述本地版本信息指示所述嵌入式设备存储的所述模块当前软件的版本;获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;基于所述文件内容,升级所对应目标模块的软件,解决了对包括多个模块的嵌入式设备升级时,所需下载的数据量大,升级时间长的技术问题,减少了嵌入式设备升级的数据量,降低了嵌入式设备升级的时长。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种软件升级方法的流程图;
图2是根据本发明实施例一提供的一种软件升级方法所适用的场景图;
图3是根据本发明实施例二提供的一种软件升级方法的流程图;
图4是根据本发明实施例三提供的一种软件升级装置的结构示意图;
图5是实现本发明实施例的软件升级方法的嵌入式设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包含”、“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种软件升级方法的流程图,本实施例可适用于对包括多个模块的嵌入式设备进行软件升级的情况,该方法可以由软件升级装置来执行,该软件升级装置可以采用硬件和/或软件的形式实现,软件升级装置可配置于包括多个模块的嵌入式设备中。嵌入式设备内所包括的多个模块可以采用硬件和/或软件的形式实现。
图2是根据本发明实施例一提供的一种软件升级方法所适用的场景图。如图2所示,以嵌入式设备为储能设备1为例,家庭的储能设备1属于智能设备,里面包含了主控板,即主板,电池管理系统(BATTERY MANAGEMENT SYSTEM,BMS)板,逆变器以及太阳能板,如太阳能光伏电池板,也就是太阳能电池板,图2中,以储能设备1包括主板、逆变器、保护板和太阳能板等模块为例进行描述。每一块控制板里面都有单独的嵌入式程序,作为软件,由于存在后续进行功能升级或者BUG修正的操作,为此,给储能设备设计了远程升级功能,可以由用户通过远程终端2的APP经云端3发送控制命令通知储能设备1进行OTA远程升级。
为了解决嵌入式设备升级数据量大,升级时间长的技术问题,本发明提供了一种软件升级方法,如图1所示,该方法包括:
S110、获取升级文件中多个模块的软件版本信息。
升级文件可以认为是对嵌入式设备进行软件升级所使用的文件,如用于对各个模块进行软件升级的文件。升级文件可以为嵌入式设备主动获取,也可以是被动接受。如嵌入式设备主动从后台获取,或接受后台传输的升级文件。
软件版本信息可以认为标识软件的版本的信息。每个模块可以对应有一个软件版本信息。不同模块的软件版本信息可以存储在升级文件的不同位置处。如不同模块的软件版本信息存储至升级文件的文件头位置处。文件头可以为升级文件开头的一段承担一定任务的数据,如存储各个模块的软件版本信息。
各个模块的软件版本信息可以相邻设置在升级文件内。也可以间隔设置在升级文件内,本发明不作限定,只要能够从升级文件中获取各个模块的软件版本信息即可。
本发明中嵌入式设备具有多个模块,每个模块具有单独的程序,为了对每个模块进行升级,本步骤可以获取升级文件中每个模块或部分模块的软件版本信息。获取哪些模块的软件版本信息此处不作限定。
在一个实施例中,本步骤可以从升级文件的文件头内设定位置处获取多个模块的软件版本信息。设定位置可以为预先约定的。
S120、针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识。
所述本地版本信息指示所述嵌入式设备存储的所对应模块当前的软件的版本。升级标识可以用于标识模块是否需要进行升级。
每个模块,均可以对应有一个软件版本信息和一个本地版本信息。其中,软件版本信息可以为从后台下载的表征模块软件的版本的信息。本地版本信息可以表征模块在本地所应用的软件的版本的信息。通过比对软件版本信息和本地版本信息,可以确定模块是否需要进行软件升级。软件版本信息可以表征后台存储的该模块的最新版本的软件所对应的版本。
针对获取软件版本信息的每个模块,分别确定所对应的升级标识。确定手段不作限定,如进行所对应软件版本信息和所对应本地版本信息的比对。一个模块的软件版本信息、本地版本信息和升级标识存在对应关系。
若软件版本信息所表征版本新于本地版本信息所表征版本,则可以确定所对应模块的升级标识指示需要进行该模块的软件版本升级;否则,升级标识指示不用进行软件版本升级。
版本的新旧可以通过版本号的大小判断,此处不作限定。软件版本信息和本地版本信息可以指示分别所对应的版本号。
S130、获取所述升级文件中目标模块的文件内容。
所述目标模块为所述升级标识指示进行软件版本升级的模块,即指示需要对所对应模块进行软件版本升级的升级标识所对应模块为目标模块。目标模块的数量可以为一个或多个。文件内容可以为用于对模块进行升级的内容。
在确定需要进行软件升级的目标模块后,本步骤可以针对每个目标模块分别从升级文件中获取所对应的文件内容,以用于进行软件升级。目标模块的文件内容在升级文件中的位置可以为预先约定的,也可以为通过文件头指示的,此处不作限定。
在文件内容所处位置为通过文件头指示时,可以从文件头中获取目标模块所对应的表征文件内容位置的信息,然后基于该信息从升级文件中获取文件内容。表征文件内容位置的信息可以包括起始位置和长度。
S140、基于所述文件内容,升级所对应目标模块的软件。
获取到目标模块的文件内容后,可以将文件内容传输至对应目标模块,以供目标模块进行软件升级。
本实施例中S110-S140可以由嵌入式设备内的主板执行,主板在基于文件内容升级所对应目标模块的软件时,可以将文件内容传输至目标模块的软件,以供目标模块进行软件升级。
本实施例提供的软件升级方法,通过获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,所述本地版本信息指示所述嵌入式设备存储的所述模块当前软件的版本;获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;基于所述文件内容,升级所对应目标模块的软件,解决了对包括多个模块的嵌入式设备升级时,所需下载的数据量大,升级时间长的技术问题,减少了嵌入式设备升级的数据量,降低了嵌入式设备升级的时长。
在一个实施例中,所述获取升级文件中多个模块的软件版本信息,包括:
获取所述升级文件的下载地址;
通过所述下载地址,下载所述升级文件中多个模块的软件版本信息。
下载地址可以为用于下载升级文件的地址。
下载地址可以由远程终端传输至嵌入式设备,远程终端可以为远程控制嵌入式设备进行升级的终端。远程终端可以用于判断嵌入式设备是否需要进行软件升级。远程终端可以在远程终端处存储有嵌入式设备所使用的系统版本信息,系统版本信息可以指示嵌入式设备所使用升级文件的版本。
远程终端也可以从嵌入式设备处获取系统版本信息,以用于确定是否需要对嵌入式设备进行软件升级。所获取的系统版本信息可以为嵌入式设备所使用的系统版本信息。
在获取到下载地址后,本实施例可以基于下载地址下载多个模块的软件版本信息。
在一个实施例中,所述通过所述下载地址,下载所述升级文件中多个模块的软件版本信息,包括:
通过所述下载地址,下载所述升级文件的文件头,所述文件头包括多个模块的软件版本信息。
本实施例在下载软件版本信息时,可以从升级文件的文件头处下载多个模块的软件版本信息。文件头可以为升级文件开始位置处至设定字节止的位置。
在一个实施例中,所述文件头还包括各所述模块的起始位置和长度中的一个或多个,所述起始位置指示所对应模块的文件内容在所述升级文件中起始字节,所述长度指示所对应模块的文件内容的长度。
文件头中不仅包括有软件版本信息,还可以包括有多个模块的起始位置和长度。每个模块的软件版本信息、起始位置和长度可以一起存储,也可以先在文件头存储各个模块的软件版本信息,再存储起始位置和长度。
起始位置可以表征所对应模块的固件在升级文件内的起始字节,即固件开始位置在升级文件内的字节。长度可以指示固件在升级文件中所占用的长度。文件内容可以理解为固件内容,用于对固件进行升级。
在一个实施例中,所述获取所述升级文件的下载地址,包括:
传输所述嵌入式设备的系统版本信息至远程终端,所述远程终端为用于控制所述嵌入式设备进行软件升级的终端;
获取所述升级文件的下载地址,所述下载地址为在远程终端确定所述嵌入式设备待进行软件版本升级后传输至所述嵌入式设备,所述远程终端基于所述系统版本信息和目标版本信息确定所述嵌入式设备待进行软件版本升级,所述目标版本信息指示所述远程终端所获取的所述嵌入式设备的软件的最新版本。
此处不对系统版本信息的传输时机进行限定,可以在嵌入式设备检测到远程终端连接至嵌入式设备后传输系统版本信息,也可以在接收到远程终端请求系统版本信息的请求时传输。
远程终端接收到系统版本信息后,可以获取嵌入式设备的目标版本信息,如从服务器获取目标版本信息。然后比对系统版本信息和目标版本信息,以确定是否需要对嵌入式设备进行升级,此处不对具体确定手段进行限定,可以参见软件版本信息和本地版本信息。不同之处在于,软件版本信息和本地版本信息为表征模块的软件的版本的信息。系统版本信息和目标版本信息可以为表征升级文件的版本的信息。系统版本信息可以表征嵌入式设备使用了的升级文件的版本。目标版本信息表征远程设备存储的嵌入式设备的升级文件的最新版本。最新版本可以认为是远程设备所存储或所能获取的发布时间最新的版本。最新版本可以通过版本号判断,版本号越大,对应的版本可以越新。
嵌入式设备使用了的升级文件,可以认为是嵌入式设备基于该升级圣剑进行了模块的升级。嵌入式设备内各模块的固件为基于使用了的升级文件升级后的固件。
在远程设备判断需要对嵌入式设备进行升级后,可以向嵌入式设备传输升级文件的下载地址。升级文件内可以存储有需要升级模块的固件信息。
嵌入式设备获取升级文件的下载地址,基于下载地址进行软件升级。
在一个实施例中,所述获取所述升级文件中目标模块的文件内容,包括:
通过所述升级文件的下载地址,从所述目标模块的起始位置和长度所指示的位置处下载所述目标模块的文件内容。
在获取目标模块的文件内容时,可以通过下载地址从升级文件中下载所对应文件内容,下载文件内容时,可以从所对应的起始位置开始下载长度所表征大小的文件内容。
起始位置和长度所指示的位置可以为以起始位置为开始位置,长度为长度的升级文件中的位置。
在一个实施例中,每个模块的固件信息占用所述升级文件内连续的字节,所述固件信息包括软件版本信息、起始位置、长度、固件码和校验码中的一个或多个,所述固件码为标识所对应固件的信息,所述校验码用于对所对应的文件内容进行校验。
固件信息可以为表征固件的信息。本发明中固件信息中可以包括有固件的校验码,用于校验文件内容。文件头内可以有文件头的校验码,用于校验文件头。
实施例二
图3是根据本发明实施例二提供的一种软件升级方法的流程图,本实施例示例性的描述本发明提供的软件升级方法,本实施例中以嵌入式设备为储能设备为例进行说明,软件升级方法又称储能产品远程升级方法。如图3所示,该方法包括如下步骤:
智能设备内的主板向后台上报版本信息(即系统版本信息);后台检测是否有新的软件版本(即基于系统版本信息和目标版本信息确定所述嵌入式设备是否存在新的软件版本),若没有,则结束操作,若有,则通过手机(即远程终端)APP提醒用户是否需要升级,若否,则结束。若是,则将新版软件下载地址(即升级文件的下载地址)发送到主板。主板下载128字节头(即升级文件的文件头),或者软件包(即升级文件)中的各个模块的版本信息(即软件版本信息),文件长度(即长度)与文件位置(包括起始位置)等。每个模块的软件版本是否需要更新(即针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,升级标识可以用于指示所对应模块是否需要更新),若否,则结束,若是,则根据头信息(包括起始位置和长度)下载对应的文件内容(即从所述目标模块的起始位置和长度所指示的位置处下载所述目标模块的文件内容)。校验文件CRC是否正确,若否,则继续根据头信息下载对应的文件内容。若是,则通过串口升级每个模块,最后升级主板(即基于所述文件内容,升级所对应目标模块的软件)。
每次APP连接储能设备时,储能设备都向APP上报自己的系统版本(即系统版本信息),由APP判断当前设备是否存在更新的软件版本,如果存在则提醒用户进行升级。储能设备在收到APP的升级命令时,先检查当前设备的工作状态是否正常,如果任何的告警信息,则进入升级。储能设备先从APP提供的地址下载128字节的文件头(即通过所述下载地址,下载所述升级文件的文件头),文件头里面包含了设备所有模块的软硬件版本,长度,ROM位置,校验码等信息(即文件头包括多个模块的固件信息)。储能设备根据版本确定当前哪些模块需要升级,如果需要升级再将文件(即文件内容)下载到主板上的SPI FLASH中保存。下载完成后计算校验码,确保下载的文件没有错误。然后由主板通过串口分别给各个模块进行相应的升级。
以下对升级过程进行具体描述,储能设备升级包括如下步骤:
1.手机APP通过蓝牙连接储能设备,储能设备检测到有APP连接后,向APP上报软件的系统版本号(即系统版本信息)。
2.APP通过根据储能设备上报的系统版本号,与服务器上对应的储能设备的最新软件版本对比,确认是否需要对储能设备进行升级,如果服务器上的软件系统版本高于储能设备的系统软件版本,则通过APP提醒用户,储能设备有更新的程序版本,是否需要升级,用户确认完需要升级后,后台向储能设备发送升级命令,并将下载升级文件的URL地址(即下载地址)发送给设备。
3.储能设备接收到APP发过来的升级请求后,通过URL先下载128字节的文件头,该128字节的内容如下:前16个字节为使用ASCOII码表示的项目名称,用于标识升级文件;第二行为升级文件信息,升级文件信息包括第17-18字节的软件版本号(即系统版本信息),第19-20字节的文件头的CRC码;其后每16个字节为本升级软件中包含的模块的固件信息,程序固件系统包括固件码(标识固件,固件和模块也存在对应关系),固件的起始位置,固件长度,固件的CRC16码以及固件的子版本号(即软件版本)。
Bin文件格式如下:
BIN文件前16个字节为使用ASCOII码表示的项目名称。例如项目名称为:XXX-XXXX-XXXXXXX(项目代码)。
BIN文件第二行为升级文件信息,17-18为软件版本号,19-20为文件头的CRC码;
BIN文件第33~48字节为模块1的文件信息(又称固件信息),程序码(又称固件码):0xE1F1,起始位置为:0x00000080(即表征开始位置为第80字节处),长度(又称固件长度)为:0x0000FDE8,固件的CRC16码为0x1235。
Bin文件内容前9行部分:
第1行第1~16字节:48 54 45 30 38 39 2D 43 4E 00 00 00 00 00 0000;
第2行第17~32字节:01 01 12 35 00 00 00 00 00 00 00 00 00 0000 00;
第3行第33~48字节:E1 F1 00 00 00 80 00 00FD E8 01 01 00 0000 00;对应模块一的程序,起始位置为0x00000080,长度为0x0000FDE8,软件版本(即固件的子版本号)为1.01;
第4行第49~64字节:E2 F1 00 00FE 68 00 00FD E8 01 02 00 0000 00;对应模块二的程序信息(即文件信息)。
第5行第65~80字节:E3 F1 00 01FC 50 00 00FD E8 01 01 00 0000 00;对应模块三的程序信息。
第6行第81~96字节:E3 F2 00 02FA 38 00 00FD E8 01 01 00 0000 00;对应模块四的程序信息。
第7行第97~112字节:E4 F1 00 03F8 20 00 00FD E8 01 01 00 0000 00;对应模块五的程序信息。
第8行第113~128字节(预留):00 00 00 00 00 00 00 00 00 00 0000 00 00 0000;
第9行第129~144字节:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX;对应固件内容。图2中逆变器可以包括两个。主板、逆变器、保护板和太阳能板均为嵌入式设备内的模块。
4.通过128字节的文件头,获取到各个模块的固件信息,如果发现了更新的固件,则通过HTTP协议将固件下载到本地的外部FLASH上,下载完成后,通过固件头的CRC码与下载到本地的固件进行CRC比对,如果一致则进入到下一步,如果不一致则重新下载该固件。
5.将所有的固件下载完成后,通过串口对设备的其他模块进行升级,串口升级完成后,最后对主板固件升级。
在本方案中,通过对版本的核对,只下载更高版本的软件,可以减少远程升级的数据传输量和升级时间,通过对CRC码的校验,确保文件在传输过程中没有出现数据错误,提高远程升级的可靠性,降低远程升级风险,提升用户体验。
实施例三
图4是根据本发明实施例三提供的一种软件升级装置的结构示意图。软件升级装置集成在包括多个模块的嵌入式设备中。如图4所示,该装置包括:
第一获取模块410,用于获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;
确定模块420,用于针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识;
第二获取模块430,用于获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;
升级模块440,用于基于所述文件内容,升级所对应目标模块。
可选的,第一获取模块410,包括:
获取单元,用于获取所述升级文件的下载地址;
下载单元,用于通过所述下载地址,下载所述升级文件中多个模块的软件版本信息。
可选的,下载单元,具体用于:
通过所述下载地址,下载所述升级文件的文件头,所述文件头包括多个模块的软件版本信息。
可选的,所述文件头还包括各所述模块的起始位置和长度中的一个或多个,所述起始位置指示所对应模块的文件内容在所述升级文件中起始字节,所述长度指示所对应模块的文件内容的长度。
可选的,获取单元,具体用于:
传输所述嵌入式设备的系统版本信息至远程终端,所述远程终端为用于控制所述嵌入式设备进行软件升级的终端;
获取所述升级文件的下载地址,所述下载地址为在远程终端确定所述嵌入式设备待进行软件版本升级后传输至所述嵌入式设备,所述远程终端基于所述系统版本信息和目标版本信息确定所述嵌入式设备待进行软件版本升级,所述目标版本信息指示所述远程终端所获取的所述嵌入式设备的软件的最新版本。
可选的,第二获取模块430,具体用于:
通过所述升级文件的下载地址,从所述目标模块的起始位置和长度所指示的位置处下载所述目标模块的文件内容。
可选的,每个模块的固件信息占用所述升级文件内连续的字节,所述固件信息包括软件版本信息、起始位置、长度、固件码和校验码中的一个或多个,所述固件码为标识所对应模块的信息,所述校验码用于对所对应的文件内容进行校验。
本发明实施例所提供的软件升级装置可执行本发明任意实施例所提供的软件升级方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5是实现本发明实施例的软件升级方法的嵌入式设备的结构示意图。嵌入式设备10旨在表示各种形式的智能设备,如储能设备和/或数字计算机等,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。嵌入式设备10还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,嵌入式设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(Read-Only Memory,ROM)12、随机访问存储器(RandomAccess Memory,RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储嵌入式设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
嵌入式设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许嵌入式设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、各种专用的人工智能(Artificial Intelligence,AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(Digital SignalProcess,DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如方法软件升级。
在一些实施例中,软件升级方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到嵌入式设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的软件升级方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行软件升级方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(ApplicationSpecific Standard Parts,ASSP)、芯片上系统的系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programmable logic device,CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在嵌入式设备上实施此处描述的系统和技术,该嵌入式设备具有:用于向用户显示信息的显示装置(例如,阴极射线管(Cathode Ray Tube,CRT)或者液晶显示器(Liquid Crystal Display,LCD)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给嵌入式设备10。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与虚拟专用服务器(Virtual Private Server,VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种软件升级方法,其特征在于,应用于包括多个模块的嵌入式设备,所述方法包括:
获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;
针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识,所述本地版本信息指示所述嵌入式设备存储的所对应模块当前软件的版本;
获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;
基于所述文件内容,升级所对应目标模块的软件。
2.根据权利要求1所述的方法,其特征在于,所述获取升级文件中多个模块的软件版本信息,包括:
获取所述升级文件的下载地址;
通过所述下载地址,下载所述升级文件中多个模块的软件版本信息。
3.根据权利要求2所述的方法,其特征在于,所述通过所述下载地址,下载所述升级文件中多个模块的软件版本信息,包括:
通过所述下载地址,下载所述升级文件的文件头,所述文件头包括多个模块的软件版本信息。
4.根据权利要求3所述的方法,其特征在于,所述文件头还包括各所述模块的起始位置和长度中的一个或多个,所述起始位置指示所对应模块的文件内容在所述升级文件中起始字节,所述长度指示所对应模块的文件内容的长度。
5.根据权利要求2所述的方法,其特征在于,所述获取所述升级文件的下载地址,包括:
传输所述嵌入式设备的系统版本信息至远程终端,所述远程终端为用于控制所述嵌入式设备进行软件升级的终端;
获取所述升级文件的下载地址,所述下载地址为在远程终端确定所述嵌入式设备待进行软件版本升级后传输至所述嵌入式设备,所述远程终端基于所述系统版本信息和目标版本信息确定所述嵌入式设备待进行软件版本升级,所述目标版本信息指示所述远程终端所获取的所述嵌入式设备的软件的最新版本。
6.根据权利要求1所述的方法,其特征在于,所述获取所述升级文件中目标模块的文件内容,包括:
通过所述升级文件的下载地址,从所述目标模块的起始位置和长度所指示的位置处下载所述目标模块的文件内容。
7.根据权利要求1-6任一所述的方法,其特征在于,
每个模块的固件信息占用所述升级文件内连续的字节,所述固件信息包括软件版本信息、起始位置、长度、固件码和校验码中的一个或多个,所述固件码为标识所对应固件的信息,所述校验码用于对所对应的文件内容进行校验。
8.一种软件升级装置,其特征在于,集成在包括多个模块的嵌入式设备中,所述装置包括:
第一获取模块,用于获取升级文件中多个模块的软件版本信息,所述升级文件为用于各所述模块进行软件升级的文件;
确定模块,用于针对每个模块,基于所对应软件版本信息和所对应本地版本信息,确定所述模块的升级标识;
第二获取模块,用于获取所述升级文件中目标模块的文件内容,所述目标模块为所述升级标识指示进行软件版本升级的模块;
升级模块,用于基于所述文件内容,升级所对应目标模块。
9.一种嵌入式设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310145381.1A CN116243949A (zh) | 2023-02-01 | 2023-02-01 | 一种软件升级方法、装置、嵌入式设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310145381.1A CN116243949A (zh) | 2023-02-01 | 2023-02-01 | 一种软件升级方法、装置、嵌入式设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116243949A true CN116243949A (zh) | 2023-06-09 |
Family
ID=86623755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310145381.1A Pending CN116243949A (zh) | 2023-02-01 | 2023-02-01 | 一种软件升级方法、装置、嵌入式设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116243949A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117348923A (zh) * | 2023-12-05 | 2024-01-05 | 科谱半导体(天津)有限公司 | 组件的版本管理方法、装置、电子设备及存储介质 |
-
2023
- 2023-02-01 CN CN202310145381.1A patent/CN116243949A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117348923A (zh) * | 2023-12-05 | 2024-01-05 | 科谱半导体(天津)有限公司 | 组件的版本管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105262627B (zh) | 一种固件升级方法、装置及系统 | |
CN110032382A (zh) | 一种汽车电子控制单元升级方法、系统及终端设备 | |
CN108011935B (zh) | 一种nb-iot设备的程序升级方法、服务器及nb-iot设备 | |
CN112835616A (zh) | 一种版本升级方法、装置、电子设备及存储介质 | |
WO2022142153A1 (zh) | 电表升级方法、系统、智能电表及存储介质 | |
CN108845824A (zh) | 应用更新方法和装置及计算机可读存储介质 | |
CN116243949A (zh) | 一种软件升级方法、装置、嵌入式设备及存储介质 | |
CN109885332A (zh) | 画质芯片软件升级方法、装置、显示设备及存储介质 | |
CN109002305B (zh) | 一种设备程序的更新方法及其系统 | |
US10938773B2 (en) | Method and apparatus for synchronizing contact information and medium | |
CN110045969B (zh) | 应用程序安装方法、服务器、系统、设备及存储介质 | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
CN106293814B (zh) | 升级方法及装置 | |
CN112579141A (zh) | 一种嵌入式系统的固件更新方法、装置、设备及存储介质 | |
CN111475468A (zh) | 新增系统的日志接入方法、装置、设备及存储介质 | |
CN116627432A (zh) | 一种前端应用自动化部署方法、装置、设备及介质 | |
CN115883359A (zh) | 升级安装方法及其装置、系统、电子设备及存储介质 | |
CN114827967A (zh) | 软件更新方法、蓝牙设备及存储介质 | |
CN112312213A (zh) | 数字电视系统的升级方法及相关装置 | |
CN112312212A (zh) | 数字电视系统的升级方法及相关装置 | |
CN113821248B (zh) | 车机端软件的服务方法、车机端软件及其相关设备 | |
CN109271188A (zh) | 一种cpld升级方法及相关装置 | |
CN115794165A (zh) | 一种应用升级方法、装置、eps及介质 | |
CN116016494A (zh) | 一种星历文件的传输方法、装置、设备、介质及系统 | |
CN118170579A (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 |