CN118051358A - 一种嵌入式系统故障恢复方法和装置 - Google Patents

一种嵌入式系统故障恢复方法和装置 Download PDF

Info

Publication number
CN118051358A
CN118051358A CN202211398464.3A CN202211398464A CN118051358A CN 118051358 A CN118051358 A CN 118051358A CN 202211398464 A CN202211398464 A CN 202211398464A CN 118051358 A CN118051358 A CN 118051358A
Authority
CN
China
Prior art keywords
firmware
program
partition
embedded system
parameter
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
CN202211398464.3A
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.)
Beijing Will Create Technology Co ltd
Original Assignee
Beijing Will Create 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 Will Create Technology Co ltd filed Critical Beijing Will Create Technology Co ltd
Priority to CN202211398464.3A priority Critical patent/CN118051358A/zh
Publication of CN118051358A publication Critical patent/CN118051358A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种嵌入式系统故障恢复方法和装置,该方法包括:在嵌入式设备上电后,加载嵌入式系统的启动加载器;所述启动加载器判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:擦除嵌入式系统的固件分区和程序与参数分区;将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。本发明能够在嵌入式系统故障时自动运行恢复功能,无需人工参与,用户也不会感知到,极大的提高了嵌入式系统运行期间的稳定性,并提高了生产效率。

Description

一种嵌入式系统故障恢复方法和装置
技术领域
本发明涉及嵌入式系统技术领域,特别涉及一种嵌入式系统故障恢复方法和装置。
背景技术
嵌入式系统一般由固件、程序及参数等部分所组成。固件一般指的是各种操作系统,包含系统内核和各种驱动等。程序指的是在操作系统上执行各种具体功能的功能模块。参数指的是固件和程序运行时所依赖的各种数据。
嵌入式系统可能会由于异常断电、存储器件损坏或其他逻辑错误等原因造成固件、程序和参数损坏或丢失,导致嵌入式系统无法正常运行。传统的解决办法是人工重新烧写固件和程序,并配置所需的参数。这种解决办法在实际操作过程中存在以下几个问题:
一、嵌入式设备可能被放置在不便于操作或者危险的环境中,比如可能被放置在机箱中、有高压电的危险设备中,导致不易操作、危险系数高。
二、需要人工参与,并且对人员素质要求很高,必须掌握全流程的烧写和配置方法,因此实时性差。
三、会对现场生产过程造成长时间的停滞,影响生产效率,并且可能存在解决不及时的问题,用户满意度降低。
发明内容
有鉴于此,本发明的目的在于提供了一种嵌入式系统故障恢复方法和装置,能够解决上述问题。
为了达到上述目的,本发明提供了如下技术方案:
一种嵌入式系统故障恢复方法,包括:
加载嵌入式系统的启动加载器;
所述启动加载器判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:
擦除嵌入式系统的固件分区和程序与参数分区;
将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
一种嵌入式系统故障恢复装置,包括:
启动单元,用于加载嵌入式系统的启动加载器;
启动加载器,用于判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:
擦除嵌入式系统的固件分区和程序与参数分区;
将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
由上面的技术方案可知,本发明中,启动加载器确定上一次启动后嵌入式系统异常时,擦除嵌入式系统的固件分区和程序与参数分区,并将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区,之后加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。可以看出,本发明通过判断上一次启动后嵌入式系统是否异常来确定嵌入式系统是否故障,并在发生故障时能够及时地利用备份分区中存储的备份数据自动运行恢复功能,整个故障恢复过程无需人工参与,用户也不会感知到,极大的提高了嵌入式系统运行期间的稳定性和安全性,并提高了生产效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一嵌入式系统故障恢复方法流程图;
图2是本发明实施例分区划分示意图;
图3是本发明实施例二嵌入式系统故障恢复方法流程图;
图4是本发明实施例三嵌入式系统故障恢复方法流程图;
图5是本发明实施例嵌入式系统故障恢复装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
参见图1,图1是本发明实施例一嵌入式系统故障恢复方法流程图,如图1所示,该方法主要包括以下:
步骤100、嵌入式设备上电;
步骤101、加载嵌入式系统的启动加载器(Bootloader);
这里,嵌入式系统的启动过程一般为加载Bootloader→加载固件→加载程序和参数。
步骤102、启动加载器判定上一次启动后嵌入式系统是否正常,如果正常,则直接执行步骤105以完成嵌入式系统的正常启动流程,否则,执行步骤103至步骤105以完成嵌入式系统的故障恢复操作流程:
本实施例中,当上一次启动后嵌入式系统正常时,表明嵌入式系统在上一次使用时可能未发生故障,因此,本次启动时,按照正常启动流程执行即可,即直接执行步骤105。当上一次启动后嵌入式系统异常时,表明嵌入式系统在上一次使用时可能因异常断电、存储器件损坏或其他逻辑错误等原因造成固件、程序和参数损坏或丢失,因此,本次启动时,需要走故障恢复流程,即执行步骤103至步骤105。
步骤103、擦除嵌入式系统的固件分区和程序与参数分区;
这里,擦除嵌入式系统的固件分区和程序与参数分区,即将固件分区和程序与参数分区均进行格式化。
步骤104、将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
本实施例中,可以预先从嵌入式系统的存储模块中划分出如图2所示的至少以下五个分区:Bootloader分区、固件备份分区、程序与参数备份分区、固件分区、以及程序与参数分区。其中,
Bootloader分区,是嵌入式系统的原有分区,用于存放Bootloader程序。Bootloader是嵌入式系统在加电后执行的第一段代码,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
固件备份分区和固件分区,均用于存放嵌入式系统的固件(即操作系统),其中,固件分区是嵌入式系统的原有分区,固件备份分区则是为使嵌入式系统在发生故障后能够自动运行故障恢复功能而新划分出来的分区,固件备份分区中存放的固件,作为固件分区中存放的固件的备份,用于在固件分区中的固件发生损坏或丢失后恢复固件分区中的固件。
程序与参数备份分区和程序与参数分区,均用于存放嵌入式系统的程序和参数,其中,程序与参数分区是嵌入式系统的原有分区,程序与参数备份分区则是为使嵌入式系统在发生故障后能够自动运行故障恢复功能而新划分出来的分区,程序与参数备份分区中存放的程序与参数,作为程序与参数分区中存放的程序与参数的备份,用于在程序与参数分区中的程序或参数损坏或丢失后恢复程序与参数分区中的程序与参数。
步骤105、加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
本实施例中,所述固件加载所述程序与参数分区中的程序和参数,包括:加载所述程序与参数分区中的主程序及其参数。
至此嵌入式系统完成启动过程,开始执行正常功能。
从图1所示方法可以看出,本实施例中,在判定上一次启动后嵌入式系统异常时,利用固件备份分区中的备份固件恢复固件分区中的固件,利用程序与参数备份分区中的备份程序和备份参数恢复程序与参数分区中的程序与参数,之后依次加载固件分区中的固件、及程序与参数分区中的程序和参数,从而完成嵌入式系统的启动过程。可以看出,本发明能够自动检测固件、程序和参数的正确性,在确定固件、程序、与参数发生损坏或丢失等故障时能够自动运行故障恢复功能,无需人工参与,用户也不会感知到,极大的提高了嵌入式系统运行期间的稳定性,并提高了生产效率。
参见图3,图3是本发明实施例二嵌入式系统故障恢复方法流程图,如图3所示,该方法主要包括以下:
步骤300、嵌入式设备上电;
步骤301、加载嵌入式系统的启动加载器(Bootloader);
步骤302、启动加载器判断嵌入式系统中的系统正常标志位是否被置位,如果未被置位,则执行步骤303,如果被置位,则执行步骤307:
本实施例中,在嵌入式系统中增加一个系统正常标志位,嵌入式系统正常启动后,会对该系统正常标志位进行置位,以此表明本次启动后嵌入式系统正常。因此,启动加载器可以通过对所述系统正常标志位被置位与否来确定上一次启动时嵌入式系统是否正常,具体地,在加载嵌入式系统的启动加载器之后,启动加载器判断所述系统正常标志为是否被置位,如果所述系统正常标志位被置位,则可以确定上一次启动后嵌入式系统正常,如果所述系统正常标志位未被置位,则可以确定上一次启动后嵌入式系统异常。
步骤303、确定上一次启动后嵌入式系统异常;
步骤304、擦除嵌入式系统的固件分区和程序与参数分区;
这里,擦除嵌入式系统的固件分区和程序与参数分区,即将固件分区和程序与参数分区均进行格式化。
步骤305、将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区,转至步骤307执行。
至此,固件分区中的固件和程序与参数分区中的程序与参数均恢复正常,不存在损坏或丢失问题。
步骤306、确定上一次启动后嵌入式系统正常;
步骤307、清除所述系统正常标志位。
步骤308、加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的主程序及其参数,如果加载所述固件和加载所述主程序均成功,则执行继续步骤309,否则,执行步骤311。
步骤309、所述主程序被成功加载后,检测确定所述程序与参数分区中的各应用程序及其参数是否损坏或丢失,如果均未损坏或丢失,则继续执行步骤310,否则,执行步骤311;
本实施例中,可以预先根据嵌入式系统中每个应用程序的相关信息(该程序的描述信息、该程序的参数等)生成并存储该应用程序的数字签名,在所述主程序被成功加载后,可以根据每个应用程序的相关信息生成数字签名,并与存储的该应用程序的数字签名进行比较,如果一致,则可以确定该应用程序及其参数未损坏或丢失,否则,可以确定该应用程序及其参数损坏或丢失。
步骤310、确定本次启动后嵌入式系统正常,对所述系统正常标志位进行置位。
至此,嵌入式系统完成启动,开始正常工作。
本实施例中,对于固件分区中的固件、程序与参数分区中的程序、参数的更新可采用现有更新方式,而当固件分区中的固件、程序与参数分区中的程序或参数发生更新时,也要对固件备份分区中的固件、程序与参数分区中的程序或参数进行相应更新。
为此,在确定本次启动后嵌入式系统正常之后,还可以进一步包括:
如果所述固件分区中的固件发生更新,则将更新后的固件备份到固件备份分区;
如果所述程序与参数分区中的程序和/或参数发生更新,则将更新后的程序和/或参数备份到程序与参数备份分区。
步骤311、停止嵌入式系统的喂狗操作以复位嵌入式系统,转至步骤301执行。
这里,喂狗操作是指:在嵌入式系统中为了防止系统死机或其他异常,周期性地对看门狗模块执行一次输入操作,当系统死机或出现其他异常后将停止喂狗操作。如果停止喂狗操作的时长超过预设的最大喂狗间隔,则看门狗模块会将嵌入式系统复位,从而重新返回步骤301执行。
从图3所示方法可以看出,本实施例中,利用嵌入式系统的系统正常标志为是否被置位来确定上一次启动后嵌入式系统是否异常,并在判定上一次启动后嵌入式系统是否异常时,利用固件备份分区中的备份固件恢复固件分区中的固件,利用程序与参数备份分区中的备份程序和备份参数恢复程序与参数分区中的程序与参数,之后依次加载固件分区中的固件、及程序与参数分区中的程序和参数,从而完成嵌入式系统的启动过程。嵌入式系统的故障恢复过程无需人工参与,用户也不会感知到,可以极大地提高嵌入式系统运行期间的稳定性和安全性,提高了生产效率。
参见图4,图4是本发明实施例三嵌入式系统故障恢复方法流程图,如图4所示,该方法主要包括以下:
步骤400、嵌入式系统上电;
步骤401、加载嵌入式系统的启动加载器(Bootloader);
步骤402、启动加载器判断嵌入式系统中的系统正常标志位是否被置位,如果未被置位,则执行步骤403,如果被置位,则执行步骤407:
本实施例中,在嵌入式系统中增加一个系统正常标志位,嵌入式系统正常启动后,会对该系统正常标志位进行置位,以此表明本次启动后嵌入式系统正常。因此,启动加载器可以通过对所述系统正常标志位被置位与否来确定上一次启动时嵌入式系统是否正常,具体地,如果所述系统正常标志位被置位,则可以确定上一次启动后嵌入式系统正常,如果所述系统正常标志位未被置位,则可以确定上一次启动后嵌入式系统异常。
步骤403、确定上一次启动后嵌入式系统异常,将预先设置在启动加载器中的系统异常计数器加1;
本实施例中,所述系统异常计数器可以预先设置在Bootloader中,用于对嵌入式系统的连续异常启动次数进行统计。
在实际应用中,如果固件、程序和参数并未损坏或丢失,只是在嵌入式系统启动过程中由于某些原因(比如断电)造成启动中断,在下一次系统重新启动的时候,Bootloader会因系统正常标志位未被置位而执行故障恢复流程。为了避免该情况,可以在Bootloader中设置一个系统异常计数器,当判断系统正常标志位未被置位时,可以将系统异常计数器的计数值加1,当系统异常计数器未超过预设计数值时,仍执行嵌入式系统的正常启动流程,否则,执行嵌入式系统的故障恢复流程,从而可以最大程度上减少误恢复操作。这里,所述预设计数值的具体取值可以是3。
步骤404、判断所述系统异常计数器是否超过预设计数值,如果是,则继续执行步骤405,否则,转至步骤408执行;
步骤405、擦除嵌入式系统的固件分区和程序与参数分区;
这里,擦除嵌入式系统的固件分区和程序与参数分区,即将固件分区和程序与参数分区均进行格式化。
步骤406、将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区,转至步骤408执行。
至此,固件分区中的固件和程序与参数分区中的程序与参数均恢复正常,不存在损坏或丢失问题。
步骤407、确定上一次启动后嵌入式系统正常;
步骤408、清除所述系统正常标志位;
步骤409、加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的主程序及其参数,如果加载所述固件失败和加载所述主程序均成功,则执行继续步骤410,否则,执行步骤412。
步骤410、所述主程序被成功加载后,检测确定所述程序与参数分区中的各应用程序及其参数是否损坏或丢失,如果均未损坏或丢失,则继续执行步骤411,否则,执行步骤412;
本实施例中,可以预先根据嵌入式系统中每个应用程序的相关信息(该程序的描述信息、该程序的参数等)生成并存储该应用程序的数字签名,在所述主程序被成功加载后,可以根据每个应用程序的相关信息生成数字签名,并与存储的该应用程序的数字签名进行比较,如果一致,则可以确定该应用程序及其参数未损坏或丢失,否则,可以确定该应用程序及其参数损坏或丢失。
本实施例中,如果确定所述程序与参数分区中的至少一个应用程序及其参数损坏或丢失,则可以确定本次启动后嵌入式系统异常,需要停止嵌入式系统的喂狗操作以复位嵌入式系统,即执行步骤412。
步骤411、确定本次启动后嵌入式系统正常,对所述系统正常标志位进行置位,并将所述系统异常计数器的计数值清零。
至此,嵌入式系统启动完成,开始正常工作。
本实施例中,确定本次启动后嵌入式系统正常之后,还可以进一步包括:
如果所述固件分区中的固件发生更新,则将更新后的固件备份到固件备份分区;
如果所述程序与参数分区中的程序和/或参数发生更新,则将更新后的程序和/或参数备份到程序与参数备份分区。
步骤412、停止嵌入式系统的喂狗操作以复位嵌入式系统,转至步骤401执行。
这里,喂狗操作是指:在嵌入式系统中为了防止系统死机或其他异常,周期性地对看门狗模块执行一次输入操作,当系统死机或出现其他异常后将停止喂狗操作。如果停止喂狗操作的时长超过预设的最大喂狗间隔,则看门狗模块会将嵌入式系统复位,从而重新返回步骤401执行嵌入式系统的启动过程。
从图4所示方法可以看出,本实施例中,在判定上一次启动后嵌入式系统异常时,增加系数异常计数器的值,并根据系统异常计数器确定是否需要进入故障恢复流程,是则利用固件备份分区中的备份固件恢复固件分区中的固件,利用程序与参数备份分区中的备份程序和备份参数恢复程序与参数分区中的程序与参数,之后依次加载固件分区中的固件、及程序与参数分区中的程序和参数,从而完成嵌入式系统的启动过程。本实施例中,根据系统异常计数器确定是否需要进入故障恢复流程,可以有效减小错误进入故障恢复流程的概率;并且嵌入式系统的故障恢复过程无需人工参与,用户也不会感知到,可以极大地提高嵌入式系统运行期间的稳定性和安全性,提高了生产效率。
以上对本发明实施例嵌入式系统故障恢复方法进行了详细说明,本发明实施例还提供了一种嵌入式系统故障恢复装置,以下结合图5进行详细说明。
参见图5,图5是本发明实施例嵌入式系统故障恢复装置的结构示意图,如图5所示,该装置包括:
启动单元501,用于在嵌入式设备上电后,加载嵌入式系统的启动加载器502;
启动加载器502,用于判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:
擦除嵌入式系统的固件分区和程序与参数分区;
将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
加载所述固件分区中的固件503,并在所述固件503被成功加载后,由所述固件503加载所述程序与参数分区中的程序和参数。
图5所示装置中,
所述启动加载器502,还用于:判定上一次启动后嵌入式系统正常时,执行以下操作:
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
图5所示装置中,
所述固件503,加载所述程序与参数分区中的程序和参数,包括:加载所述程序与参数分区中的主程504及其参数。
图5所示装置中,
所述主程序504被成功加载后,如果检测确定所述程序与参数分区中的各应用程序及其参数均未损坏或丢失,则确定本次启动后嵌入式系统正常,对预先配置在嵌入式系统中的系统正常标志位进行置位;
所述启动加载器502,判断上一次启动后嵌入式系统是否异常,包括:
如果所述系统正常标志位被置位,则确定上一次启动后嵌入式系统正常;
如果所述系统正常标志位未被置位,则确定上一次启动后嵌入式系统异常;
所述启动加载,502,判定上一次启动后嵌入式系统正常后,进一步包括:清除所述系统正常标志位。
图5所示装置中,
所述启动加载器502,判定上一次启动后嵌入式系统异常之后,执行后续的故障恢复操作步骤之前,进一步包括:
将预先设置在启动加载器中的系统异常计数器加1,如果所述系统异常计数器的计数值超过预设计数值,则执行后续的故障恢复操作步骤,否则,清除所述系统正常标志位,加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数;
所述主程序504,确定本次启动后嵌入式系统正常之后,进一步包括:将所述系统异常计数器的计数值清零。
图5所示装置中,
所述启动加载器502加载所述固件失败,或者所述固件503加载所述主程序失败,或者所述主程序504检测确定所述程序与参数分区中的至少一个应用程序及其参数损坏或丢失时,确定本次启动后嵌入式系统异常,停止嵌入式系统的喂狗操作以复位嵌入式系统。
图5所示装置中,
所述主程序504,确定本次启动后嵌入式系统正常之后,进一步包括:
如果所述固件分区中的固件发生更新,则将更新后的固件备份到固件备份分区;
如果所述程序与参数分区中的程序和/或参数发生更新,则将更新后的程序和/或参数备份到程序与参数备份分区。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种嵌入式系统故障恢复方法,其特征在于,该方法包括:
在嵌入式设备上电后,加载嵌入式系统的启动加载器;
所述启动加载器判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:
擦除嵌入式系统的固件分区和程序与参数分区;
将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
2.根据权利要求1所述的方法,其特征在于,
所述启动加载器判定上一次启动后嵌入式系统正常时,执行以下操作:
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
3.根据权利要求1或2所述的方法,其特征在于,
所述固件加载所述程序与参数分区中的程序和参数,包括:加载所述程序与参数分区中的主程序及其参数。
4.根据权利要求3所述的方法,其特征在于,
所述主程序被成功加载后,如果检测确定所述程序与参数分区中的各应用程序及其参数均未损坏或丢失,则确定本次启动后嵌入式系统正常,对预先配置在嵌入式系统中的系统正常标志位进行置位;
所述启动加载器判断上一次启动后嵌入式系统是否异常,包括:
如果所述系统正常标志位被置位,则确定上一次启动后嵌入式系统正常;
如果所述系统正常标志位未被置位,则确定上一次启动后嵌入式系统异常;
所述启动加载器判定上一次启动后嵌入式系统正常后,进一步包括:清除所述系统正常标志位。
5.根据权利要求4所述的方法,其特征在于,
所述启动加载器判定上一次启动后嵌入式系统异常之后,执行后续的故障恢复操作步骤之前,进一步包括:
增加预先设置在启动加载器中的系统异常计数器的计数值,如果所述系统异常计数器的计数值超过预设计数值,则执行后续的故障恢复操作步骤,否则,清除所述系统正常标志位,加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数;
确定本次启动后嵌入式系统正常之后,进一步包括:将所述系统异常计数器的计数值清零。
6.根据权利要求5所述的方法,其特征在于,
加载所述固件失败,或者所述固件加载所述主程序失败,或者所述主程序检测确定所述程序与参数分区中的至少一个应用程序及其参数损坏或丢失时,确定本次启动后嵌入式系统异常,停止嵌入式系统的喂狗操作以复位嵌入式系统。
7.根据权利要求4所述的方法,其特征在于,
确定本次启动后嵌入式系统正常之后,进一步包括:
如果所述固件分区中的固件发生更新,则将更新后的固件备份到固件备份分区;
如果所述程序与参数分区中的程序和/或参数发生更新,则将更新后的程序和/或参数备份到程序与参数备份分区。
8.一种嵌入式系统故障恢复装置,其特征在于,该装置包括:
启动单元,用于在嵌入式设备上电后,加载嵌入式系统的启动加载器;
启动加载器,用于判定上一次启动后嵌入式系统异常时,执行以下故障恢复操作:
擦除嵌入式系统的固件分区和程序与参数分区;
将嵌入式系统的固件备份分区中的备份固件写入所述固件分区,将嵌入式系统的程序与参数备份分区中的备份程序和备份参数写入所述程序与参数分区;
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
9.根据权利要求8所述的装置,其特征在于,
所述启动加载器,还用于:判定上一次启动后嵌入式系统正常时,执行以下操作:
加载所述固件分区中的固件,并在所述固件被成功加载后,由所述固件加载所述程序与参数分区中的程序和参数。
10.根据权利要求8或9所述的装置,其特征在于,
所述固件加载所述程序与参数分区中的程序和参数,包括:加载所述程序与参数分区中的主程序及其参数。
CN202211398464.3A 2022-11-09 2022-11-09 一种嵌入式系统故障恢复方法和装置 Pending CN118051358A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211398464.3A CN118051358A (zh) 2022-11-09 2022-11-09 一种嵌入式系统故障恢复方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211398464.3A CN118051358A (zh) 2022-11-09 2022-11-09 一种嵌入式系统故障恢复方法和装置

Publications (1)

Publication Number Publication Date
CN118051358A true CN118051358A (zh) 2024-05-17

Family

ID=91052453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211398464.3A Pending CN118051358A (zh) 2022-11-09 2022-11-09 一种嵌入式系统故障恢复方法和装置

Country Status (1)

Country Link
CN (1) CN118051358A (zh)

Similar Documents

Publication Publication Date Title
US7340638B2 (en) Operating system update and boot failure recovery
AU2018374925B2 (en) Starting method of energy storage system and energy storage device
US20110307879A1 (en) Program update device, program update method, and information processing device
US7941658B2 (en) Computer system and method for updating program code
US6715106B1 (en) Bios corruption detection system and method
CN113064747A (zh) 一种服务器启动过程中的故障定位方法、系统及装置
US8806265B2 (en) LPAR creation and repair for automated error recovery
CN111767172A (zh) 一种基于看门狗及bootloader的机顶盒自修复办法
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
CN111552592A (zh) 一种双备份启动方法及系统
CN105138430A (zh) 一种嵌入式操作系统备份与恢复的方法及装置
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN105183580A (zh) 一种引导程序的存储方法、故障恢复方法及设备
CN109933374B (zh) 一种计算机启动方法
CN111273928B (zh) 一种自升级的bootloader设计方法
CN113220319A (zh) 一种数据更新方法、装置及车辆
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
CN111984195A (zh) 一种提高嵌入式Linux系统稳定性的方法及装置
CN118051358A (zh) 一种嵌入式系统故障恢复方法和装置
CN110928726A (zh) 一种基于看门狗及pxe的嵌入式系统自恢复方法及系统
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
CN116185510A (zh) 分区切换启动方法、阵列服务器和计算机可读存储介质
CN106325912B (zh) 嵌入式操作系统的启动方法及装置
US9529581B2 (en) Circuit and method for writing program codes of basic input/output system
CN114185706A (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