CN113626065B - 一种嵌入式固件冗余方法及装置 - Google Patents

一种嵌入式固件冗余方法及装置 Download PDF

Info

Publication number
CN113626065B
CN113626065B CN202110925245.5A CN202110925245A CN113626065B CN 113626065 B CN113626065 B CN 113626065B CN 202110925245 A CN202110925245 A CN 202110925245A CN 113626065 B CN113626065 B CN 113626065B
Authority
CN
China
Prior art keywords
firmware
embedded firmware
embedded
checking
data
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.)
Active
Application number
CN202110925245.5A
Other languages
English (en)
Other versions
CN113626065A (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.)
Shenzhen Dietong Shixun Co ltd
Original Assignee
Shenzhen Dietong Shixun 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 Shenzhen Dietong Shixun Co ltd filed Critical Shenzhen Dietong Shixun Co ltd
Priority to CN202110925245.5A priority Critical patent/CN113626065B/zh
Publication of CN113626065A publication Critical patent/CN113626065A/zh
Application granted granted Critical
Publication of CN113626065B publication Critical patent/CN113626065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Abstract

本发明适用固件冗余技术领域,提供了一种嵌入式固件冗余方法及装置;使用时接收嵌入式固件的启动指令,根据启动指令对嵌入式固件进行检校、包括:获取嵌入式固件的固件标识,根据固件标识得到第一检校数据,将第一检校数据写入嵌入式固件位于微控制器或存储器中的存储区以产生第二检校数据,将第一检校数据与第二检校数据进行匹配检校,若匹配一致则启动对应的嵌入式固件,反之则检校失败发出对应的固件异常报警提示;进一步地,在每次调用固件时优先与第一嵌入式固件、第二嵌入式固件中的响应较快的一嵌入式固件进行数据交换并与另一嵌入式固件保持数据同步;尽而实现冗余固件的无缝衔接,进而提高了用户体验。

Description

一种嵌入式固件冗余方法及装置
技术领域
本发明属于固件冗余技术领域,尤其涉及一种嵌入式固件冗余方法。
背景技术
现有的固件冗余技术大多只对系统引导进行冗余,无法在系统运行的过程中进行无缝衔接,已经不能满足人们的使用需求。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种嵌入式固件冗余方法,旨在解决由于现有技术无法提供一种有效的嵌入式固件冗余方法,导致无法实现冗余固件的无缝衔接、用户体验不佳的问题。
一方面,本发明提供了一种嵌入式固件冗余方法,所述的方法包括下述步骤:
接收嵌入式固件的启动指令,根据所述启动指令对所述嵌入式固件进行检校,在检校成功后启动所述嵌入式固件。
进一步地,所述嵌入式固件至少包括第一所述嵌入式固件和第二所述嵌入式固件,所述嵌入式固件设于微控制器或存储器内;
根据所述启动指令对所述嵌入式固件进行检校包括:获取所述嵌入式固件的固件标识,根据所述固件标识得到第一检校数据。
进一步地,根据所述固件标识得到第一检校数据后将所述第一检校数据写入所述嵌入式固件位于所述微控制器或所述存储器中的存储区以产生第二检校数据。
进一步地,根据所述启动指令对所述嵌入式固件进行检校还包括:
将所述第一检校数据与所述第二检校数据进行匹配检校,若匹配一致则启动对应的所述嵌入式固件,反之则检校失败发出对应的固件异常报警提示。
优选地,根据所述启动指令对所述嵌入式固件进行检校成功之后或启动所述嵌入式固件后,优先与第一所述嵌入式固件、第二所述嵌入式固件中的响应较快的一所述嵌入式固件进行数据交换并与另一所述嵌入式固件保持数据同步。
进一步地,若在第一所述嵌入式固件、第二所述嵌入式固件中同一所述嵌入式固件连续一定次数未能优先于另一所述嵌入式固件进行响应则对该所述嵌入式固件进行状态检测。
进一步地,所述状态检测包括:对所述嵌入式固件重新进行检校,若检校失败则发出对应的固件异常报警提示;
所述状态检测还包括:对所述嵌入式固件进行握手,若握手失败则发出对应的固件异常报警提示。
进一步地,所述检校失败或握手失败后,所述嵌入式固件在下次被调用启动时进行禁止。
进一步优选地,若对所述嵌入式固件重新进行检校成功和对所述嵌入式固件进行握手也成功,则对该所述嵌入式固件进行更新;
对所述嵌入式固件进行更新包括:将待更新的固件写入所述微控制器或所述存储器中的第一所述存储区,所述微控制器或所述存储器中的第二所述存储区依旧保留旧的固件;
所述微控制器或所述存储器的存储区至少包括第一所述存储区和第二所述存储区;
所述微控制器或所述存储器中的第一所述存储区内的固件升级成功后克隆至第二所述存储区;
待另一正在运行的所述嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的所述嵌入式固件对应的微控制器或所述存储器的存储区内。
另一方面,本发明提供了一种嵌入式固件冗余装置,所述装置包括:
接收单元,用于接收嵌入式固件的启动指令;
检校单元,用于根据所述启动指令对所述嵌入式固件进行检校;
启动单元,用于在检校成功后启动所述嵌入式固件;
重置单元,用于对所述嵌入式固件进行更新;
克隆单元,用于待正在运行的所述嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的所述嵌入式固件对应的微控制器或所述存储器的存储区内;
报警单元,用于发出对应的固件异常报警提示;
禁用单元,用于在所述检校失败或握手失败后,所述嵌入式固件在下次被调用启动时进行禁止。
本发明的有益效果在于:使用时接收嵌入式固件的启动指令,根据启动指令对嵌入式固件进行检校、包括:获取嵌入式固件的固件标识,根据固件标识得到第一检校数据,将第一检校数据写入嵌入式固件位于微控制器或存储器中的存储区以产生第二检校数据,将第一检校数据与第二检校数据进行匹配检校,若匹配一致则启动对应的嵌入式固件,反之则检校失败发出对应的固件异常报警提示;进一步地,在每次调用固件时优先与第一嵌入式固件、第二嵌入式固件中的响应较快的一嵌入式固件进行数据交换并与另一嵌入式固件保持数据同步;尽而实现冗余固件的无缝衔接,进而提高了用户体验。
附图说明
图1是本发明实施例一提供的嵌入式固件冗余方法的实现流程图;
图2是本发明实施例二提供的嵌入式固件冗余装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明实施例一提供的嵌入式固件冗余方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
在步骤S101中,接收嵌入式固件的启动指令;
在本发明的实施例中,即接收读取指令。
在步骤S102中,根据启动指令对嵌入式固件进行检校;
在本发明的实施例中,嵌入式固件至少包括第一嵌入式固件和第二嵌入式固件,嵌入式固件设于微控制器或存储器内;
根据启动指令对嵌入式固件进行检校包括:获取嵌入式固件的固件标识,根据固件标识得到第一检校数据;
进一步地,根据固件标识得到第一检校数据后将第一检校数据写入嵌入式固件位于微控制器或存储器中的存储区以产生第二检校数据;
进一步地,根据启动指令对嵌入式固件进行检校还包括:
将第一检校数据与第二检校数据进行匹配检校,若匹配一致则启动对应的嵌入式固件,反之则检校失败发出对应的固件异常报警提示。
在步骤S103中,在检校成功后启动嵌入式固件;
在本发明的实施例中,对嵌入式固件进行检校以防止被固件被篡改,进一步提高安全性。
在步骤S104中,优先与第一嵌入式固件、第二嵌入式固件中的响应较快的一嵌入式固件进行数据交换并与另一嵌入式固件保持数据同步;
在本发明的实施例中,根据启动指令对嵌入式固件进行检校成功之后或启动嵌入式固件后,优先与第一嵌入式固件、第二嵌入式固件中的响应较快的一嵌入式固件进行数据交换并与另一嵌入式固件保持数据同步;实现对冗余固件的无缝衔接替换,大大提高了用户的体验。
在步骤S105中,若在第一嵌入式固件、第二嵌入式固件中同一嵌入式固件连续一定次数未能优先于另一嵌入式固件进行响应则对该嵌入式固件进行状态检测;
在本发明的实施例中,状态检测包括:对嵌入式固件重新进行检校,若检校失败则发出对应的固件异常报警提示;
状态检测还包括:对嵌入式固件进行握手,若握手失败则发出对应的固件异常报警提示。
在步骤S106中,状态检测失败,则嵌入式固件在下次被调用启动时进行禁止;
在本发明的实施例中,状态检测失败包括:检校失败和握手失败。
进一步优选地,若对嵌入式固件重新进行检校成功和对嵌入式固件进行握手也成功,则对该嵌入式固件进行更新;
对嵌入式固件进行更新包括:将待更新的固件写入微控制器或存储器中的第一存储区,微控制器或存储器中的第二存储区依旧保留旧的固件;
微控制器或存储器的存储区至少包括第一存储区和第二存储区;其中,在固件处于非更新状态时第一存储区与第二存储区的数据保持同步;
微控制器或存储器中的第一存储区内的固件升级成功后克隆至第二存储区;
待另一正在运行的嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的嵌入式固件对应的微控制器或存储器的存储区内;实现对异常固件进行更新后再次启动运行时无缝衔接系统。
使用时接收嵌入式固件的启动指令,根据启动指令对嵌入式固件进行检校、包括:获取嵌入式固件的固件标识,根据固件标识得到第一检校数据,将第一检校数据写入嵌入式固件位于微控制器或存储器中的存储区以产生第二检校数据,将第一检校数据与第二检校数据进行匹配检校,若匹配一致则启动对应的嵌入式固件,反之则检校失败发出对应的固件异常报警提示;进一步地,在每次调用固件时优先与第一嵌入式固件、第二嵌入式固件中的响应较快的一嵌入式固件进行数据交换并与另一嵌入式固件保持数据同步;尽而实现冗余固件的无缝衔接,进而提高了用户体验。
实施例二:
图2示出了本发明实施例二提供的嵌入式固件冗余装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
接收单元201,用于接收嵌入式固件的启动指令;
检校单元202,用于根据启动指令对嵌入式固件进行检校;
启动单元203,用于在检校成功后启动嵌入式固件;
重置单元214,用于对嵌入式固件进行更新;
克隆单元215,用于待正在运行的嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的嵌入式固件对应的微控制器或存储器的存储区内;
报警单元224,用于发出对应的固件异常报警提示;
禁用单元225,用于在检校失败或握手失败后,嵌入式固件在下次被调用启动时进行禁止。
在本发明实施例中,嵌入式固件冗余装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。
实施例三:
本发明实施例三提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的嵌入式固件冗余方法。例如,执行以上描述的图1中方法步骤S101至步骤S106。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供嵌入式固件冗余方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。

Claims (3)

1.一种嵌入式固件冗余方法,其特征在于,所述的方法包括下述步骤:
接收嵌入式固件的启动指令,根据所述启动指令对所述嵌入式固件进行检校,在检校成功后启动所述嵌入式固件;
所述嵌入式固件至少包括第一所述嵌入式固件和第二所述嵌入式固件,所述嵌入式固件设于微控制器或存储器内;
根据所述启动指令对所述嵌入式固件进行检校包括:获取所述嵌入式固件的固件标识,根据所述固件标识得到第一检校数据;
根据所述固件标识得到第一检校数据后将所述第一检校数据写入所述嵌入式固件位于所述微控制器或所述存储器中的存储区以产生第二检校数据;
根据所述启动指令对所述嵌入式固件进行检校还包括:
将所述第一检校数据与所述第二检校数据进行匹配检校,若匹配一致则启动对应的所述嵌入式固件,反之则检校失败发出对应的固件异常报警提示;
根据所述启动指令对所述嵌入式固件进行检校成功之后或启动所述嵌入式固件后,优先与第一所述嵌入式固件、第二所述嵌入式固件中的响应较快的一所述嵌入式固件进行数据交换并与另一所述嵌入式固件保持数据同步;
若在第一所述嵌入式固件、第二所述嵌入式固件中同一所述嵌入式固件连续一定次数未能优先于另一所述嵌入式固件进行响应则对该所述嵌入式固件进行状态检测。
2.如权利要求1所述的方法,其特征在于,所述状态检测包括:对所述嵌入式固件重新进行检校,若检校失败则发出对应的固件异常报警提示;
所述状态检测还包括:对所述嵌入式固件进行握手,若握手失败则发出对应的固件异常报警提示;
所述检校失败或握手失败后,所述嵌入式固件在下次被调用启动时进行禁止;
若对所述嵌入式固件重新进行检校成功和对所述嵌入式固件进行握手也成功,则对该所述嵌入式固件进行更新;
对所述嵌入式固件进行更新包括:将待更新的固件写入所述微控制器或所述存储器中的第一所述存储区,所述微控制器或所述存储器中的第二所述存储区依旧保留旧的固件;
所述微控制器或所述存储器的存储区至少包括第一所述存储区和第二所述存储区;
所述微控制器或所述存储器中的第一所述存储区内的固件升级成功后克隆至第二所述存储区;
待另一正在运行的所述嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的所述嵌入式固件对应的微控制器或所述存储器的存储区内。
3.一种嵌入式固件冗余装置,其特征在于,所述装置包括:
接收单元,用于接收嵌入式固件的启动指令;
检校单元,用于根据所述启动指令对所述嵌入式固件进行检校;
启动单元,用于在检校成功后启动所述嵌入式固件;
重置单元,用于对所述嵌入式固件进行更新;
克隆单元,用于待正在运行的所述嵌入式固件运行结束后将缓存或和保存的数据克隆至更新成功之后的所述嵌入式固件对应的微控制器或存储器的存储区内;
报警单元,用于发出对应的固件异常报警提示;
禁用单元,用于在检校失败或握手失败后,所述嵌入式固件在下次被调用启动时进行禁止;
所述检校单元,还用于获取所述嵌入式固件的固件标识,根据所述固件标识得到第一检校数据;根据所述固件标识得到第一检校数据后将所述第一检校数据写入所述嵌入式固件位于所述微控制器或所述存储器中的存储区以产生第二检校数据;
所述启动单元,还用于将所述第一检校数据与所述第二检校数据进行匹配检校,若匹配一致则启动对应的所述嵌入式固件;根据所述启动指令对所述嵌入式固件进行检校成功之后或启动所述嵌入式固件后,优先与第一所述嵌入式固件、第二所述嵌入式固件中的响应较快的一所述嵌入式固件进行数据交换并与另一所述嵌入式固件保持数据同步;若在第一所述嵌入式固件、第二所述嵌入式固件中同一所述嵌入式固件连续一定次数未能优先于另一所述嵌入式固件进行响应则对该所述嵌入式固件进行状态检测。
CN202110925245.5A 2021-08-12 2021-08-12 一种嵌入式固件冗余方法及装置 Active CN113626065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110925245.5A CN113626065B (zh) 2021-08-12 2021-08-12 一种嵌入式固件冗余方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110925245.5A CN113626065B (zh) 2021-08-12 2021-08-12 一种嵌入式固件冗余方法及装置

Publications (2)

Publication Number Publication Date
CN113626065A CN113626065A (zh) 2021-11-09
CN113626065B true CN113626065B (zh) 2024-04-19

Family

ID=78384954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110925245.5A Active CN113626065B (zh) 2021-08-12 2021-08-12 一种嵌入式固件冗余方法及装置

Country Status (1)

Country Link
CN (1) CN113626065B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020875A (zh) * 2016-05-16 2016-10-12 北京奇虎科技有限公司 嵌入式终端的固件更新管理方法和装置
CN111611015A (zh) * 2020-05-18 2020-09-01 歌尔科技有限公司 嵌入式固件及启动方法和存储设备
CN112433739A (zh) * 2020-11-11 2021-03-02 广州鲁邦通物联网科技有限公司 一种固件升级方法
CN112947978A (zh) * 2021-04-01 2021-06-11 深圳市斯尔顿科技有限公司 基于芯片usbhid升级固件的方法、终端设备及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020875A (zh) * 2016-05-16 2016-10-12 北京奇虎科技有限公司 嵌入式终端的固件更新管理方法和装置
CN111611015A (zh) * 2020-05-18 2020-09-01 歌尔科技有限公司 嵌入式固件及启动方法和存储设备
CN112433739A (zh) * 2020-11-11 2021-03-02 广州鲁邦通物联网科技有限公司 一种固件升级方法
CN112947978A (zh) * 2021-04-01 2021-06-11 深圳市斯尔顿科技有限公司 基于芯片usbhid升级固件的方法、终端设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113626065A (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
CN106020865B (zh) 一种系统升级方法和装置
US9836606B2 (en) Secure recovery apparatus and method
US20160132420A1 (en) Backup method, pre-testing method for environment updating and system thereof
US20110283274A1 (en) Firmware image update and management
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
JP5183542B2 (ja) 計算機システム及び設定管理方法
CN111182033B (zh) 一种交换机还原的方法和设备
US10880153B2 (en) Method and system for providing service redundancy between a master server and a slave server
US7730029B2 (en) System and method of fault tolerant reconciliation for control card redundancy
CN105786510A (zh) 一种单片机的升级分区系统和安全升级方法
CN108491217A (zh) 一种配置文件的升级方法和设备
WO2019062576A1 (zh) 一种系统升级异常断电的保护方法及终端设备
CN111651304B (zh) 基于双芯智能电表的软件恢复方法、装置和计算机设备
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN109375953B (zh) 一种操作系统启动方法及装置
CN113626065B (zh) 一种嵌入式固件冗余方法及装置
CN112559059A (zh) 一种bios选项配置方法及相关装置
CN116466894A (zh) 数据迁移方法、装置、存储介质及电子设备
CN110703985A (zh) 一种数据同步方法及带外管理设备
JP3551079B2 (ja) 修正ロードモジュール置換後の復旧方法ならびに装置
US6721882B1 (en) Method and apparatus for warm starting a system where the system includes region(s) of software code incapable of warm starting
CN108958757A (zh) 复杂嵌入式设备的升级方法及复杂嵌入式设备
CN113467805A (zh) 一种网络设备的固件回滚方法及相关装置
CN112905218B (zh) 一种固件升级方法、装置及设备
CN108008965A (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