CN112667266A - 固件升级方法、装置、设备和存储介质 - Google Patents

固件升级方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112667266A
CN112667266A CN202110093721.1A CN202110093721A CN112667266A CN 112667266 A CN112667266 A CN 112667266A CN 202110093721 A CN202110093721 A CN 202110093721A CN 112667266 A CN112667266 A CN 112667266A
Authority
CN
China
Prior art keywords
firmware
partition
upgrading
ota
rollback
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.)
Granted
Application number
CN202110093721.1A
Other languages
English (en)
Other versions
CN112667266B (zh
Inventor
王泰格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110093721.1A priority Critical patent/CN112667266B/zh
Publication of CN112667266A publication Critical patent/CN112667266A/zh
Application granted granted Critical
Publication of CN112667266B publication Critical patent/CN112667266B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种固件升级方法、装置、设备和存储介质,涉及数据处理技术领域,尤其涉及物联网技术。该固件升级方法,应用于设置有固件分区和附属分区的计算设备;附属分区的存储空间小于固件分区的存储空间,包括:在固件分区中的系统程序运行过程中,基于固件分区设置的OTA模块向OTA服务器发送升级请求;若请求通过,则基于附属分区设置的OTA模块从OTA服务器中下载升级数据,并根据升级数据对固件分区中的原始固件进行刷写。本申请仅需附属分区中的OTA模块进行升级数据的下载和对原始固件的升级,无需附属分区存储完整的固件系统,因此对附属分区的存储空间要求较小,提高了固件升级方法在不同存储空间大小的计算设备的通用性。

Description

固件升级方法、装置、设备和存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及物联网技术。
背景技术
计算设备例如嵌入式设备,在使用过程中,由于缺陷修复、兼容性问题、功能优化或功能新增等需求,通常存在需要对计算设备中的固件进行升级的情况。
现有技术通常会预先在计算设备中设置两个固件分区用于分别运行完整系统,并在需要升级时通过当前使用固件分区刷写另一固件分区,并在升级完成之后进行固件分区的切换使用。
然而上述方式仅适用于硬件资源丰富的计算设备,无法适用于硬件资源有限的计算设备,通用性较差。
发明内容
本申请提供了一种通用性更好的固件升级方法、装置、设备和存储介质。
根据本申请的一方面,提供了一种固件升级方法,应用于计算设备,所述计算设备设置有固件分区和附属分区;其中,所述附属分区的存储空间小于所述固件分区的存储空间,所述方法包括:
在所述固件分区中的系统程序运行过程中,基于所述固件分区设置的空中下载OTA模块向OTA服务器发送升级请求;
若请求通过,则基于所述附属分区设置的OTA模块从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写。
根据本申请的另一方面,提供了还一种固件升级装置,配置于计算设备,所述计算设备设置有固件分区和附属分区;其中,所述附属分区的存储空间小于所述固件分区的存储空间,所述装置包括:
升级请求发送模块,用于在所述固件分区中的系统程序运行过程中,基于所述固件分区设置的空中下载OTA模块向OTA服务器发送升级请求;
固件升级模块,用于若请求通过,则基于所述附属分区设置的OTA模块从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写。
根据本申请的另一方面,提供了还一种计算设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器中设置有固件分区和附属分区;所述附属分区的存储空间小于所述固件分区的存储空间;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任意一种固件升级方法。
根据本申请的另一方面,提供了还一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请实施例提供的任意一种固件升级方法。
根据本申请的另一方面,提供了还一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本申请实施例提供的任意一种固件升级方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请提供的一种现有的固件升级系统的结构示意图;
图2是本申请实施例提供的一种固件升级系统的结构示意图;
图3是本申请实施例提供的一种固件升级方法的流程图;
图4是本申请实施例提供的一种附件分区的结构示意图;
图5是本申请实施例提供的另一种固件升级系统的结构示意图;
图6是本申请实施例提供的另一种固件升级系统的结构示意图;
图7是本申请实施例提供的一种固件升级装置的结构图;
图8是用来实现本申请实施例的固件升级方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了便于对本申请技术方案的理解,首先对现有技术中的固件升级方式进行详细说明。
参见图1所示的一种现有的固件升级系统的结构示意图,其中,该固件升级系统包括计算设备10和OTA服务器20。
在该计算设备10中包括固件分区11和固件分区12,并设置有BootLoader(引导装载程序)。
其中,固件分区11和固件分区12中分别设置有系统固件,使得两个固件分区均可以运行完整系统。该计算设备10的运行升级机制如下:
①、计算设备10开启,BootLoader控制计算设备10进入当前启动分区固件分区11运行系统;
②、系统运行过程中需要进行固件升级时,通过固件分区11中设置的OTA(On theAir,空中下载)模块向OTA服务器20发生发送升级请求,并在请求通过后下载升级数据;
③、OTA模块根据升级数据对固件分区12中的原始固件进行刷写,以生成目标固件;
④、固件升级完成后,BootLoader将下次启动分区切换至固件分区12,以在计算设备10下次启动后,通过BootLoader控制计算设备10进入固件分区12运行系统。
上述方式能够保证固件升级过程的绝对可靠,但是需要计算设备能够完整的方向两个系统固件,因此其对计算设备硬件性能要求比较高。因此,上述固件升级方式无法适配硬件性能较低的计算设备,通用性较差。
本申请实施例提供的各固件升级方法和固件升级装置,适用于对计算设备,特别是硬件性能有限的嵌入式设备,进行固件升级的情况。本申请中的各固件升级方法,可以由固件升级装置执行,该固件升级装置可以通过软件和/或硬件实现,并具体配置于计算设备中。其中,计算设备可以是物联网设备,例如嵌入式设备。
以下将对固件升级方法相关内容进行解释说明。为了便于方案描述,首先对本申请所涉及的固件升级系统的系统结构进行详述。
参见图2所示的一种固件升级系统的结构示意图。该固件升级系统包括计算设备30和OTA服务器40。
其中,OTA服务器40用于为计算设备30提供升级数据。
其中,计算设备30包括固件分区31和附属分区32。
固件分区31中设置有原始固件,用于基于原始固件进行系统运行。固件分区31中还设置有OTA模块,用于在固件分区31中进行系统运行时,实现计算设备30与OTA服务器40之间的数据传输。
附属分区32的存储空间小于固件分区31的存储空间。附属分区32中设置有OTA模块,用于在附属分区32中进行系统运行时,实现计算设备30与OTA服务器40之间的数据传输。
计算设备30中还设置有BootLoader,用于引导计算设备30在不同阶段进入相应分区进行系统运行。
基于图2所示的固件升级系统,本申请提供了一种固件升级方法,参见图3,该固件升级方法,包括:
S101、在固件分区中的系统程序运行过程中,基于固件分区设置的空中下载OTA模块向OTA服务器发送升级请求。
其中,系统程序可以是基于RTOS(Real Time Operating System,实时操作系统)、或Linux系统的实现程序等。需要说明的是,本申请对计算设备所依赖的操作系统不做任何限定,本领域技术人员可以根据需要对计算设备的操作系统以及系统程度进行设置或调整。
结合图2可知,在计算设备30启动时,通过BootLoader引导进入固件分区31进行系统运行(对应①)。在固件分区31中的系统程序运行过程中,当计算设备30由于缺陷修复、兼容性问题、功能优化或功能新增等需求需要进行系统升级时,基于固件分区31中的OTA模块向OTA服务器40发送升级请求,并接收OTA服务器40反馈的请求结果(对应②)。
示例性地,升级请求中可以包括计算设备30的设备标识,以便OTA服务器40基于设备标识对计算设备30的升级权限进行鉴定。
示例性地,升级请求中可以包括版本信息。其中,版本信息可以是原始固件的当前版本,或者是需要将原始固件升级成的目标固件的固件版本,以便OTA服务器40中存储有至少一个版本的固件时,根据版本信息,从存储的包括至少一种版本的固件中,进行目标固件的固件版本的查找获取。
示例性地,升级请求中还可以包括固件描述信息,用于对原始固件或目标固件进行描述,以便在OTA服务器40中存储有至少一个类别的固件时,基于固件描述信息对原始固件或目标固件进行类别定位,便于对原始固件升级成目标固件时对应的升级数据,进行查找获取。
S102、若请求通过,则基于附属分区设置的OTA模块从OTA服务器中下载升级数据,并根据升级数据对固件分区中的原始固件进行刷写。
其中,请求通过可以是满足下述条件中的至少一种:OTA服务器40对计算设备30的升级权限鉴定通过和OTA服务器40能够查找到原始固件对应的升级数据等。
示例性地,若请求通过,则通过BootLoader引导计算设备30进入附属分区32进行系统运行(对应③),并通过附属分区32中的OTA模块从OTA服务器40中进行升级数据下载(对应④)。附件分区32中的OTA模块接收到升级数据后,对固件分区31中的原始固件进行刷写(对应⑤),从而实现对原始固件的升级。相应的,在完成升级后,当重启计算设备30之后,通过BootLoader即可引导计算设备30进入固件分区31进行系统运行(对应⑥)。
示例性地,若请求不通过,则拒绝附属分区设置的OTA模块从OTA服务器中下载升级数据。为了便于用户及时获知计算设备的可升级情况,在请求不通过时,还可以向用户反馈请求未通过的指示信息。
其中,升级数据可以是目标固件的整包数据,还可以是目标固件相较于原始固件的差分包数据。
在一个可选实施例中,从OTA服务器中下载升级数据,并根据升级数据对固件分区中的原始固件进行刷写,可以是:从OTA服务器中下载完整的升级数据,在升级数据下载结束后,根据下载后的升级数据对固件分区中的原始固件进行刷写。
由于目标固件的整包数据的数据量通常高于目标固件相较于原始固件的差分包数据,而附属分区的存储空间较小,通常无法存储完整的固件数据,上述方式仅适用于差分升级的情况,也即升级数据为目标固件相较于原始固件的差分包数据。
为了适配整包升级和差分升级等不同的升级方式,在另一可选实施例中,从OTA服务器中下载升级数据,并根据升级数据对固件分区中的原始固件进行刷写,还可以是:采用流式下载方式从OTA服务器中下载升级数据,并在下载过程中,基于所下载内容对固件分区中的原始固件进行刷写。
可以理解的是,因为流式下载在一次下载过程中仅进行升级数据中部分内容的下载获取,因此在一次下载时所下载内容在附属分区中的存储空间占用量较小。并且,在下载过程中,基于所下载内容对固件分区中的原始固件进行刷写,从而实现对原始固件的流式升级,实现了下载与刷写的并行处理,提高了固件升级效率。另外,通过流失下载和流式升级,能够适配固件整包升级和差分升级等不同的升级方式,通用性更好。
本申请实施例通过在计算设备中设置固件分区和存储空间小于固件分区的附属分区;在固件分区中的系统程序运行过程中,基于固件分区设置的OTA模块向OTA服务器发送升级请求;若请求通过,则基于附属分区设置的OTA模块从OTA服务器中下载升级数据,并根据升级数据对固件分区中原始固件进行刷写。上述技术方案仅需附属分区中的OTA模块进行升级数据的下载和对原始固件的刷写即可,无需附属分区存储完整的固件系统,因此对附属分区的存储空间要求较小,使得上述升级过程能够适配存储空间较小的计算设备,提高了固件升级方法在不同存储空间大小的计算设备的通用性。
当在固件升级过程中由于外界环境等因素导致固件升级失败时,由于原始固件已被部分刷写,导致固件分区中的固件系统已被破坏,此时如果不对外界干扰因素进行校正后重新进行固件升级,将会出现计算设备变砖损坏,影响计算设备的继续使用。
为了避免计算设备在一次升级过程中,由于升级失败导致变砖损坏的情况,本申请还提供了一个可选实施例,在升级失败后能够将计算设备中升级失败的固件回滚至原始固件,从而保证计算设备的正常使用。
示例性地,在根据升级数据对固件分区中的原始固件进行刷写之前,还可以基于附属分区设置的OTA模块,将原始固件进行压缩,得到备份固件,并存储于附属分区。相应的,接收到回滚指令;响应于回滚指令,基于回滚代码逻辑,根据备份固件对固件分区中的当前固件进行回滚,得到备份固件对应的原始固件。其中,可以采用现有技术中的任意一种压缩算法或至少两种压缩算法的组合,实现对原始固件的压缩处理,本申请对具体采用的压缩算法和压缩方式不做任何限定。
其中,当前固件为计算设备的固件分区当前采用的固件,或对原始固件进行部分刷写后的固件。
需要说明的是,对固件分区中的原始固件进行备份可以在计算设备中原始固件初次生成时进行、计算设备正常运行时、在固件分区中的OTA模块向OTA服务器发送升级请求时执行、固件分区中的OTA模块接收到OTA服务器基于升级请求的请求结果反馈时、或者在固件分区中的OTA模块向OTA服务器发送升级请求之后且在根据升级数据对固件分区中的原始固件进行刷写之前执行即可。本申请实施例对原始固件的具体备份时机不做任何限定。
可以理解的是,在计算设备正常运行时、在固件分区中的OTA模块向OTA服务器发送升级请求时、或者在固件分区中的OTA模块接收到OTA服务器基于升级请求的请求结果反馈时,计算设备均在固件分区中进行系统运行。此时,如果采用附属分区设置的OTA模块进行原始固件备份,需要进行分区切换,过程繁琐、执行效率较低。此时,还可以直接通过固件分区中的OTA模块将原始固件进行压缩,得到备份固件。
由于备份固件为对原始固件压缩后的结果,因此备份固件的存储空间占用量远小于原始固件的存储空间占用量。因此,将原始固件在附属分区进行备份,对附属分区的存储空间要求不高。
其中,回滚指令可以在对固件分区中的原始固件刷写失败时生成、还可以在固件分区无法正常运行时生成、或者基于用户计算设备的回滚按键的触发操作生成。其中,回滚按键可以是设置在计算设备上的硬件按键或操作界面的软件按键等。
示例性地,若在进行固件升级时出现网络故障,则会出现原始固件刷写失败的情况;在进行固件升级时计算设备断电,在设备重启后由于原始固件损坏,则会出现固件分区无法正常运行的情况;在用户由于部分业务需求需要在升级前版本进行固件升级、或在固件升级过程中由于部分原因反悔升级处理时,则会出现用户触发回滚的情况。
可以理解的是,通过在对原始固件进行刷写之前,对原始固件进行备份,并在接收地回滚指令之后,响应于回滚指令,基于回滚代码逻辑,根据备份固件对固件分区中的原始固件进行回滚,能够在用户具备回滚需求或固件升级失败后,通过备份固件在线或离线情况下,均可以实现对固件分区中的当前固件的回滚处理,能够满足用户不同场景下的回滚需求,同时避免了固件升级失败出现的设备变砖损坏,能够保证计算设备的正常使用,提升了用户的使用体验。
由于回滚代码逻辑和备份固件均存储在附属分区。一般而言,回滚代码逻辑的数据大小和存储区域相对固定。而备份固件是对固件分区中原始固件压缩后的结果,因此当固件分区中的原始固件数据大小发生变化后,将会直接影响备份固件的存储空间占用量。由于备份固件在附属分区中的存储区域会发生变化,可能存在与回滚代码逻辑数据混淆或出现覆盖回滚代码逻辑的情况。
为了避免备份固件和回滚代码逻辑出现数据混淆,同时便于备份固件和回滚代码逻辑的数据查找,在一个可选实施例中,参见图4所示的一种附属分区的结构示意图,还可以将附属分区设置为包括备份分区,用于存储备份固件;和/或将附属分区设置为包括回滚分区,用于存储回滚代码逻辑。
可以理解的是,通过在附属分区中设置备份分区和/或回滚分区,用于将备份固件和回滚代码逻辑隔离存储,避免了备份固件和回滚代码逻辑出现数据混淆或内容覆盖的情况,为固件分区中当前固件的回滚执行的顺利执行奠定了基础。
示例性地,附属分区中的OTA模块可以设置于备份分区或回滚分区之外。当附属分区中设置有备份分区和回滚分区中,为了避免备份固件对OTA模块的覆盖,在一个具体实现方式中,还可以将OTA模块设置在回滚分区中。
由于附属分区的OTA模块需要依赖网络环境与OTA服务器进行升级数据的下载,因此,在附属分区中,还需要添加网络接口等相关数据,增大了对计算设备中的附属分区的存储空间要求。为了尽可能减少附属分区的空间占用量,还可以将附属分区中的OTA模块集成设置与固件分区的OTA模块中,用于实现附属分区中OTA模块的相应功能。
在一个可选实施例中,参见图5所示的一种固件升级系统的结构示意图,该固件升级系统包括计算设备50和OTA服务器60。其中,计算设备50设置有固件分区51和附属分区52。其中,附属分区52的存储空间小于固件分区51的存储空间。
其中,固件分区51中设置有OTA模块,用于在固件分区51中的系统程序运行时,与OTA服务器60进行数据传输。
其中,附属分区52中存储有回滚代码逻辑,用于在具备回滚需求时,通过运行附属分区52中的回滚代码逻辑,对固件分区51中存储的当前固件进行回滚处理。
在图5所示的固件升级系统的基础上,以下将对该固件升级系统中对计算设备50进行固件升级的相关流程进行详细说明。
示例性地,在计算设备50启动时,通过BootLoader引导进入固件分区51进行系统运行(对应①)。在固件分区51中的系统程序运行过程中,当计算设备50由于缺陷修复、兼容性问题、功能优化或功能新增等需求需要进行系统升级时,基于固件分区51中的OTA模块向OTA服务器60发送升级请求,并接收OTA服务器60反馈的请求结果(对应②)。若请求通过,则OTA模块将固件分区51中存储的原始固件进行压缩,得到备份固件,并将备份固件发送至附属分区52进行备份存储(对应③)。OTA模块从OTA服务器60进行升级数据下载,并通过升级数据对固件分区51中的原始固件进行刷写(对应④),以得到升级后的目标固件。
若固件升级成功,则重启计算设备50,并通过BootLoader引导计算设备50进入固件分区51,并基于目标固件进行系统运行(对应⑦)。若由于升级中断(如断网)、升级后无法进入固件分区51(如断电)、或计算设备50正常使用过程中,接收到回滚指令,则重启计算设备50,并通过BootLoader引导计算设备50进入附属分区52进行系统运行(对应⑤)。执行附属分区52中的回滚代码逻辑,基于附属分区52中存储的备份固件,对固件分区51中的当前固件进行回滚处理(对应⑥)。相应的,在完成回滚操作之后,重启计算设备50,并通过BootLoader引导计算设备50进入固件分区51进行系统运行(对应⑦)。
为了避免备份固件和回滚代码逻辑出现数据混淆,同时便于备份固件和回滚代码逻辑的数据查找,在另一可选实施例中,在图5所示的固件升级系统的基础上,将附属分区52设置为包括回滚分区和备份分区,得到图6所示的另一种固件升级系统。
其中,回滚分区用于存储回滚代码逻辑;备份分区中用于存储备份固件。两者各司其职,互不干扰。
在图6所示的固件升级系统的基础上,以下将对该固件升级系统中对计算设备50进行固件升级的相关流程进行详细说明。
示例性地,在计算设备50启动时,通过BootLoader引导进入固件分区51进行系统运行(对应①)。在固件分区51中的系统程序运行过程中,当计算设备50由于缺陷修复、兼容性问题、功能优化或功能新增等需求需要进行系统升级时,基于固件分区51中的OTA模块向OTA服务器60发送升级请求,并接收OTA服务器60反馈的请求结果(对应②)。若请求通过,则OTA模块将固件分区51中存储的原始固件进行压缩,得到备份固件,并将备份固件发送至附属分区52中的备份分区进行备份存储(对应③)。OTA模块从OTA服务器60进行升级数据下载,并通过升级数据对固件分区51中的原始固件进行刷写(对应④),以得到升级后的目标固件。
若固件升级成功,则重启计算设备50,并通过BootLoader引导计算设备50进入固件分区51,并基于目标固件进行系统运行(对应⑦)。若由于升级中断(如断网)、升级后无法进入固件分区51(如断电)、或计算设备50正常使用过程中,接收到回滚指令,则重启计算设备50,并通过BootLoader引导计算设备50进入附属分区52进行系统运行(对应⑤)。执行附属分区52中回滚分区的回滚代码逻辑,基于附属分区52中存储的备份固件,对固件分区51中的当前固件进行回滚处理(对应⑥)。相应的,在完成回滚操作之后,重启计算设备50,并通过BootLoader引导计算设备50进入固件分区51进行系统运行(对应⑦)。
需要说明的是,由于OTA模块设置于固件分区51中,使得在对固件分区51的升级时,可以实现对OTA模块的关联升级,以便OTA模块能够适配升级后的目标固件的运行。
在一个可选实施例中,回滚代码逻辑可以是在系统程序下可以运行的实现回滚功能的常规代码文件,还可以是二进制可执行代码。
需要说明的是,当回滚代码逻辑为二进制可执行代码时,由于二进制可执行代码不依赖于系统程序可以自行执行,因此,在附属分区中可以仅进行回滚代码逻辑的存储,不再设置系统程序,进一步减少了对附属分区的存储空间需求。
作为对上述各固件升级方法的实现,本申请还提供了一种实施固件升级方法的虚拟装置的一个实施例。参见图7所示的一种固件升级装置700,配置于计算设备,所述计算设备设置有固件分区和附属分区;其中,所述附属分区的存储空间小于所述固件分区的存储空间,所述装置包括:升级请求发送模块701和固件升级模块702。其中,
升级请求发送模块701,用于在所述固件分区中的系统程序运行过程中,基于所述固件分区设置的空中下载OTA模块向OTA服务器发送升级请求;
固件升级模块702,用于若请求通过,则基于所述附属分区设置的OTA模块从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写。
本申请实施例通过升级请求发送模块在计算设备中设置固件分区和存储空间小于固件分区的附属分区;通过固件升级模块在固件分区中的系统程序运行过程中,基于固件分区设置的OTA模块向OTA服务器发送升级请求;若请求通过,则基于附属分区设置的OTA模块从OTA服务器中下载升级数据,并根据升级数据对固件分区中原始固件进行刷写。上述技术方案仅需附属分区中的OTA模块进行升级数据的下载和对原始固件的刷写即可,无需附属分区存储完整的固件系统,因此对附属分区的存储空间要求较小,使得上述升级过程能够适配存储空间较小的计算设备,提高了固件升级方法在不同存储空间大小的计算设备的通用性。
在一个可选实施例中,所述装置还包括:
固件备份模块,用于在根据所述升级数据对所述固件分区中的原始固件进行刷写之前,基于所述附属分区设置的OTA模块将所述原始固件进行压缩,得到备份固件;
回滚指令接收模块,用于接收回滚指令;
固件回滚模块,用于响应于所述回滚指令,基于回滚代码逻辑,根据所述备份固件对所述固件分区中的当前固件进行回滚。
在一个可选实施例中,所述附属分区包括备份分区,用于存储所述备份固件;和/或,
所述附属分区包括回滚分区,用于存储所述回滚代码逻辑。
在一个可选实施例中,所述装置,还包括:
回滚指令生成模块,用于若对所述固件分区中的原始固件刷写失败或所述固件分区无法正常运行,则生成所述回滚指令。
在一个可选实施例中,所述固件升级模块702,包括:
流式升级模块,用于采用流式下载方式从所述OTA服务器中下载所述升级数据,并在下载过程中,基于所下载内容对所述固件分区中的所述原始固件进行刷写。
在一个可选实施例中,所述附属分区中的OTA模块集成设置于所述固件分区的OTA模块中。
在一个可选实施例中,所述回滚代码逻辑为二进制可执行代码,且所述附属分区中未设置所述系统程序。
上述固件升级装置可执行本申请任一实施例所提供的固件升级方法,具备执行固件升级方法相应的功能模块和有益效果。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本申请的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如固件升级方法。例如,在一些实施例中,固件升级方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的固件升级方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行固件升级方法。
需要说明的是,本申请中的电子设备(也即前述实施例中的计算设备),其存储器中设置有固件分区和附属分区;附属分区的存储空间小于固件分区的存储空间。
在一个可选实施例中,计算设备可以是嵌入式设备,存储器可以是Flash(快闪)存储器。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
物联网(Internet of Things,IoT)是指通过信息传感设备(如嵌入式设备),依托于互联网或电信网络等信息承载体,按约定的协议,将能够行使独立能力的物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (18)

1.一种固件升级方法,应用于计算设备,所述计算设备设置有固件分区和附属分区;其中,所述附属分区的存储空间小于所述固件分区的存储空间,所述方法包括:
在所述固件分区中的系统程序运行过程中,基于所述固件分区设置的空中下载OTA模块向OTA服务器发送升级请求;
若请求通过,则基于所述附属分区设置的OTA模块从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写。
2.根据权利要求1所述的方法,其中,在所述根据所述升级数据对所述固件分区中的原始固件进行刷写之前,所述方法还包括:基于所述附属分区设置的OTA模块将所述原始固件进行压缩,得到备份固件,并存储于所述附属分区;
所述方法还包括:
接收回滚指令;
响应于所述回滚指令,基于回滚代码逻辑,根据所述备份固件对所述固件分区中当前固件进行回滚。
3.根据权利要求2所述的方法,其中,所述附属分区包括备份分区,用于存储所述备份固件;和/或,
所述附属分区包括回滚分区,用于存储所述回滚代码逻辑。
4.根据权利要求2所述的方法,其中,若对所述固件分区中的原始固件刷写失败或所述固件分区无法正常运行,则生成所述回滚指令。
5.根据权利要求1所述的方法,其中,所述从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写,包括:
采用流式下载方式从所述OTA服务器中下载所述升级数据,并在下载过程中,基于所下载内容对所述固件分区中的所述原始固件进行刷写。
6.根据权利要求2-5任一项所述的方法,其中,所述附属分区中的OTA模块集成设置于所述固件分区的OTA模块中。
7.根据权利要求6所述的方法,其中,所述回滚代码逻辑为二进制可执行代码,且所述附属分区中未设置所述系统程序。
8.一种固件升级装置,配置于计算设备,所述计算设备设置有固件分区和附属分区;其中,所述附属分区的存储空间小于所述固件分区的存储空间,所述装置包括:
升级请求发送模块,用于在所述固件分区中的系统程序运行过程中,基于所述固件分区设置的空中下载OTA模块向OTA服务器发送升级请求;
固件升级模块,用于若请求通过,则基于所述附属分区设置的OTA模块从所述OTA服务器中下载升级数据,并根据所述升级数据对所述固件分区中的原始固件进行刷写。
9.根据权利要求8所述的装置,其中,所述装置还包括:
固件备份模块,用于在根据所述升级数据对所述固件分区中的原始固件进行刷写之前,基于所述附属分区设置的OTA模块将所述原始固件进行压缩,得到备份固件;
回滚指令接收模块,用于接收回滚指令;
固件回滚模块,用于响应于所述回滚指令,基于回滚代码逻辑,根据所述备份固件对所述固件分区中的当前固件进行回滚。
10.根据权利要求9所述的装置,其中,所述附属分区包括备份分区,用于存储所述备份固件;和/或,
所述附属分区包括回滚分区,用于存储所述回滚代码逻辑。
11.根据权利要求9所述的装置,还包括:
回滚指令生成模块,用于若对所述固件分区中的原始固件刷写失败或所述固件分区无法正常运行,则生成所述回滚指令。
12.根据权利要求8所述的装置,其中,所述固件升级模块,包括:
流式升级模块,用于采用流式下载方式从所述OTA服务器中下载所述升级数据,并在下载过程中,基于所下载内容对所述固件分区中的所述原始固件进行刷写。
13.根据权利要求9-12任一项所述的装置,其中,所述附属分区中的OTA模块集成设置于所述固件分区的OTA模块中。
14.根据权利要求13所述的装置,其中,所述回滚代码逻辑为二进制可执行代码,且所述附属分区中未设置所述系统程序。
15.一种计算设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器中设置有固件分区和附属分区;所述附属分区的存储空间小于所述固件分区的存储空间;
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的一种固件升级方法。
16.根据权利要求15所述的计算设备,所述电子设备为嵌入式设备。
17.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的一种固件升级方法。
18.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的一种固件升级方法。
CN202110093721.1A 2021-01-22 2021-01-22 固件升级方法、装置、设备和存储介质 Active CN112667266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110093721.1A CN112667266B (zh) 2021-01-22 2021-01-22 固件升级方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110093721.1A CN112667266B (zh) 2021-01-22 2021-01-22 固件升级方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112667266A true CN112667266A (zh) 2021-04-16
CN112667266B CN112667266B (zh) 2024-02-06

Family

ID=75414434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110093721.1A Active CN112667266B (zh) 2021-01-22 2021-01-22 固件升级方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112667266B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590164A (zh) * 2021-08-31 2021-11-02 重庆长安汽车股份有限公司 一种整车控制器软件的升级方法及系统
CN113791810A (zh) * 2021-11-15 2021-12-14 北京国科天迅科技有限公司 基于zynq平台的远程升级方法、装置及系统
CN113923240A (zh) * 2021-09-29 2022-01-11 江苏合力四通智能科技股份有限公司 利用局部ota方法在物联网网关中动态升级设备接口协议的系统及方法
CN114172741A (zh) * 2021-12-22 2022-03-11 卓品智能科技无锡有限公司 车载控制器防盗刷方法、系统及存储介质
CN114168176A (zh) * 2021-12-15 2022-03-11 四川启睿克科技有限公司 一种基于区块链的跨厂商设备升级系统及方法
CN116166298A (zh) * 2023-03-16 2023-05-26 北京百度网讯科技有限公司 一种固件升级方法、装置、设备及存储介质
WO2023221002A1 (zh) * 2022-05-18 2023-11-23 北京小米移动软件有限公司 基于ota的系统更新方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294686A1 (en) * 2006-06-19 2007-12-20 Samsung Electronics Co., Ltd. Program upgrade system and method for ota-capable device
US20080216066A1 (en) * 2006-07-14 2008-09-04 Samsung Electronics Co., Ltd. Program upgrade system and method for ota-capable mobile terminal
WO2009079866A1 (fr) * 2007-12-25 2009-07-02 Zte Corporation Procédé et système srlatifs au processus de mise à niveau de micrologiciel de terminal mobile
CN105933150A (zh) * 2016-04-20 2016-09-07 努比亚技术有限公司 Ota升级方法、装置及系统
CN106484448A (zh) * 2015-08-28 2017-03-08 青岛海信移动通信技术股份有限公司 一种软件升级方法及装置
CN111064723A (zh) * 2019-12-12 2020-04-24 杭州涂鸦信息技术有限公司 一种基于备份系统的空中下载升级方法及系统
CN111769962A (zh) * 2019-04-01 2020-10-13 成都启英泰伦科技有限公司 一种mcu固件ota升级方法
CN111770169A (zh) * 2020-06-29 2020-10-13 百度在线网络技术(北京)有限公司 设备固件升级的方法、装置、设备以及存储介质
KR102192857B1 (ko) * 2019-11-25 2020-12-18 주식회사 엘지유플러스 Ota를 통한 펌웨어 제공 방법 및 장치
CN112230969A (zh) * 2020-12-17 2021-01-15 飞天诚信科技股份有限公司 固件升级过程中对用户空间存储区格式化的方法及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294686A1 (en) * 2006-06-19 2007-12-20 Samsung Electronics Co., Ltd. Program upgrade system and method for ota-capable device
US20080216066A1 (en) * 2006-07-14 2008-09-04 Samsung Electronics Co., Ltd. Program upgrade system and method for ota-capable mobile terminal
WO2009079866A1 (fr) * 2007-12-25 2009-07-02 Zte Corporation Procédé et système srlatifs au processus de mise à niveau de micrologiciel de terminal mobile
CN106484448A (zh) * 2015-08-28 2017-03-08 青岛海信移动通信技术股份有限公司 一种软件升级方法及装置
CN105933150A (zh) * 2016-04-20 2016-09-07 努比亚技术有限公司 Ota升级方法、装置及系统
CN111769962A (zh) * 2019-04-01 2020-10-13 成都启英泰伦科技有限公司 一种mcu固件ota升级方法
KR102192857B1 (ko) * 2019-11-25 2020-12-18 주식회사 엘지유플러스 Ota를 통한 펌웨어 제공 방법 및 장치
CN111064723A (zh) * 2019-12-12 2020-04-24 杭州涂鸦信息技术有限公司 一种基于备份系统的空中下载升级方法及系统
CN111770169A (zh) * 2020-06-29 2020-10-13 百度在线网络技术(北京)有限公司 设备固件升级的方法、装置、设备以及存储介质
CN112230969A (zh) * 2020-12-17 2021-01-15 飞天诚信科技股份有限公司 固件升级过程中对用户空间存储区格式化的方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
桑田;武继荣;周泽;: "OTA在家电中的应用探讨", 家电科技, no. 11 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590164A (zh) * 2021-08-31 2021-11-02 重庆长安汽车股份有限公司 一种整车控制器软件的升级方法及系统
CN113590164B (zh) * 2021-08-31 2024-03-22 重庆长安汽车股份有限公司 一种整车控制器软件的升级方法及系统
CN113923240A (zh) * 2021-09-29 2022-01-11 江苏合力四通智能科技股份有限公司 利用局部ota方法在物联网网关中动态升级设备接口协议的系统及方法
CN113923240B (zh) * 2021-09-29 2023-09-15 江苏合力四通智能科技股份有限公司 利用局部ota方法在物联网网关中动态升级设备接口协议的系统及方法
CN113791810A (zh) * 2021-11-15 2021-12-14 北京国科天迅科技有限公司 基于zynq平台的远程升级方法、装置及系统
CN113791810B (zh) * 2021-11-15 2022-05-24 北京国科天迅科技有限公司 基于zynq平台的远程升级方法、装置及系统
CN114168176A (zh) * 2021-12-15 2022-03-11 四川启睿克科技有限公司 一种基于区块链的跨厂商设备升级系统及方法
CN114172741A (zh) * 2021-12-22 2022-03-11 卓品智能科技无锡有限公司 车载控制器防盗刷方法、系统及存储介质
WO2023221002A1 (zh) * 2022-05-18 2023-11-23 北京小米移动软件有限公司 基于ota的系统更新方法、装置、电子设备及存储介质
CN116166298A (zh) * 2023-03-16 2023-05-26 北京百度网讯科技有限公司 一种固件升级方法、装置、设备及存储介质
CN116166298B (zh) * 2023-03-16 2024-03-01 北京百度网讯科技有限公司 一种固件升级方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112667266B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
CN112667266B (zh) 固件升级方法、装置、设备和存储介质
CN110780890B (zh) 系统升级方法、装置、电子设备和介质
CN105745617B (zh) 用于预启动固件更新的选择性功率管理
CN112653758B (zh) 边缘节点的更新方法、装置、设备和介质
CN110730090B (zh) 云环境中代理端批量更新方法、装置、介质及电子设备
CN108536452B (zh) 一种嵌入式设备及其系统软件升级方法、系统和终端
CN115794257B (zh) 系统启动方法、装置、电子设备和存储介质
CN115220797B (zh) 操作系统启动及部署方法、装置、设备、介质及程序产品
US20190205109A1 (en) Computer system, baseboard management controller, and os installation method
CN112328296A (zh) 针对跨平台应用的软件更新方法、装置、设备和介质
CN114035818A (zh) 固件升级方法、装置、计算机设备和存储介质
WO2019100704A1 (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
WO2024007800A1 (zh) 云终端系统升级方法、装置、云终端和存储介质
WO2021018208A1 (zh) 固件升级方法及装置、电子设备、存储介质
CN114228745B (zh) 驾驶系统模块控制方法、装置、设备、介质、产品及车辆
CN113051122B (zh) 性能数据获取方法、装置、电子设备和介质
CN113110883B (zh) 区块链系统的启动方法、装置、设备和存储介质
CN114489715A (zh) 一种云手机的操作系统升级方法、装置、设备和介质
CN113660123A (zh) 虚拟交换机升级方法、装置、电子设备以及存储介质
CN117111991A (zh) 系统升级方法、装置、电子设备及存储介质
CN111694608A (zh) 终端设备的系统升级方法和装置、电子设备和终端设备
CN114726719B (zh) 网元操作系统部署方法、装置、电子设备及存储介质
CN114416625B (zh) 服务器、扩展服务卡、数据处理方法和服务系统
US20240231803A9 (en) Maintenance mode in hci environment
CN113596129B (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
GR01 Patent grant
GR01 Patent grant