CN109558160A - 升级方法、嵌入式系统 - Google Patents
升级方法、嵌入式系统 Download PDFInfo
- Publication number
- CN109558160A CN109558160A CN201710938082.8A CN201710938082A CN109558160A CN 109558160 A CN109558160 A CN 109558160A CN 201710938082 A CN201710938082 A CN 201710938082A CN 109558160 A CN109558160 A CN 109558160A
- Authority
- CN
- China
- Prior art keywords
- application
- upgrade
- kernel
- upgrading
- executable file
- 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 88
- 238000005192 partition Methods 0.000 claims description 79
- 230000008569 process Effects 0.000 claims description 22
- 238000012795 verification Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种升级方法、嵌入式系统。其中,该方法包括:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。本发明解决了现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种升级方法、嵌入式系统。
背景技术
在嵌入式运行环境下,由于网络或者嵌入式设备存储介质的存储资源受限,在应用需要升级时,通常需要压缩应用升级包的文件大小,目前的OTA(Over-the-Air,空中下载技术)升级类型有两种:整包升级和差分升级,目前应用升级通常采用的升级方式主要是差分升级,例如,嵌入式系统等OTA厂商都使用差分升级方式进行升级,差分升级方式可以实现一个较好的压缩效果,只需要原有升级固件的5%-20%空间,即可完成升级,大大减少了资源占用,因此,成为目前各厂家升级设备的首选方式。
但是,采用差分升级方式进行应用升级时,仍存在很多不容忽视的缺点,例如:需要对升级的应用进行备份,升级效率大大降低;服务端版本碎片较多,不易对嵌入式系统维护管理;在一些情况下在差分压缩升级包后,升级时仍然会升级整包,拉低升级速度,升级过程会消耗过多的资源,满足不了减少嵌入式设备的存储介质的空间需求。
针对上述的现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种升级方法、嵌入式系统,以至少解决现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种升级方法,包括:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
根据本发明实施例的另一方面,还提供了一种嵌入式系统,包括:应用可执行文件以及内核服务可执行文件;其中,内核服务可执行文件设置有对外统一的接口,应用可执行文件包括根据接口编写的应用,在编写应用的过程中,通过调用接口进行编程。
根据本发明实施例的另一方面,还提供了一种升级装置,包括:解析模块,用于解析接收到的升级报文,得到升级组件类型和升级地址;获取模块,用于若升级组件类型为应用,根据升级地址,获取应用升级包;写入模块,用于将应用升级包写入应用所在的分区。
根据本发明实施例的另一方面,还提供了一种计算机终端,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的升级方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的升级方法。
在本发明实施例中,采用直接将应用升级包写入应用所在的分区的方式,通过解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区,达到了无需备份应用的升级固件即可完成应用升级的目的,从而实现了减少存储介质的空间需求的技术效果,进而解决了现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的升级方法的步骤流程图;
图2是根据本发明实施例的一种可选的升级方法的步骤流程图;
图3a是根据本发明实施例的一种可选的升级方法的步骤流程图;
图3b是根据本发明实施例的一种可选的升级方法的步骤流程图;
图4是根据本发明实施例的一种可选的升级方法的步骤流程图;
图5是根据本发明实施例的一种可选的升级方法的步骤流程图;
图6是根据本发明实施例的一种可选的升级方法的步骤流程图;
图7是根据本发明实施例的一种升级装置的结构示意图;
图8是根据本发明实施例的一种嵌入式系统的结构示意图;
图9是根据本发明实施例的一种可选的嵌入式系统的结构示意图;
图10是根据本发明实施例的一种可选的0-Flash升级空间的多bin升级的空间布局图;
图11是根据本发明实施例的一种可选的升级app bin的示意图;
图12是根据本发明实施例的一种可选的升级kernel bin的示意图;
图13是根据本发明实施例的一种可选的升级kernel bin的示意图;以及
图14是根据本发明实施例的一种计算机终端的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
无线升级(Firmware Over-The-Air,FOTA):也即移动终端的空中下载软件,是指通过云端升级技术,为具有连网功能的设备提供固件升级服务,用户可以通过网络以按需、易扩展的方式获取智能设备系统升级包,并通过FOTA进行云端升级,完成系统修复和优化。
内核(kernel):是指操作系统最基本的部分,用于为应用程序提供对计算机硬件的安全访问的一部分软件;本申请中所涉及的内核,可以为由嵌入式设备的升级固件分离得出的内核,用于为嵌入式操作系统(OS)提供基础功能。
应用(Application,App):本申请中所涉及的应用可以是由嵌入式设备的升级固件分离得出的应用,App为业务方使用kernel提供的API开发的业务代码。
应用程序编程接口(Application Programming Interface,API):是指预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而无需访问源码,或内部工作机制。
启动装载(Boot Loader):是一种用于在嵌入式操作系统中,完成整个系统的加载启动任务的引导程序,在操作系统内核运行前运行,可以初始化硬件设备、建立内存空间映射图,从而可以将系统的软硬件环境带到一个合适状态,以便于为最终调用操作系统内核准备好正确的环境。
统一资源定位符(Uniform Resource Locator,URL):是指每一个信息资源在WWW上的统一且唯一的资源定位标志,也即网络地址。
循环冗余校验算法(Cyclic Redundancy Check,CRC):是指数据通信领域中一种常用的查错校验算法,具有数据传输查错的功能,通过对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
消息摘要算法:是指一种将任意长度的输入柔和产生长度固定的伪随机输入的算法,其主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法,才可以得到相同的密文。
二进制文件(binary files,bin):其用途依系统或应用而定,其中,bin是一种文件格式binary的缩写,一个后缀名为“.bin”的可执行文件,仅表明该文件为binary格式,不表明其与某种应用程序存在必然的联系性。
多bin:是指将现有单独的.bin文件分成kernel bin、app bin等.bin文件。
实施例1
根据本发明实施例,还提供了一种升级方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
需要说明的是,本实施例所提供的一种升级方法可用于嵌入式设备升级应用的过程中,通过在内核中植入升级通道,无需在备份分区中备份应用升级包,即可完成应用的升级或更新,有效减少了对嵌入式设备中存储介质的空间需求。
在嵌入式运行环境下,由于网络、或者嵌入式设备存储介质的存储资源受限,在应用需要升级时,通常需要压缩应用升级包的文件大小,目前的OTA升级类型有两种:整包升级和差分升级,一般情况下,普通升级需要占用等量的存储空间,为节省存储空间,目前应用升级通常采用的升级方式主要是差分升级,例如,嵌入式系统,RT-thread或广升等都使用差分升级方式进行升级,差分升级方式可以实现一个较好的压缩效果,只需要原有升级固件的5%-20%空间,即可完成升级,大大减少了资源占用,因此,成为目前各厂家升级设备的首选方式。
具体的,差分升级方式实现升级的过程为服务端推送升级消息,设备端下载差分升级包,下载完成之后,重启进入启动装载状态,然后在将差分包以补丁方式(只升级差异部分)替换原有固件,从而达到升级目的。
但是,差分升级也需要一定量的备份区,且差分升级包随着两个版本之间的差异而不同,也即,现有的升级方式都需要不同大小的备份区域,占用较大升级空间,并且,这些备份区域在实际使用中只为升级,存在某种意义上的浪费。
基于本申请所提供的升级方法,可以实现无需Flash升级空间的多bin升级,也即,可以使备份区域减少为0,从而减少物联网设备的成本投入。
具体的,在上述运行环境下,本申请提供了如图1所示的升级方法。图1是根据本发明实施例的升级方法的步骤流程图。
步骤S101,解析接收到的升级报文,得到升级组件类型和升级地址。
可选的,在上述步骤S101中,执行主体可以为嵌入式设备。具体的,上述升级组件也即为升级固件,上述升级组件类型可以为但不限于:应用、内核;上述升级地址可以为URL地址。
在一种可选的实施例中,在嵌入式设备接收到服务端推送的升级消息后,嵌入式设备可以对该升级消息中的升级报文进行解析,得到上述升级组件类型和升级包的地址。
需要说明的是,作为一种可选的实施例,本申请可以通过二进制编码形式,对升级组件类型进行标识,例如,可以以“1”表示升级组件类型为应用,可以以“0”表示升级组件类型为内核。
此外,仍需说明的是,在解析得到URL地址之后,可以将该URL地址,存储至嵌入式设备的存储介质(例如,Nor-Flash介质)中。
步骤S103,若升级组件类型为应用,根据升级地址,获取应用升级包。
可选的,在上述步骤S103中,上述升级地址可以为:上述存储介质中存储的URL地址,该URL地址可以用于指示应用升级包的地址。
需要说明的是,可以通过下载的方式获取上述升级包,其中,升级包的类型与上述升级组件类型相对应设置,可以为但不限于:内核升级包、应用升级包。
在一种可选的实施例中,在确定上述升级对象为应用时,在解析得到URL地址之后,根据URL地址下载应用升级包。
在一种可选的实施例中,可以根据解析得到的升级组件类型,确定是否为应用,若为应用,重启进入内核状态(即在内核中)后,根据升级地址,获取应用升级包。
需要说明的是,由于不能在应用运行时,直接将应用升级包写入该应用所在的分区,因此,可以在确定嵌入式设备中的升级组件类型为应用的情况下重启系统,并进入内核状态,具体的,该内核中预先植入有应用的升级通道。
步骤S105,将应用升级包写入应用所在的分区。
在一种可选的实施例中,无需备份应用,可以在下载得到该应用升级包后,直接将该应用升级包写入应用所在的分区,完成应用的升级和更新。
基于上述步骤S101至步骤S105所限定的方案可以获知,解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
容易注意到的是,由于在实际的应用环境中,内核的代码较为稳定,一般不需要进行升级或更新,应用主要为业务逻辑代码,更新频率较高,为了满足业务方频繁更新应用的需求,且不需要额外的备份分区,本申请上述实施例采用直接将应用升级包写入应用所在的分区的方式,因而可以实现在嵌入式设备升级应用的过程中,无需备份应用升级包,即可直接写入应用所在的分区,完成应用的升级和更新。
通过本申请上述实施例所提供的方案,达到了无需备份应用升级包即可完成应用升级的目的,从而实现了减少存储介质的空间需求的技术效果,进而解决了现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
在一种可选的实施例中,在执行步骤S105之后,也即在将应用升级包写入应用所在的分区之后,如图2所示,上述方法还包括如下步骤:
步骤S201,通过消息摘要算法对升级后的应用进行固件完整性校验;
步骤S203,在校验成功的情况下,启动升级后的应用,并上报升级后的应用的版本信息。
具体的,上述消息摘要算法可以为消息摘要算法第五版本,也即MD5算法,为计算机安全领域广泛使用的一种散列函数,用以提供消息或数据的完整性保护。
在一种可选的实施例中,在将应用升级包写入应用所在的分区之后,还可以通过对升级后的应用的固件完整性进行校验,并在校验成功时,启动已升级的内核和应用,并上报升级后的内核和应用的版本信息,完成升级。
在另一种可选的实施例中,上述消息摘要算法还可以用于对升级后内核进行固件完整性校验。
在一种可选的实施例中,图3a是根据本发明实施例的一种可选的升级方法的步骤流程图,如图3a所示,上述升级方法还包括如下步骤:
步骤S301,若升级组件类型为内核,根据升级地址下载内核升级包;
具体的,在上述步骤S301中,可以根据解析得到的升级组件类型,确定是否为应用;并根据解析得到的待升级内核固件的URL地址,下载待升级内核的升级包。
步骤S303,将内核升级包写入内核备份分区;
步骤S305,重启进入启动装载状态,将内核备份分区中的内核升级包拷贝至内核所在的分区。
在一种可选的实施方式中,在将上述内核升级包写入内核备份分区进行备份之后,可以重启并进入启动装载状态,并在进入启动装载状态程序之后,将已进行备份的内核升级包拷贝到内核所在的分区。
由于在实际应用中,内核代码较为稳定,一般不需要进行频繁的升级和更新,基于上述步骤S301至步骤S305所提供的可选技术方案,在升级内核时,可以但不限于备份内核固件,以实现在不增加嵌入式设备的资源负担的情况下,完成内核的升级和更新。
此外,仍存在一种可选的实施例,图3b是根据本发明实施例的一种可选的升级方法的步骤流程图,如图3b所示,上述升级方法还包括如下步骤:
步骤S302,若升级组件类型为内核,根据升级地址下载内核升级包。
可选的,上述步骤S302中的实施方式可以参见步骤S301中的相关描述,此处不再赘述。
步骤S304,将上述内核升级包写入上述应用所在的分区。
需要说明的是,为达到将kernel bin和app bin的空间等分的目的,对kernel升级和app升级均可以占用app bin的空间。
可选的,在上述步骤S302至步骤S304中,在kernel中的FOTA组件与远程服务器进行交互的过程中,若发升级组件类型为内核,则从远端服务器下载kernel bin,写入app所在的分区,也即,将下载kernel bin的下载地址覆盖在app bin位置。
步骤S306,重启进入启动装载状态,将上述应用所在的分区内的上述内核升级包写入上述内核所在的分区。
在上述步骤S306中,在下载完kernel bin之后进行重启,Boot Loader对kernelbin进行校验,并将kernel bin从app所在的空间位置,搬运到(写入)kernel所在的空间位置,并跳转到kernel;kernel的FOTA组件继续对app bin进行升级,可选的,仍然可以按照之前的app升级方式进行升级,从而完成kernel bin的升级。
需要说明的是,如果在搬运kernel bin的过程中出现断电,则在Boot Loader中进行校验并再次对kernel bin进行搬运。
作为一种可选的实施方式,在上述步骤S305之后,也即将内核备份分区中的内核升级包拷贝至内核所在的分区之后,如图4所示,上述升级方法还包括如下方法步骤:
步骤S401,通过循环冗余算法对升级后的内核进行完整性校验;
步骤S403,在校验成功的情况下,启动升级后的内核,并上报升级后的内核的版本信息。
需要说明的是,本申请还可以在上述步骤S306之后,也即,在将所述应用所在的分区内的所述内核升级包写入所述内核所在的分区之后,执行上述步骤S401至步骤S403所提供的可选实施方式。
基于上述步骤S401至步骤S403所提供的可选方案,可以通过上述启动装载中的校验固件,根据循环冗余算法对升级后的完整性进行校验,若校验成功,则确定下载过程并未出现错误或者数据丢失,启动升级后的内核,并上报升级后的内核的版本信息,完成升级。
在一种可选的实施例中,图5是根据本发明实施例的一种可选的升级方法的步骤流程图,如图5所示,在根据升级地址,获取应用升级包之前,上述升级方法还包括如下步骤:
步骤S501,将得到的升级地址存储至存储介质;
步骤S503,重启进入内核状态,从存储介质读取升级地址,触发根据升级地址,获取应用升级包。
在一种可选的实施例中,在解析升级报文得到URL地址之后,可以将该URL地址,存储至嵌入式设备的存储介质(例如,Nor-Flash介质)中,重启进入内核状态,从Nor-Flash介质中读取URL地址,触发上述步骤S103,根据上述读取得到的URL地址,获取应用升级包。
为便于理解本申请,根据本发明实施例,本申请还提供了一种可选的实施方式对本申请进行说明,图6是根据本申请实施例的一种可选的升级方法的步骤流程图,如图6所示,本申请提供的升级方法可以通过如下步骤实现:
步骤S1:解析接收到的升级报文,得到升级组件类型和升级地址。
可选的,可以在接收到升级指令的情况下,执行上述步骤S1中,上述升级地址可以为升级组件的URL地址。
步骤S2,确定升级组件类型是否为应用。
具体的,若升级组件类型为应用,则进入步骤S3,若升级组件类型为内核,则进入步骤S6。
步骤S3,升级组件类型为应用,则重启进入内核状态。
具体的,在上述步骤S3中,重启进入内核状态触发步骤S4。
步骤S4,根据升级地址,获取升级包。
具体的,上述升级地址可以为:上述存储介质中存储的URL地址,该URL地址可以用于指示应用升级包的地址。
步骤S5,将升级包写入升级组件类型对应的待升级对象所在的分区。
在上述步骤S5中,该升级包为应用升级包。
步骤S6,根据升级地址下载内核升级包。
具体的,可以根据解析得到的待升级内核固件的URL地址,下载待升级内核的升级包。
步骤S7,将内核升级包写入内核备份分区。
步骤S8,重启进入启动装载状态,将所述内核备份分区中的内核升级包拷贝至内核所在的分区。
为解决现有技术中存在的上述技术问题,本申请还提供了另外一种可选的方案,在执行上述步骤S101之后,也即在解析获取到的升级报文,得到升级组件类型和升级地址之后,上述方法还包括:重启进入启动装载状态,触发根据升级地址,获取升级包。
需要说明的是,在上述可选的实施方式中,可以在启动装载植入升级通道和网络协议栈,从而能完成应用和内核的无备份固件的升级和更新。
在一种可选的实施例中,由于在上述启动装载(Boot Loader)植入升级通道和网络协议栈,在解析获取到的升级报文,得到升级组件类型和升级地址之后,无需考虑待升级对象是应用或是内核,均可以重启进入启动装载状态,并重启进入启动装载状态,触发根据升级地址来下载与待升级对象对应的升级包。
在一种可选的实施例中,如果待升级对象是应用,则启动装载从嵌入式设备的存储介质中,读取URL地址,基于该URL地址下载应用的升级包,并直接将该应用的升级包写入应用所在分区,通过消息摘要算法进行固件完整性校验,如果检测出下载应用的升级包时出错,则重启之后重新下载应用固件即可实现升级和更新。
在另一种可选的实施例中,如果待升级对象是内核,则启动装载从嵌入式设备的存储介质中,读取内核固件的URL地址,基于该URL地址下载内核的升级包,并直接将该内核的升级包写入内核所在分区,通过消息摘要算法进行固件完整性校验,如果检测出下载内核的升级包时出错,则重启之后重新下载内核固件即可实现升级和更新。
基于上述可选的实施方式,从而能够实现无需备份应用固件和内核固件,根据上述启动装载提供的植入升级通道,直接完成应用和内核的升级和更新。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述升级方法的升级装置,图7是根据本发明实施例的一种升级装置的结构示意图,如图7所示,上述升级装置包括如下模块:解析模块10、获取模块12和写入模块14,其中,
解析模块10,用于解析接收到的升级报文,得到升级组件类型和升级地址;获取模块12,用于若升级组件类型为应用,根据升级地址,获取应用升级包;写入模块14,用于将应用升级包写入应用所在的分区。
此处需要说明的是,上述解析模块10、获取模块12和写入模块14对应于实施例1中的步骤S101至步骤S105,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例3提供的计算机终端中。
基于上述实施例所限定的方案可以获知,解析模块,用于解析接收到的升级报文,得到升级组件类型和升级地址;获取模块,用于若升级组件类型为应用,根据升级地址,获取应用升级包;写入模块,用于将应用升级包写入应用所在的分区。
容易注意到的是,由于在实际的应用环境中,内核的代码较为稳定,一般不需要进行升级或更新,应用主要为业务逻辑代码,更新频率较高,为了满足业务方频繁更新应用的需求,且不需要额外的备份分区,本申请上述实施例采用直接将应用升级包写入应用所在的分区的方式,因而可以实现在嵌入式设备升级应用的过程中,无需备份应用的升级固件,即可直接写入应用所在的分区,完成应用的升级或更新。
通过本申请上述实施例所提供的方案,达到了无需备份应用的升级固件即可完成应用升级的目的,从而实现了减少存储介质的空间需求的技术效果,进而解决了现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
在一种可选的实施方式中,上述升级装置还包括如下模块:存储模块,用于将得到的升级地址存储至存储介质;第一触发模块,用于重启进入内核状态,从存储介质读取升级地址,触发根据升级地址,获取应用升级包。
在一种可选的实施方式中,在校验失败的情况下,重新执行根据升级地址,获取应用升级包。
在一种可选的实施方式中,上述升级装置还包括如下模块:第一下载模块,用于若升级组件类型为内核,根据升级地址下载内核升级包;第一备份模块,用于将内核升级包写入内核备份分区;第一拷贝模块,用于重启进入启动装载状态,将内核备份分区中的内核升级包拷贝至内核所在的分区。
在一种可选的实施方式中,上述升级装置还包括如下模块:第二下载模块,用于若所述述升级组件类型为内核,根据所述升级地址下载内核升级包;第二备份模块,用于将所述内核升级包写入所述应用所在的分区;第二拷贝模块,用于重启进入启动装载状态,将所述应用所在的分区内的所述内核升级包写入所述内核所在的分区。
在一种可选的实施方式中,上述升级装置还包括如下模块:第一校验模块,用于通过循环冗余算法对升级后的内核进行完整性校验;第一启动模块,用于在校验成功的情况下,启动升级后的内核,并上报升级后的内核的版本信息。
在一种可选的实施方式中,上述升级装置还包括如下模块:第二触发模块,用于重启进入启动装载状态,触发根据升级地址,获取升级包。
在一种可选的实施方式中,上述升级装置还包括如下模块:第二校验模块,用于通过消息摘要算法对升级后的应用进行固件完整性校验;第二启动模块,用于在校验成功的情况下,启动升级后的应用,并上报升级后的应用的版本信息。
需要说明的是,本实施例的优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例3
根据本发明实施例,还提供了一种可以实现上述升级方法的嵌入式系统,需要说明的是,参照上述实施例1所描述本申请的各实施方式的进一步细节,将参考图8来描述可用于实现本申请原理的一个合适的嵌入式系统。
图8是根据本申请实施例的一种嵌入式系统的结构示意图,出于描述的目的,所绘结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应将该嵌入式系统,解释为对图8所示的任一组件或其组合具有任何依赖或需求。
如图8所示,上述嵌入式系统,包括:应用可执行文件80以及内核服务可执行文件82;其中,
上述内核服务可执行文件设置有对外统一的接口84,应用可执行文件包括根据上述接口编写的应用,在上述编写应用的过程中,通过调用所述接口进行编程。
具体的,上述应用程序可执行文件,也即app bin,可以由编译系统生成,在一种可选的实施例中,开发者可以在IDE开发环境下,根据servicecall接口和syscall接口编写app bin。
在一种可选的实施方式中,如图9所示,上述内核服务可执行文件82包括内核可执行文件821以及服务框架层可执行文件823;
其中,上述内核可执行文件821设置有内核提供的第一接口8211,上述服务框架层可执行文件823设置有服务框架层提供的第二接口8231,上述应用可执行文件包括根据上述第一接口与上述第二接口编写的应用。
具体的,上述第一接口8211为syscall接口,上述第二接口8231为service call接口。
作为一种可选的实施方式,在编写app程序的过程中,可以通过调用frameworkbin所提供对外的统一API:service call接口,以及kernel bin所提供的对外的统一API:syscall接口进行编程。
需要说明的是,上述service call接口和syscall接口并不限定于两个接口,而是两个接口模块,可以为多个接口。
本申请实施例的一种可选的0-Flash升级空间的多bin升级的空间布局如图10所示,可选的,上述kernel bin包括但不限于:kernel组件和非必须组件。
关于上述syscall接口,需要说明的是,其作为kernel所提供的系统接口,可以根据需求实现系统调用方式(也即,SWI系统调用方式)和非系统调用方式(也即,将接口存储在一个数组中,根据API编号进行调用)。
此外,上述syscall接口所实现的任意一种调用方式,均需要保持对外接接口的一致性。
可选的,上述framework bin包括但不限于:framework组件和非必须组件。
关于上述service call接口,需要说明的是,其作为framework提供的service接口,可以单不限于使用非系统调用方式进行调用。
在一种可选的实施方式中,在编译目标组件的过程中,根据上述应用可执行文件、上述服务框架层可执行文件以及上述内核可执行文件的空间大小,确定将上述目标组件编译在上述应用可执行文件、上述服务框架层可执行文件或上述内核可执行文件中。
在一种可选的实施方式中,上述根据上述应用可执行文件、上述服务框架层可执行文件以及上述内核可执行文件的空间大小,确定将上述目标组件编译在上述应用可执行文件、上述服务框架层可执行文件或上述内核可执行文件中,包括:
将上述目标组件编译在上述应用可执行文件、上述服务框架层可执行文件以及上述内核可执行文件中空间大小最小的可执行文件中。
基于本申请所提供的实施例,无需提供备份区域,并且通过灵活编译kernel bin和app bin,从而使得kernel bin和app bin的执行文件的空间大小布局相等。
需要说明的是,为达到将kernel bin和app bin的空间等分的目的,对kernel升级和app升级均可以占用app bin的空间。
此外,还需说明的是,为了等比例分配kernel bin空间和app bin空间,为0-Flash(无备份区域)升级空间奠定基础,可以依托操作系统高度弹性的优点,对非必须组件(也即,并非必须要求在kernel bin或者app bin进行编译的组件)进行选择性编译,即既可以编译在kernel bin又可以编译在app bin,并且,对外接口需要统一,且向前兼容。
基于上述实施例,本申请还提供了一种可选的无需提供Flash空间的多bin升级方案,并通过如下可选的实施方式对app bin的升级流程进行说明:
作为一种可选的实施例,如图11所示,在kernel bin中的FOTA组件和远端服务器进行交互的过程中,根据解析接收到的升级报文,确定待升级固件的类型为app,则从远端服务器下载app bin升级包,准备进行app升级。
进一步的,FOTA组件把远端服务器的升级app bin下载到原来app bin的空间中。
更进一步的,待更新的app bin下载完毕之后,kernel触发系统重启,在kernel中对下载的app bin进行检验,若校验成功则跳转到app bin空间执行,实现app bin的升级;
需要说明的是,如果在升级app的过程中发生断电情况,在重新上电开机的过程中,继续对app bin进行校验,如果校验未成功,FOTA组件会和远端服务器进行交互,重新对app bin进行升级。
此外,仍存在一种可选的实施例,如图12所示,本申请所提供的无需提供Flash空间的多bin升级方案中,还可以通过如下可选的实施方式对kernel bin进行升级:
在kernel bin中的FOTA组件和远端服务器进行交互的过程中,根据解析接收到的升级报文,确定待升级固件的类型为kernel,则从远端服务器下载kernel bin升级包,准备进行kernel升级。
为达到将kernel bin和app bin的空间等分的目的,对kernel升级和app升级均可以占用app bin的空间,FOTA组件从远端服务器下载kernel bin,并写入app所在的分区,也即,将kernel bin的下载地址覆盖在app bin的空间位置。
如图13所示,在下载完kernel bin之后进行重启,Boot Loader对kernel bin进行校验,并将kernel bin从app所在的空间位置,搬运到(写入)kernel所在的空间位置,并跳转到kernel;kernel的FOTA组件继续对app bin进行升级,可选的,仍然可以按照之前的app升级方式进行升级,从而完成kernel bin的升级。
需要说明的是,如果在搬运kernel bin的过程中出现断电,则在Boot Loader中进行校验并再次对kernel bin进行搬运。
需要说明的是,本实施例的优选实施方式可以参见实施例1和实施例2中的相关描述,此处不再赘述。
实施例4
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的升级方法中以下步骤的程序代码:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
图14示出了一种计算机终端的硬件结构框图。如图14所示,计算机终端14可以包括一个或多个(图中采用142a、142b,……,142n来示出)处理器142(处理器142可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器144、以及用于通信功能的传输装置146。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端14还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
应当注意到的是上述一个或多个处理器142和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端14中的其他元件中的任意一个。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
处理器142可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
存储器144可用于存储应用软件的软件程序以及模块,如本申请实施例中的升级方法对应的程序指令/数据存储装置,处理器142通过运行存储在存储器144内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的升级方法。存储器144可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器144可进一步包括相对于处理器142远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端14。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置146用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端14的通信供应商提供的无线网络。在一个实例中,传输装置146包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置146可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端14的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图14所示的计算机终端14可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图14仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端14中的部件的类型。
在本实施例中,上述计算机终端,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
可选的,上述处理器还可以执行如下步骤的程序代码:将得到的升级地址存储至存储介质;重启进入内核状态,从存储介质读取升级地址,触发根据升级地址,获取应用升级包。
可选的,上述处理器还可以执行如下步骤的程序代码:通过消息摘要算法对升级后的应用进行固件完整性校验;在校验成功的情况下,启动升级后的应用,并上报升级后的应用的版本信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在校验失败的情况下,重新执行根据升级地址,获取应用升级包。
可选的,上述处理器还可以执行如下步骤的程序代码:若升级组件类型为内核,根据升级地址下载内核升级包;将内核升级包写入内核备份分区;重启进入启动装载状态,将内核备份分区中的内核升级包拷贝至内核所在的分区。
可选的,上述处理器还可以执行如下步骤的程序代码:若所述述升级组件类型为内核,根据所述升级地址下载内核升级包;将所述内核升级包写入所述应用所在的分区;重启进入启动装载状态,将所述应用所在的分区内的所述内核升级包写入所述内核所在的分区。
可选的,上述处理器还可以执行如下步骤的程序代码:通过循环冗余算法对升级后的内核进行完整性校验;在校验成功的情况下,启动升级后的内核,并上报升级后的内核的版本信息。
可选的,上述处理器还可以执行如下步骤的程序代码:若所述升级组件类型为内核,根据所述升级地址下载内核升级包;将所述内核升级包写入内核备份分区;重启进入启动装载状态,将所述内核备份分区中的所述内核升级包拷贝至所述内核所在的分区。可选的,上述处理器还可以执行如下步骤的程序代码:重启进入启动装载状态,触发根据升级地址,获取升级包。
采用本发明实施例,提供了一种升级应用的方案。通过解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区,从而达到了无需备份应用的升级固件即可完成应用升级的目的,进而解决了现有的升级方式需要为升级固件提供备份区域,导致资源浪费且升级效率较低的技术问题。
本领域普通技术人员可以理解,图14所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的升级方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:解析接收到的升级报文,得到升级组件类型和升级地址;若升级组件类型为应用,根据升级地址,获取应用升级包;将应用升级包写入应用所在的分区。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将得到的升级地址存储至存储介质;重启进入内核状态,从存储介质读取升级地址,触发根据升级地址,获取应用升级包。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过消息摘要算法对升级后的应用进行固件完整性校验;在校验成功的情况下,启动升级后的应用,并上报升级后的应用的版本信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将得到的升级地址存储至存储介质;重启进入内核状态,从存储介质读取升级地址,触发根据升级地址,获取应用升级包。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过消息摘要算法对升级后的应用进行固件完整性校验;在校验成功的情况下,启动升级后的应用,并上报升级后的应用的版本信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在校验失败的情况下,重新执行根据升级地址,获取应用升级包。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:若所述升级组件类型为内核,根据所述升级地址下载内核升级包;将所述内核升级包写入内核备份分区;重启进入启动装载状态,将所述内核备份分区中的所述内核升级包拷贝至所述内核所在的分区。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:若所述述升级组件类型为内核,根据所述升级地址下载内核升级包;将所述内核升级包写入所述应用所在的分区;重启进入启动装载状态,将所述应用所在的分区内的所述内核升级包写入所述内核所在的分区。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:重启进入启动装载状态,触发根据升级地址,获取升级包。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种升级方法,其特征在于,包括:
解析接收到的升级报文,得到升级组件类型和升级地址;
若所述升级组件类型为应用,根据所述升级地址,获取应用升级包;
将所述应用升级包写入所述应用所在的分区。
2.根据权利要求1所述的方法,其特征在于,根据所述升级地址,获取应用升级包之前,所述方法还包括:
将得到的所述升级地址存储至存储介质;
重启进入内核状态,从所述存储介质读取所述升级地址。
3.根据权利要求1或2所述的方法,其特征在于,将所述应用升级包写入所述应用所在的分区之后,所述方法还包括:
通过消息摘要算法对升级后的所述应用进行完整性校验;
在校验成功的情况下,启动升级后的所述应用,并上报升级后的所述应用的版本信息。
4.根据权利要求3所述的方法,其特征在于,在校验失败的情况下,重新执行所述根据所述升级地址,获取应用升级包。
5.根据权利要求1所述的方法,其特征在于,还包括:
若所述述升级组件类型为内核,根据所述升级地址下载内核升级包;
将所述内核升级包写入所述应用所在的分区;
重启进入启动装载状态,将所述应用所在的分区内的所述内核升级包写入所述内核所在的分区。
6.根据权利要求1所述的方法,其特征在于,还包括:
若所述升级组件类型为内核,根据所述升级地址下载内核升级包;
将所述内核升级包写入内核备份分区;
重启进入启动装载状态,将所述内核备份分区中的所述内核升级包复制至所述内核所在的分区。
7.根据权利要求6所述的方法,其特征在于,将所述内核备份分区中的所述内核升级包复制至所述内核所在的分区之后,所述方法还包括:
通过循环冗余算法对升级后的所述内核进行完整性校验;
在校验成功的情况下,启动升级后的所述内核,并上报升级后的所述内核的版本信息。
8.一种嵌入式系统,其特征在于,包括:应用可执行文件以及内核服务可执行文件;
其中,
所述内核服务可执行文件设置有对外统一的接口,所述应用可执行文件包括根据所述接口编写的应用,在所述编写应用的过程中,通过调用所述接口进行编程。
9.根据权利要求8所述的系统,其特征在于,内核服务可执行文件包括内核可执行文件以及服务框架层可执行文件;其中,
所述内核可执行文件设置有内核提供的第一接口,所述服务框架层可执行文件设置有服务框架层提供的第二接口,所述应用可执行文件包括根据所述第一接口与所述第二接口编写的应用。
10.根据权利要求9所述的系统,其特征在于,在编译目标组件的过程中,根据所述应用可执行文件、所述服务框架层可执行文件以及所述内核可执行文件的空间大小,确定将所述目标组件编译在所述应用可执行文件、所述服务框架层可执行文件或所述内核可执行文件中。
11.根据权利要求10所述的系统,其特征在于,所述根据所述应用可执行文件、所述服务框架层可执行文件以及所述内核可执行文件的空间大小,确定将所述目标组件编译在所述应用可执行文件、所述服务框架层可执行文件或所述内核可执行文件中,包括:
将所述目标组件编译在所述应用可执行文件、所述服务框架层可执行文件以及所述内核可执行文件中空间大小最小的可执行文件中。
12.一种升级装置,其特征在于,包括:
解析模块,用于解析接收到的升级报文,得到升级组件类型和升级地址;
获取模块,用于若所述升级组件类型为应用,根据所述升级地址,获取应用升级包;
写入模块,用于将所述应用升级包写入所述应用所在的分区。
13.一种计算机终端,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:解析接收到的升级报文,得到升级组件类型和升级地址;若所述升级组件类型为应用,根据所述升级地址,获取应用升级包;将所述应用升级包写入所述应用所在的分区。
14.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的升级方法。
15.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/107291 WO2019062703A1 (zh) | 2017-09-26 | 2018-09-25 | 升级方法、嵌入式系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017108850559 | 2017-09-26 | ||
CN201710885055 | 2017-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109558160A true CN109558160A (zh) | 2019-04-02 |
Family
ID=65864231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710938082.8A Pending CN109558160A (zh) | 2017-09-26 | 2017-09-30 | 升级方法、嵌入式系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109558160A (zh) |
WO (2) | WO2019062635A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275728A (zh) * | 2019-06-28 | 2019-09-24 | 瓴盛科技有限公司 | 更新固件的系统及其方法 |
CN110442548A (zh) * | 2019-10-09 | 2019-11-12 | 广东高云半导体科技股份有限公司 | 片上系统及其接口数据处理方法和装置 |
CN110764813A (zh) * | 2019-10-31 | 2020-02-07 | 京东方科技集团股份有限公司 | 系统软件的升级方法及其运行方法 |
CN110990036A (zh) * | 2019-11-12 | 2020-04-10 | 上海钧正网络科技有限公司 | 换电柜ota升级方法、装置、换电设备和存储介质 |
CN111045712A (zh) * | 2019-12-17 | 2020-04-21 | 杭州涂鸦信息技术有限公司 | 一种具有备份功能的单系统升级方法及系统 |
CN111050313A (zh) * | 2019-12-05 | 2020-04-21 | 上海新微技术研发中心有限公司 | 低速率无线通信快速ota的方法 |
CN112256283A (zh) * | 2020-09-27 | 2021-01-22 | 苏宁智能终端有限公司 | 用于Android设备的应用版本管控方法及装置 |
CN112416392A (zh) * | 2020-11-17 | 2021-02-26 | 四川长虹电器股份有限公司 | 一种基于端云的终端固件动态加载方法 |
CN112631637A (zh) * | 2020-12-30 | 2021-04-09 | 重庆芯讯通无线科技有限公司 | 基于rtos的ota升级方法、系统、设备及存储介质 |
CN113885921A (zh) * | 2021-11-09 | 2022-01-04 | 南京慧尔视智能科技有限公司 | 一种嵌入式系统更新的方法及设备 |
CN115442353A (zh) * | 2022-11-07 | 2022-12-06 | 成都睿乐达机器人科技有限公司 | 一种基于物联网设备的应用升级方法及装置 |
WO2023092994A1 (zh) * | 2021-11-24 | 2023-06-01 | 青岛海尔科技有限公司 | 嵌入式软件的加密式差分升级方法、装置、设备及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134426A (zh) * | 2019-04-18 | 2019-08-16 | 深圳市致宸信息科技有限公司 | 一种嵌入式系统升级方法、装置及终端设备 |
CN110187909B (zh) * | 2019-06-03 | 2023-04-14 | 山东海格尔信息技术股份有限公司 | 一种基于安卓系统的单片机固件升级方法 |
CN112559002A (zh) * | 2019-09-26 | 2021-03-26 | 上海汽车集团股份有限公司 | 车辆应用的更新方法、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253850A (zh) * | 2011-07-08 | 2011-11-23 | 烽火通信科技股份有限公司 | Iptv机顶盒增量式软件升级方法 |
US20150149989A1 (en) * | 2013-11-26 | 2015-05-28 | Inventec Corporation | Server system and update method thereof |
CN106020884A (zh) * | 2016-05-20 | 2016-10-12 | 江苏华辉云控科技有限公司 | 网络摄像机系统在线升级方法 |
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
CN106484450A (zh) * | 2015-08-28 | 2017-03-08 | 青岛海信移动通信技术股份有限公司 | 一种软件升级方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631239B2 (en) * | 2012-01-12 | 2014-01-14 | Facebook, Inc. | Multiple system images for over-the-air updates |
US9104520B2 (en) * | 2013-04-28 | 2015-08-11 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for upgrading application |
CN103313229B (zh) * | 2013-05-27 | 2017-04-19 | 华为终端有限公司 | 一种空中下载技术升级的方法及设备 |
CN103580921A (zh) * | 2013-11-08 | 2014-02-12 | 深圳市共进电子股份有限公司 | 一种网络设备自动升级的方法及自动升级系统 |
CN103995721B (zh) * | 2014-05-22 | 2018-01-23 | 广州金山网络科技有限公司 | 一种应用程序的升级方法、装置及系统 |
CN105227600A (zh) * | 2014-06-17 | 2016-01-06 | 上海酷宇通讯技术有限公司 | 移动设备系统升级的方法 |
CN104536775A (zh) * | 2014-11-26 | 2015-04-22 | 四川长虹电器股份有限公司 | 一种Android平台下预置应用的升级方法及系统 |
CN104750527A (zh) * | 2015-03-27 | 2015-07-01 | 广州快飞计算机科技有限公司 | 一种嵌入式系统升级方法及系统 |
CN105208447A (zh) * | 2015-09-28 | 2015-12-30 | 北京赛科世纪科技股份有限公司 | 机顶盒升级方法、装置及机顶盒 |
CN105867962A (zh) * | 2015-12-07 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 系统升级的方法和装置 |
-
2017
- 2017-09-30 CN CN201710938082.8A patent/CN109558160A/zh active Pending
-
2018
- 2018-09-20 WO PCT/CN2018/106657 patent/WO2019062635A1/zh active Application Filing
- 2018-09-25 WO PCT/CN2018/107291 patent/WO2019062703A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253850A (zh) * | 2011-07-08 | 2011-11-23 | 烽火通信科技股份有限公司 | Iptv机顶盒增量式软件升级方法 |
US20150149989A1 (en) * | 2013-11-26 | 2015-05-28 | Inventec Corporation | Server system and update method thereof |
CN106484450A (zh) * | 2015-08-28 | 2017-03-08 | 青岛海信移动通信技术股份有限公司 | 一种软件升级方法及装置 |
CN106020884A (zh) * | 2016-05-20 | 2016-10-12 | 江苏华辉云控科技有限公司 | 网络摄像机系统在线升级方法 |
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275728A (zh) * | 2019-06-28 | 2019-09-24 | 瓴盛科技有限公司 | 更新固件的系统及其方法 |
CN110275728B (zh) * | 2019-06-28 | 2023-11-07 | 瓴盛科技有限公司 | 更新固件的系统及其方法 |
CN110442548A (zh) * | 2019-10-09 | 2019-11-12 | 广东高云半导体科技股份有限公司 | 片上系统及其接口数据处理方法和装置 |
CN110442548B (zh) * | 2019-10-09 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 片上系统及其接口数据处理方法和装置 |
CN110764813A (zh) * | 2019-10-31 | 2020-02-07 | 京东方科技集团股份有限公司 | 系统软件的升级方法及其运行方法 |
CN110990036A (zh) * | 2019-11-12 | 2020-04-10 | 上海钧正网络科技有限公司 | 换电柜ota升级方法、装置、换电设备和存储介质 |
CN111050313A (zh) * | 2019-12-05 | 2020-04-21 | 上海新微技术研发中心有限公司 | 低速率无线通信快速ota的方法 |
CN111045712A (zh) * | 2019-12-17 | 2020-04-21 | 杭州涂鸦信息技术有限公司 | 一种具有备份功能的单系统升级方法及系统 |
CN112256283A (zh) * | 2020-09-27 | 2021-01-22 | 苏宁智能终端有限公司 | 用于Android设备的应用版本管控方法及装置 |
CN112416392A (zh) * | 2020-11-17 | 2021-02-26 | 四川长虹电器股份有限公司 | 一种基于端云的终端固件动态加载方法 |
CN112631637A (zh) * | 2020-12-30 | 2021-04-09 | 重庆芯讯通无线科技有限公司 | 基于rtos的ota升级方法、系统、设备及存储介质 |
CN113885921A (zh) * | 2021-11-09 | 2022-01-04 | 南京慧尔视智能科技有限公司 | 一种嵌入式系统更新的方法及设备 |
WO2023092994A1 (zh) * | 2021-11-24 | 2023-06-01 | 青岛海尔科技有限公司 | 嵌入式软件的加密式差分升级方法、装置、设备及介质 |
CN115442353A (zh) * | 2022-11-07 | 2022-12-06 | 成都睿乐达机器人科技有限公司 | 一种基于物联网设备的应用升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019062703A1 (zh) | 2019-04-04 |
WO2019062635A1 (zh) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558160A (zh) | 升级方法、嵌入式系统 | |
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
KR100584338B1 (ko) | 소프트웨어 업데이트 방법 및 시스템 | |
US8539471B2 (en) | Updating firmware of an electronic device | |
US8196130B2 (en) | Tri-phase boot process in electronic devices | |
Reijers et al. | Efficient code distribution in wireless sensor networks | |
US8719810B2 (en) | Program upgrade system and method for over the air-capable mobile terminal | |
CN102830984B (zh) | 固件更新的方法、芯片以及通信终端 | |
CN102945176B (zh) | 终端设备开机、升级方法和设备 | |
US20070294686A1 (en) | Program upgrade system and method for ota-capable device | |
KR20050061378A (ko) | 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법 | |
Langiu et al. | Upkit: An open-source, portable, and lightweight update framework for constrained iot devices | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN110007935B (zh) | 一种程序升级的处理方法、装置及设备 | |
TW201621647A (zh) | 作業系統更新方法 | |
CN106020882A (zh) | 一种应用升级方法、智能终端及升级系统 | |
CN112130926B (zh) | 应用程序运行的方法、装置、终端设备及存储介质 | |
CN105700900B (zh) | 一种优化无线局域网功能的方法及装置 | |
KR100986487B1 (ko) | 고장 허용 갱신 에이전트를 구비한 모바일 핸드세트 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
WO2024131374A1 (zh) | 机顶盒跨系统升级方法、装置、机顶盒及存储介质 | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
WO2023198056A1 (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN112667444A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190402 |