CN117492799A - 一种软件升级方法、装置、终端设备及存储介质 - Google Patents

一种软件升级方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN117492799A
CN117492799A CN202311591463.5A CN202311591463A CN117492799A CN 117492799 A CN117492799 A CN 117492799A CN 202311591463 A CN202311591463 A CN 202311591463A CN 117492799 A CN117492799 A CN 117492799A
Authority
CN
China
Prior art keywords
boot loader
application
area
upgrading
mark
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
Application number
CN202311591463.5A
Other languages
English (en)
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.)
Guangzhou Juwan Technology Research Co ltd
Original Assignee
Guangzhou Juwan Technology Research 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 Guangzhou Juwan Technology Research Co ltd filed Critical Guangzhou Juwan Technology Research Co ltd
Priority to CN202311591463.5A priority Critical patent/CN117492799A/zh
Publication of CN117492799A publication Critical patent/CN117492799A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件升级方法、装置、终端设备及存储介质,包括:将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区和应用区,通过第一引导加载程序区中所存储的第一引导加载程序对第二引导加载程序区中的第二引导加载程序进行升级,其中,第二引导加载程序的层级高于第一引导加载程序;当确定第二引导加载程序升级成功时,采用第一引导加载程序对应用区中的目标应用进行升级;在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。通过第一引导加载程序对第二引导加载程序进行升级,在第二引导加载程序升级完成之后对目标应用进行升级,能够不依赖外部烧录工具,完成对目标应用和引导加载程序的升级。

Description

一种软件升级方法、装置、终端设备及存储介质
技术领域
本发明涉及软件技术领域,尤其涉及一种软件升级方法、装置、终端设备及存储介质。
背景技术
现有的普通软件架构采用bootloader(引导加载程序)+APP(应用)的设计确实可以带来一些优势,特别是对于APP的升级。这种设计下,bootloader主要负责设备的启动和基本硬件初始化,而APP则负责实现具体的功能。
现有技术中,要更新bootloader,通常需要通过专用烧录工具连接到ECU,然后直接将新的bootloader代码烧录到设备中,但是一款ECU硬件通常会用于多个项目。这意味着针对不同项目,ECU中的APP部分可能会有不同的配置和功能。但在装包阶段,ECU已经没有烧录端口可供使用。这意味着在生产过程中,一旦将ECU装入设备,就很难再对其进行升级或修改。
发明内容
本发明提供了一种软件升级方法、装置、终端设备及存储介质,以实现在不依赖外部烧录工具的情况下,完成对目标应用和引导加载程序的升级。
根据本发明的一方面,提供了一种软件升级方法,将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区和应用区,方法包括:
通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,其中,第二引导加载程序的层级高于第一引导加载程序;
当确定第二引导加载程序升级成功时,采用第一引导加载程序获取应用升级信息,并采用应用升级信息对应用区中的目标应用进行升级;
在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。
根据本发明的另一方面,提供了一种软件升级装置,包括:
第二引导加载程序升级模块,用于通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,其中,第二引导加载程序的层级高于第一引导加载程序;
目标应用升级模块,用于当确定第二引导加载程序升级成功时,采用第一引导加载程序获取应用升级信息,并采用应用升级信息对应用区中的目标应用进行升级;
软件升级模块,用于在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。
根据本发明的另一方面,提供了一种终端设备,其特征在于,终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器执行本发明任一实施例的方法。
根据本发明的另一方面,提供了一种计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一的方法。
本发明实施例的技术方案,通过将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区和应用区,利用第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序进行升级,在第二引导加载程序升级完成之后采用第一引导加载程序获取应用升级信息,并采用应用升级信息对目标应用进行升级,能够不依赖外部烧录工具,完成对目标应用和引导加载程序的升级。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种软件升级方法的流程图;
图2是根据本发明实施例二提供的另一种软件升级方法的流程图;
图3是根据本发明实施例三提供的一种软件升级装置的流程图;
图4为本发明实施例四提供的一种终端设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或终端设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或终端设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种软件升级方法的流程图,本实施例可适用于在没有烧录端口的情况下,完成对目标应用和引导加载程序的升级,该方法可以由一种软件升级装置来执行,该软件升级装置可以采用硬件和/或软件的形式实现,该软件升级装置可集成配置于终端设备中。
本发明实施例中,可以将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区和应用区。
如图1所示,该方法包括:
S110、通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,其中,第二引导加载程序的层级高于第一引导加载程序。
其中,引导加载程序是在操作***内核运行之前运行的一段小程序。通过引导加载程序,可以初始化硬件设备、建立内存空间的映射图,从而将***的软硬件环境带到一个合适的状态,以便为最终调用操作***内核准备好正确的环境。
其中,第一引导加载程序区指的是在计算机启动过程中,第一个被加载并执行的程序区域。第一引导加载程序区用于提供启动计算机所需的指令和程序。在***启动时,计算机会首先读取并执行第一引导加载程序区上的引导加载程序。第一引导加载程序指的是存储于第一引导加载程序区中的引导加载程序,在计算机确定第一引导加载程序区之后,会读取第一加载程序中的第一引导加载程序。第一引导加载程序用于加载并启动操作***的核心部分。在计算机启动过程中,第一引导加载程序会首先被加载并执行,它会读取操作***的核心代码,并将其加载到内存中,然后将其控制权转交给操作***核心,从而启动操作***。第二引导加载程序区指的是在第一引导加载程序之后被加载并执行的程序区域,第二引导加载程序指的是存储于第二引导加载程序区中的引导加载程序。需要说明的是,第二引导加载程序的层级高于第一引导加载程序。
具体的,通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,可以是在对应用进行升级时,可以先启动层级更低的第一引导加载程序从上位机获取第二引导加载程序的升级信息,然后将第二引导加载程序的升级信息写入到第二引导加载程序区当中,完成对第二引导加载程序的升级。通过设置层级更低的第一引导加载程序,能够在不使用烧录工具的情况下完成对第二引导加载程序的升级。
S120、当确定第二引导加载程序升级成功时,采用第一引导加载程序获取应用升级信息,并采用应用升级信息对应用区中的目标应用进行升级。
其中,应用区指的是存储有目标应用的存储区域,目标应用指的是此次需要进行升级的应用。
具体的,当确定第二引导加载程序升级成功时,采用第一引导加载程序获取应用升级信息,并采用应用升级信息对应用区中的目标应用进行升级,可以是在检测到第一引导加载程序将第二引导加载程序的升级应用信息成功写入到第二引导加载程序区之后,并确定第二引导加载程序升级成功时,可以采用同样的升级方式,从上位机获取目标应用所需的升级信息,并将目标应用所需的升级信息写入到应用区当中,完成对第二引导加载程序的升级。通过第一引导加载程序将第二引导加载程序的升级应用信息成功写入到第二引导加载程序区,并在确定第二引导加载程序升级成功的条件下,采用第一引导加载程序对应用区中的目标应用进行升级的方案,能够使程序更易于维护和操作,方便用户对第二引导加载程序进行升级和维护,同时也可以根据需要进行扩展和修改。
S130、在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。
具体的,在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,可以是利用控制器软件检测并验证第二引导加载程序和目标应用的升级信息是否成功写入,确保数据的完整性和准确性,并在检测到第二引导加载程序和目标应用的升级信息均已成功写入到对应区域时,更新控制器软件自身的版本信息。升级操作完成后,可以利用控制器软件检查新版本的第二引导加载程序和目标应用是否能够正常运行,以及控制器软件本身是否存在异常或错误。如果升级成功完成,控制器软件将向上位机发送特定的信号或消息,通知上位机升级已完成。在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,能够进一步的提高***的可靠性和安全性,同时也可以提高升级效率和维护方便性。
本实施方式中,首先通过设置层级更低的第一引导加载程序获取应用升级信息,并采用应用升级信息对第二引导加载程序进行升级,能够在不使用烧录工具的情况下完成对第二引导加载程序的升级,然后在第二引导加载程序升级完成之后获取应用升级信息,并采用应用升级信息对目标应用进行升级,能够使程序更易于维护和操作,方便用户对第二引导加载程序进行升级和维护,同时也可以根据需要进行扩展和修改,最后在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,能够进一步的提高***的可靠性和安全性,同时也可以提高升级效率和维护方便性。
实施例二
图2是本发明实施例二提供的一种软件升级方法流程图,本实施例以上述实施例为基础,将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区、第二引导加载程序备份区、应用区和应用备份区。
如图2所示,该方法包括:
S210、通过第一引导加载程序对第二引导加载程序区的第一标志和第二引导加载程序备份区的第二标志进行检测,获取第一检测结果。
其中,第二引导加载程序备份区可以是用于对第二引导加载程序进行备份的区域,在对第二引导加载程序进行升级时,可以预先将第二引导加载程序备份至第二引导加载程序备份区,避免因升级失败导致第二引导加载程序损坏,造成应用无法正常启动的问题。
其中,第一检测结果指的是利用第一引导加载程序对第二引导加载程序区的第一标志和第二引导加载程序备份区的第二标志进行检测之后,得到的检测结果,第一检测结果中包含第一标志和第二标志。其中,第一标志指的是第二引导加载程序区中的标志,能够标识第二引导加载程序区的状态。第一标志用于表征第二引导加载程序区中的第二加载程序的当前状态是否有效,例如,第一标志可以是0或1,其中,在第一标志位0的情况下,表示第二引导加载程序区为无效的状态,在第一标志位1的情况下,表示第二引导加载程序区为有效的状态。具体的,在第一标志为1的情况下,表示第二引导加载程序区中保存有第二引导加载程序,且保存的第二引导加载程序为有效的可运行的引导加载程序;在第一标志为0的情况下,则表示第二引导加载程序区中没有第二引导加载程序,或者保存的第二引导加载程序为无效的不可运行的引导加载程序。第二标志指的是第二引导加载程序备份区中的标志,能够标识第二引导加载程序备份区的状态。第二标志用于表征第二引导加载程序备份区中的第二加载程序的当前状态是否有效,同理,第二标志也可以是0或1,其中,在第二标志位0的情况下,表示第二引导加载程序备份区为无效的状态,在第二标志位1的情况下,表示第二引导加载程序备份区为有效的状态。具体的,在第二标志为1的情况下,则表示第二引导加载程序备份区中保存有第二引导加载程序,且保存的第二引导加载程序为有效的可运行的引导加载程序;在第二标志为0的情况下,则表示第二引导加载程序备份区中没有第二引导加载程序,或者保存的第二引导加载程序为无效的不可运行的引导加载程序。
具体的,通过第一引导加载程序对第二引导加载程序区的第一标志和第二引导加载程序备份区的第二标志进行检测,获取第一检测结果,可以是在对第二引导加载程序进行升级的过程中,用第一引导加载程序读取并解析第二引导加载程序区的第一标志,并根据第二引导加载程序区的第一标志的状态确定第二引导加载程序区中的第二加载程序的当前状态是否有效;然后用同样的方式利用第一引导加载程序读取并解析第二引导加载程序备份区的第二标志,并根据第二引导加载程序备份区的第二标志的状态确定第二引导加载程序区中的第二加载程序的当前状态是否有效。在检测完成之后,可以将第一标志和第二标志保存在第一检测结果当中,生成第一检测结果。
S220、通过第一引导加载程序将第一检测结果发送给上位机,并根据上位机基于第一检测结果所反馈的第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级。
具体的,通过第一引导加载程序将第一检测结果发送给上位机,并根据上位机基于第一检测结果所反馈的第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,包括:
通过第一引导加载程序判断第一检测结果中第一标志是否有效,若是,则将第二引导加载程序区中的第二引导加载程序拷贝到第二引导加载程序备份区,将第一标志擦除为无效,第二标志置位为有效,并将第一检测结果发送给上位机,第一引导加载程序接收上位机根据第一检测结果所反馈的第二引导加载程序升级信息,并将第二引导加载程序升级信息写入到第二引导加载程序区,以对第二引导加载程序进行升级,
否则,当确定第一检测结果中第二标志也无效时,直接将第一检测结果发送给上位机,接收上位机根据第一检测结果所反馈的第二引导加载程序升级信息,将第二引导加载程序升级信息写入到第二引导加载程序区,以对第二引导加载程序进行升级,并将第一标志置位为有效。
当确定第一检测结果中第一标志无效且第二标志有效时,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区;
将第二标志擦除为无效,并将第一标志置位为有效。
具体的,在获取到第一检测结果之后,可以利用第一引导加载程序对第一检测结果当中的第一标志进行检测和判断,如果检测到第一标志为1,则表示第二引导加载程序区中的第二引导加载程序是有效的引导加载程序,此时就可以直接跳过对第二标志的判断,直接把第二引导加载程序区中的第二引导加载程序拷贝到第二引导加载程序备份区当中,并将第一标志擦除为无效,将第二标志置位为有效,然后利用第一引导加载程序将第一检测结果发送给上位机,上位机在接收到第一引导加载程序发送的第一检测结果之后,可以将目标应用的升级信息发送给第一引导加载程序,第一引导加载程序可以直接将第二引导加载程序的升级信息写入到待升级的第二引导加载程序所对应的第二引导加载程序区中,完成对第二引导加载程序的升级。通过把第二引导加载程序区中的第二引导加载程序拷贝到第二引导加载程序备份区当中,并将第二标志置位为有效,能够在对第二引导加载程序进行升级的过程中,能够确保第二引导加载程序的原始文件不受到升级的影响,保证第二引导加载程序区当中的第二引导加载程序不被损坏,确保了在第二引导加载程序升级失败时可以回滚到原始版本,提高了***的健壮性。
具体的,在获取到第一检测结果之后,可以利用第一引导加载程序对第一检测结果当中的第一标志进行判断,如果第一标志无效,则表示第二引导加载程序区中的第二引导加载程序是无效的引导加载程序,此时就需要对第二标志进行判断,如果此时第一检测结果中第二标志有效,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区,将第二标志擦除为无效,并将第一标志置位为有效,然后将升级程序回滚,并重新执行获取第一检测结果的过程。具体的,在获取到第一检测结果之后,可以利用第一引导加载程序对第一检测结果当中的第一标志进行判断,如果当确定第一检测结果中第一标志和第二标志都无效时,则表示第二引导加载程序区和第二引导加载程序备份区中的引导加载程序都是无效的引导加载程序,此时就可以利用第一引导加载程序直接将第一检测结果发送给上位机,上位机在接收到第一检测结果之后,可以根据第一引导加载程序所反馈的第一检测结果,将第二引导加载程序升级信息发送给第一引导加载程序,第一引导加载程序可以直接将第二引导加载程序升级信息写入到第二引导加载程序区,以对第二引导加载程序进行升级,并将第一标志置位为有效。
在将程序升级信息写入到第二引导加载程序区之后,还包括:
判断第二引导加载程序是否升级失败,若是,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区,并将第二标志擦除为无效,将第一标志置位为有效,
否则,直接将第一标志置位为有效。
具体的,在将程序升级信息写入到第二引导加载程序区之后,可以对第二引导加载程序区中的程序升级信息进行检测,并根据检测结果判断第二引导加载程序是否升级失败。如果第二引导加载程序升级失败,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区,并将第二标志擦除为无效,将第一标志置位为有效,然后将升级程序回滚,重新执行将程序升级信息写入到第二引导加载程序区的过程,直至第二引导加载程序升级成功;如果第二引导加载程序升级成功,则直接将第一标志置位为有效,并执行后续的升级流程。
S230、当确定第二引导加载程序升级成功并且第一标志有效时,通过第一引导加载程序对应用区的第三标志和应用备份区的第四标志进行检测,获取第二检测结果。
其中,应用备份区可以是用于对目标应用进行备份的区域,在对目标应用进行升级时,可以预先目标应用备份至应用备份区,避免因升级失败导致目标应用损坏,造成目标应用无法正常启动的问题。
其中,第二检测结果指的是利用第一引导加载程序对应用区的第三标志和应用备份区的第四标志进行检测之后,得到的检测结果,第二检测结果中包含第三标志和第四标志。其中,第三标志指的是应用区中的标志,能够标识应用区当中应用程序的状态。第三标志用于表征应用区中的应用程序的当前状态是否有效,例如,第三标志可以是0或1,其中,在第三标志位0的情况下,表示应用区为无效的状态,在第三标志位1的情况下,表示应用区为有效的状态。具体的,在第三标志为1的情况下,则表示应用区中保存有应用程序,且保存的应用程序为有效的可运行的应用程序;在第一标志为0的情况下,则表示应用区中没有应用程序,或者保存的应用程序为无效的不可运行的应用程序;第四标志指的是应用备份区中的标志,能够标识应用备份区当中备份的应用程序的状态。第四标志用于表征应用备份区中备份的应用程序的当前状态是否有效,同理,第四标志可以是0或1,其中,在第四标志位0的情况下,表示应用备份区为无效的状态,在第四标志位1的情况下,表示应用备份区为有效的状态。具体的,在第四标志为1的情况下,则表示应用备份区中备份有应用程序,且备份的应用程序为有效的可运行的应用程序;在第四标志为0的情况下,则表示应用备份区中没有备份的应用程序,或者备份的应用程序为无效的不可运行的应用程序。
具体的,当确定第二引导加载程序升级成功并且第一标志有效时,通过第一引导加载程序对应用区的第三标志和应用备份区的第四标志进行检测,获取第二检测结果,可以是在确定第二引导加载程序升级成功并且第一标志有效的情况下,通过利用第一引导加载程序读取并解析应用区的第三标志,并根据应用区的第三标志的状态确定应用区中的目标应用的当前状态是否有效;然后用同样的方式利用第一引导加载程序读取并解析应用备份区的第四标志,并根据应用备份区的第四标志的状态确定应用备份区中的备份目标应用的当前状态是否有效。在检测完成之后,可以将第三标志和第四标志保存在第二检测结果当中,生成第二检测结果。
S240、通过第一引导加载程序将第二检测结果发送给上位机,并根据上位机基于第二检测结果所反馈的应用升级信息对应用区中的目标应用进行升级。
具体的,通过第一引导加载程序将第二检测结果发送给上位机,并根据上位机基于第二检测结果所反馈的应用升级信息对应用区中的目标应用进行升级,包括:
通过第一引导加载程序判断第二检测结果中第三标志是否有效,若是,则将应用区中的应用拷贝到应用备份区,将第三标志擦除为无效,并将第四标志置位为有效,并将第二检测结果发送给上位机,第二引导加载程序接收上位机根据第二检测结果所反馈的应用升级信息,并将应用升级信息写入到应用区,以对目标应用进行升级;
否则,当确定第二检测结果中第四标志也无效时,直接将第二检测结果发送给上位机,接收上位机根据第二检测结果所反馈的应用升级信息,将应用升级信息写入到应用区,以对目标应用进行升级,并将第三标志置位为有效。
当确定第二检测结果中第三标志无效且第四标志有效时,则将应用备份区中的目标应用拷贝到应用区;
将第四标志擦除为无效,并将第三标志置位为有效。
具体的,在获取到第二检测结果之后,可以利用第一引导加载程序对第二检测结果当中的第三标志进行检测和判断,如果检测到第三标志为1,则表示应用区中的目标应用是有效的可执行的应用程序。在确定第三标志有效的情况下,可以直接跳过对第四标志的检测和判断,直接把应用区中的应用程序拷贝到应用备份区当中,在拷贝完成之后,可以将第三标志擦除为无效,并将第四标志置位为有效。然后利用第一引导加载程序将第二检测结果发送给上位机,上位机在接收到第一引导加载程序发送的第二检测结果之后,可以将目标应用的升级信息发送给第一引导加载程序,第一引导加载程序可以直接将目标应用的升级信息写入到待升级的目标应用岁对应的应用区当中,完成对目标应用的升级。通过把应用区中的目标应用拷贝到应用备份区当中,并将第四标志置位为有效,能够在升级的过程中,保证应用区当中的目标应用不被损坏,确保了目标应用在升级失败时可以回滚到原始版本,提高了***的健壮性。
具体的,在获取到第二检测结果之后,可以利用第一引导加载程序对第二检测结果当中的第三标志进行判断,如果检测到第三标志为0,则表示应用区中的目标应用是无效的应用程序,此时就需要对第四标志进行判断,如果此时第二检测结果中第四标志有效,则将应用备份区中的应用程序拷贝到应用区,将第四标志擦除为无效,并将第三标志置位为有效,然后将升级程序回滚,并重新执行获取第二检测结果的过程。具体的,在获取到第二检测结果之后,可以利用第一引导加载程序对第二检测结果当中的第三标志进行判断,如果当确定第一检测结果中第三标志和第四标志均为0时,则表示应用区和应用备份区中的目标应用都是无效的应用程序,此时就可以利用第一引导加载程序直接将第二检测结果发送给上位机,上位机在接收到第二检测结果之后,可以根据第一引导加载程序所反馈的第二检测结果,将目标应用的升级信息发送给第一引导加载程序,第一引导加载程序可以直接将目标应用的升级信息写入到应用区,以对目标应用进行升级,并将第三标志置位为有效。
在将程序升级信息写入到应用区之后,还包括:
判断第二引导加载程序是否升级失败,若是,则将应用备份区中的第二引导加载程序拷贝到应用区,并将第四标志擦除为无效,将第三标志置位为有效,
否则,直接将第三标志置位为有效。
具体的,在将程序升级信息写入到应用区之后,可以对应用区中的程序升级信息进行检测,并根据检测结果判断第二引导加载程序是否升级失败。如果第二引导加载程序升级失败,则将应用备份区中的应用程序拷贝到应用区,并将第四标志擦除为无效,将第三标志置位为有效,然后将升级程序回滚,重新执行将目标应用升级信息写入到应用区的过程;如果目标应用升级成功,则直接将第三标志置位为有效。
S250、在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。
具体的,在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,可以是利用控制器软件检测并验证第一标志和第三标志是否有效,如果检测到第一标志和第三标志均为1时,则表示第二引导加载程序和目标应用的升级信息均已成功写入,第二引导加载程序以及目标应用已经升级成功,此时可以更新控制器软件自身的版本信息。在升级操作完成后,可以利用控制器软件检查新版本的第二引导加载程序和目标应用是否能够正常运行,以及控制器软件本身是否存在异常或错误。如果升级成功完成,控制器软件将向上位机发送特定的信号或消息,通知上位机升级已完成。在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,能够进一步的提高***的可靠性和安全性,同时也可以提高升级效率和维护方便性。
本实施方式中,通过将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区、第二引导加载程序备份区、应用区和应用备份区,可以在对第二引导加载程序和目标应用进行升级的过程中,将有效的第二引导加载程序和目标应用拷贝到对应的备份区域当中,能够在因断电等原因导致第二引导加载程序或目标应用升级失败的情况下,保证第二引导加载程序和目标应用不被损坏,确保了第二引导加载程序和目标应用在升级失败时可以回滚到原始版本,提高了***的健壮性。在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成,能够进一步的提高***的可靠性和安全性,同时也可以提高升级效率和维护方便性。
实施例三
图为本发明实施例三提供的一种软件升级装置的结构示意图。本发明实施例中,可以将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区、第二引导加载程序备份区、应用区和应用备份区。
如图3所示,该装置包括:第二引导加载程序升级模块310、目标应用升级模块320和软件升级模块330。
第二引导加载程序升级模块310,用于通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,其中,第二引导加载程序的层级高于第一引导加载程序。
目标应用升级模块320,用于当确定第二引导加载程序升级成功时,采用第一引导加载程序获取应用升级信息,并采用应用升级信息对应用区中的目标应用进行升级。
软件升级模块330,用于在确定第二引导加载程序以及目标应用升级成功时,确定控制器软件升级完成。
进一步的,第二引导加载程序升级模块310,具体用于:
通过第一引导加载程序对第二引导加载程序区的第一标志和第二引导加载程序备份区的第二标志进行检测,获取第一检测结果;
通过第一引导加载程序将第一检测结果发送给上位机,并根据上位机基于第一检测结果所反馈的第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级。
进一步的,第二引导加载程序升级模块310,具体还用于:
通过第一引导加载程序判断第一检测结果中第一标志是否有效,若是,则将第二引导加载程序区中的第二引导加载程序拷贝到第二引导加载程序备份区,将第一标志擦除为无效,第二标志置位为有效,并将第一检测结果发送给上位机,接收上位机根据第一检测结果所反馈的第二引导加载程序升级信息,并将第二引导加载程序升级信息写入到第二引导加载程序区,以对第二引导加载程序进行升级,
否则,当确定第一检测结果中第二标志也无效时,直接将第一检测结果发送给上位机,接收上位机根据第一检测结果所反馈的第二引导加载程序升级信息,将第二引导加载程序升级信息写入到第二引导加载程序区,以对第二引导加载程序进行升级,并将第一标志置位为有效。
进一步的,第二引导加载程序升级模块310,具体还用于:
当确定第一检测结果中第一标志无效且第二标志有效时,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区;
将第二标志擦除为无效,并将第一标志置位为有效。
进一步的,目标应用升级模块320,具体用于:
当确定第二引导加载程序升级成功并且第一标志有效时,通过第一引导加载程序对应用区的第三标志和应用备份区的第四标志进行检测,获取第二检测结果;
通过第一引导加载程序将第二检测结果发送给上位机,并根据上位机基于第二检测结果所反馈的应用升级信息对应用区中的目标应用进行升级。
进一步的,目标应用升级模块320,具体还用于:
通过第一引导加载程序判断第二检测结果中第三标志是否有效,若是,则将应用区中的应用拷贝到应用备份区,将第三标志擦除为无效,并将第四标志置位为有效,并将第二检测结果发送给上位机,接收上位机根据第二检测结果所反馈的应用升级信息,并将应用升级信息写入到应用区,以对目标应用进行升级;
否则,当确定第二检测结果中第四标志也无效时,直接将第二检测结果发送给上位机,接收上位机根据第二检测结果所反馈的应用升级信息,将应用升级信息写入到应用区,以对目标应用进行升级,并将第三标志置位为有效。
进一步的,目标应用升级模块320,具体还用于:
当确定第二检测结果中第三标志无效且第四标志有效时,则将应用备份区中的目标应用拷贝到应用区;
将第四标志擦除为无效,并将第三标志置位为有效。
进一步的,软件升级装置,还包括:
第二引导加载程序升级检测模块,用于将程序升级信息写入到第二引导加载程序区之后,判断第二引导加载程序是否升级失败,若是,则将第二引导加载程序备份区中的第二引导加载程序拷贝到第二引导加载程序区,并将第二标志擦除为无效,将第一标志置位为有效,
否则,直接将第一标志置位为有效。
进一步的,软件升级装置,还包括:
软件升级检测模块,用于将应用升级信息写入到应用区之后,判断目标应用是否升级失败,若是,则将应用备份区中的目标应用拷贝到应用区,并将第四标志擦除为无效,将第三标志置位为有效,
否则,直接将第三标志置位为有效。
本发明实施例所提供的一种软件升级装置可执行本发明任意实施例所提供的软件升级装置方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实施本发明的实施例的终端设备10的结构示意图。终端设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。终端设备还可以表示各种形式的移动装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,终端设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(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的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如软件升级方法。
在一些实施例中,软件升级方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到终端设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的软件升级方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为软件升级方法。
本文中以上描述的装置和技术的各种实施方式可以在数字电子电路装置、集成电路装置、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上装置的装置(SOC)、复杂可编程逻辑终端设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程装置上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储装置、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储装置、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的软件升级方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程天车作业报警装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行装置、装置或终端设备使用或与指令执行装置、装置或终端设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体装置、装置或终端设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存终端设备、磁储存终端设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在终端设备上实施此处描述的装置和技术,该终端设备具有:用于向用户显示信息的显示装置(例如,触摸屏);以及按键,用户可以通过触摸屏或按键来将输入提供给终端设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种软件升级方法,其特征在于,将控制器内部flash划分为第一引导加载程序区、第二引导加载程序区和应用区,所述方法包括:
通过所述第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用所述第二引导加载程序升级信息对所述第二引导加载程序区中的第二引导加载程序进行升级,其中,所述第二引导加载程序的层级高于所述第一引导加载程序;
当确定所述第二引导加载程序升级成功时,采用所述第一引导加载程序获取应用升级信息,并采用所述应用升级信息对所述应用区中的目标应用进行升级;
在确定所述第二引导加载程序以及所述目标应用升级成功时,确定所述控制器软件升级完成。
2.根据权利要求1所述的方法,其特征在于,所述flash中还包括第二引导加载程序备份区;
所述通过所述第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用所述第二引导加载程序升级信息对所述第二引导加载程序区中的第二引导加载程序进行升级,包括:
通过所述第一引导加载程序对所述第二引导加载程序区的第一标志和所述第二引导加载程序备份区的第二标志进行检测,获取第一检测结果;
通过所述第一引导加载程序将所述第一检测结果发送给上位机,并根据所述上位机基于所述第一检测结果所反馈的第二引导加载程序升级信息对所述第二引导加载程序区中的第二引导加载程序进行升级。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一引导加载程序将所述第一检测结果发送给上位机,并根据所述上位机基于所述第一检测结果所反馈的第二引导加载程序升级信息对所述第二引导加载程序区中的第二引导加载程序进行升级,包括:
通过所述第一引导加载程序判断所述第一检测结果中所述第一标志是否有效,若是,则将所述第二引导加载程序区中的第二引导加载程序拷贝到所述第二引导加载程序备份区,将所述第一标志擦除为无效,所述第二标志置位为有效,并将所述第一检测结果发送给上位机,所述第一引导加载程序接收所述上位机根据所述第一检测结果所反馈的第二引导加载程序升级信息,并将所述第二引导加载程序升级信息写入到所述第二引导加载程序区,以对所述第二引导加载程序进行升级,
否则,当确定所述第一检测结果中所述第二标志也无效时,直接将所述第一检测结果发送给上位机,接收所述上位机根据所述第一检测结果所反馈的第二引导加载程序升级信息,将所述第二引导加载程序升级信息写入到所述第二引导加载程序区,以对所述第二引导加载程序进行升级,并将所述第一标志置位为有效。
4.根据权利要求3所述的方法,其特征在于,所述将所述程序升级信息写入到所述第二引导加载程序区之后,还包括:
判断所述第二引导加载程序是否升级失败,若是,则将所述第二引导加载程序备份区中的第二引导加载程序拷贝到所述第二引导加载程序区,并将所述第二标志擦除为无效,将所述第一标志置位为有效,
否则,直接将所述第一标志置位为有效。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当确定所述第一检测结果中所述第一标志无效且所述第二标志有效时,则将所述第二引导加载程序备份区中的第二引导加载程序拷贝到所述第二引导加载程序区;
将所述第二标志擦除为无效,并将所述第一标志置位为有效。
6.根据权利要求2所述的方法,其特征在于,所述flash中还包括应用备份区;
所述当确定所述第二引导加载程序升级成功时,采用所述第一引导加载程序获取应用升级信息,并采用所述应用升级信息对所述应用区中的目标应用进行升级,包括:
当确定所述第二引导加载程序升级成功并且所述第一标志有效时,通过所述第一引导加载程序对所述应用区的第三标志和所述应用备份区的第四标志进行检测,获取第二检测结果;
通过所述第一引导加载程序将所述第二检测结果发送给上位机,并根据所述上位机基于所述第二检测结果所反馈的应用升级信息对所述应用区中的目标应用进行升级。
7.根据权利要求6所述的方法,其特征在于,所述通过所述第一引导加载程序将所述第二检测结果发送给上位机,并根据所述上位机基于所述第二检测结果所反馈的应用升级信息对所述应用区中的目标应用进行升级,包括:
通过所述第一引导加载程序判断所述第二检测结果中所述第三标志是否有效,若是,则将所述应用区中的应用拷贝到所述应用备份区,将所述第三标志擦除为无效,并将所述第四标志置位为有效,并将所述第二检测结果发送给上位机,所述第二引导加载程序接收所述上位机根据所述第二检测结果所反馈的应用升级信息,并将所述应用升级信息写入到所述应用区,以对所述目标应用进行升级;
否则,当确定所述第二检测结果中所述第四标志也无效时,直接将所述第二检测结果发送给上位机,接收所述上位机根据所述第二检测结果所反馈的应用升级信息,将所述应用升级信息写入到所述应用区,以对所述目标应用进行升级,并将所述第三标志置位为有效。
8.根据权利要求7所述的方法,其特征在于,所述将所述应用升级信息写入到所述应用区之后,还包括:
判断所述目标应用是否升级失败,若是,则将所述应用备份区中的目标应用拷贝到所述应用区,并将所述第四标志擦除为无效,将所述第三标志置位为有效,
否则,直接将所述第三标志置位为有效。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当确定所述第二检测结果中所述第三标志无效且所述第四标志有效时,则将所述应用备份区中的目标应用拷贝到所述应用区;
将所述第四标志擦除为无效,并将所述第三标志置位为有效。
10.一种软件升级装置,其特征在于,包括:
第二引导加载程序升级模块,用于通过第一引导加载程序区中所存储的第一引导加载程序获取第二引导加载程序升级信息,并采用所述第二引导加载程序升级信息对第二引导加载程序区中的第二引导加载程序进行升级,其中,所述第二引导加载程序的层级高于所述第一引导加载程序;
目标应用升级模块,用于当确定所述第二引导加载程序升级成功时,采用所述第一引导加载程序获取应用升级信息,并采用所述应用升级信息对所述应用区中的目标应用进行升级;
软件升级模块,用于在确定所述第二引导加载程序以及所述目标应用升级成功时,确定控制器软件升级完成。
11.一种终端设备,其特征在于,所述终端设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可执行指令的存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述方法。
CN202311591463.5A 2023-11-24 2023-11-24 一种软件升级方法、装置、终端设备及存储介质 Pending CN117492799A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311591463.5A CN117492799A (zh) 2023-11-24 2023-11-24 一种软件升级方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311591463.5A CN117492799A (zh) 2023-11-24 2023-11-24 一种软件升级方法、装置、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN117492799A true CN117492799A (zh) 2024-02-02

Family

ID=89670842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311591463.5A Pending CN117492799A (zh) 2023-11-24 2023-11-24 一种软件升级方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN117492799A (zh)

Similar Documents

Publication Publication Date Title
CN106020865B (zh) 一种***升级方法和装置
CN103150231B (zh) 计算机开机的方法与计算机***
US8423991B2 (en) Embedded network device and firmware upgrading method
EP2189906A1 (en) Method and apparatus for abnormality recovering of data card, and data card
TW202030602A (zh) 基本輸入/輸出系統的恢復及更新的方法及系統
US20100049961A1 (en) Update method for basic input/output system and update system thereof
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN111966380A (zh) 一种bmc固件升级方法、***、终端及存储介质
CN110096882B (zh) 一种设备运行过程中的安全度量方法
TW202131170A (zh) 韌體損壞恢復技術
CN117130672A (zh) 服务器启动流程控制方法、***、终端及存储介质
CN109634782B (zh) 一种***健壮性的检测方法、装置、存储介质及终端
WO2023206926A1 (zh) 一种恢复用户配置数据的方法、装置及介质
CN117492799A (zh) 一种软件升级方法、装置、终端设备及存储介质
CN114153503A (zh) 一种bios控制方法、装置、介质
CN113778485A (zh) 电子芯片的***运行方法、装置、电子芯片和存储介质
CN116501349A (zh) Gpu载板自动升级方法、装置、电子设备及存储介质
CN114296765A (zh) 一种嵌入式设备、固件升级方法及装置
CN117075977A (zh) 一种处理器的启动方法、装置、电子设备及存储介质
CN113849821A (zh) 一种信息处理方法
CN117311764A (zh) 一种固件升级与还原方法、装置、设备及存储介质
CN115562803A (zh) 一种镜像文件的自动恢复方法、装置、设备及存储介质
CN117675576A (zh) 一种服务器固件升级方法、装置、服务器及电子设备
CN116578309A (zh) 一种镜像更新方法、装置以及介质
CN114691422A (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