CN111078307A - 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质 - Google Patents

一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质 Download PDF

Info

Publication number
CN111078307A
CN111078307A CN201911322005.5A CN201911322005A CN111078307A CN 111078307 A CN111078307 A CN 111078307A CN 201911322005 A CN201911322005 A CN 201911322005A CN 111078307 A CN111078307 A CN 111078307A
Authority
CN
China
Prior art keywords
file
core program
time
area
embedded device
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
CN201911322005.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.)
Maipu Communication Technology Co Ltd
Original Assignee
Maipu Communication 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 Maipu Communication Technology Co Ltd filed Critical Maipu Communication Technology Co Ltd
Priority to CN201911322005.5A priority Critical patent/CN111078307A/zh
Publication of CN111078307A publication Critical patent/CN111078307A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/4406Loading of operating system

Landscapes

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

Abstract

本申请实施例提供了一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质。通过将程序引导加载文件分成引导文件和核心程序文件,以及将核心程序文件复制成多份相同的核心程序文件,从而可以将引导文件和多份相同的核心程序文件各自对应的存储在同一存储器的各区域中。这样,通过启动引导文件便可以在无需额外的逻辑器件辅助的情况下,引导多份相同的核心程序文件中本次需要运行的核心程序文件加载运行。因此,利用同一存储器且在无需额外的逻辑器件辅助而实现程序引导加载文件备份以及启动,简化了硬件设计,降低了硬件成本,在嵌入式领域有广泛的应用前景。

Description

一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质
技术领域
本申请涉及通信技术领域,具体而言,涉及一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质。
背景技术
在嵌入式设备中,程序引导加载文件用于对嵌入式设备进行基本的初始化,并负责引导嵌入式设备的操作系统启动运行,其在嵌入式设备中起到非常重要的作用。为了避免因程序引导加载文件被破坏导致的嵌入式设备无法使用的严重问题,通常的做法是将程序引导加载文件进行备份。这样,当一份程序引导加载文件损坏时,则可以通过运行另一份程序引导加载文件来实现嵌入式设备的正常启动。
为实现程序引导加载文件备份以及启动,通常需要两片独立的Flash器件,以将一份程序引导加载存储在的一片Flash器件中,并将备份的另一份程序引导加载存储在的另一片Flash器件中,然后再通过外部逻辑器件切换不同的Flash器件中的程序引导加载文件启动。这种方式虽然能够实现程序引导加载文件备份以及启动,由于其需要两片独立的Flash器件以及需要额外的逻辑器件进行辅助,故存在硬件复杂以及成本高的问题。这在成本敏感的嵌入式设备中是无法被接受的。
发明内容
本申请实施例的目的在于提供一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质,用以实现无需额外的逻辑器件辅助,简单且低成本的实现程序引导加载文件备份以及启动。
第一方面,本申请实施例提供了一种嵌入式设备的启动方法,应用于嵌入式设备,所述嵌入式设备的程序引导加载文件包括引导文件和相同的多份相同的核心程序文件,所述引导文件存储在所述嵌入式设备的存储器的第一区域中,所述多份相同的核心程序文件存储在所述存储器的第二区域中,所述方法包括:
将所述引导文件从所述第一区域加载到所述嵌入式设备的内存中;
通过运行所述引导文件,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件,将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行。
在本申请实施例中,通过将程序引导加载文件分成引导文件和核心程序文件,以及将核心程序文件复制成多份相同的核心程序文件,从而可以将引导文件和多份相同的核心程序文件各自对应的存储在同一存储器的各区域中。这样,通过启动引导文件便可以在无需额外的逻辑器件辅助的情况下,引导多份相同的核心程序文件中本次需要运行的核心程序文件加载运行。因此,利用同一存储器且在无需额外的逻辑器件辅助而实现程序引导加载文件备份以及启动,简化了硬件设计,降低了硬件成本,在嵌入式领域有广泛的应用前景。
结合第一方面,在第一种可能的实现方式中,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件,包括:
根据所述嵌入式设备的其它存储器中存储的所述多份相同的核心程序文件各自的启动状态,从所述多份相同的核心程序文件中确定出启动状态为待启动状态的核心程序文件,其中,所述待启动状态的核心程序文件为所述本次需要运行的核心程序文件。
在本申请实施例中,通过定义多份相同的核心程序文件的启动状态,能够快速直接的确定出本次需要运行的核心程序文件。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二区域为多个,所述多份相同的核心程序文件存储在各自对应的一个第二区域中,将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行,包括:
根据所述其它存储器中存储的所述本次需要运行的核心程序文件的所在位置,确定出存储所述本次需要运行的核心程序文件的一个第二区域;
从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行。
在本申请实施例中,通过定义核心程序文件的所在位置,能够快速准确的确定出本次需要运行的核心程序文件所在的第二区域。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在确定出存储所述本次需要运行的核心程序文件的一个第二区域之后;以及在从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行之前,所述方法还包括:
对所述本次需要运行的核心程序文件的完整性进行校验,其中,若所述校验通过,则执行从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行的步骤。
在本申请实施例中,在运行前对文件的完整性进行校验,可以确保被加载运行的核心程序文件是完整可靠的,以降低核心程序文件加载运行失败的概率。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,在启动运行所述本次需要运行的核心程序文件之后,所述方法还包括:
在所述本次需要运行的核心程序文件启动运行失败时,将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态,其中,所述其它核心程序文件为所述多份相同的核心程序文件中与所述本次需要运行的核心程序文件不同的核心程序文件。
在本申请实施例中,在启动失败后,通过修改状态,可以快速切换需要被启动的核心程序文件。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态之后,所述方法还包括:
重启所述嵌入式设备的系统。
在本申请实施例中,在将其它的核心程序文件的状态修改后,通过重启嵌入式设备的系统可以便捷的启动其它的核心程序文件。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,确定所述本次需要运行的核心程序文件启动运行失败的步骤,包括:
确定所述本次需要运行的核心程序文件超时还未启动运行成功。
在本申请实施例中,通过设置超时,可以快速便捷的确定出核心程序文件是否启动成功。
第二方面,本申请实施例提供了一种嵌入式设备的启动装置,应用于嵌入式设备,所述嵌入式设备的程序引导加载文件包括引导文件和相同的多份相同的核心程序文件,所述引导文件存储在所述嵌入式设备的存储器的第一区域中,所述多份相同的核心程序文件存储在所述存储器的第二区域中,所述装置包括:
程序处理模块,用于将所述引导文件从所述第一区域加载到所述嵌入式设备的内存中;
程序选择模块,用于通过运行所述引导文件,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件;
所述程序处理模块,还用于将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行。
结合第二方面,在第一种可能的实现方式中,
所述程序选择模块,用于根据所述嵌入式设备的其它存储器中存储的所述多份相同的核心程序文件各自的启动状态,从所述多份相同的核心程序文件中确定出启动状态为待启动状态的核心程序文件,其中,所述待启动状态的核心程序文件为所述本次需要运行的核心程序文件。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二区域为多个,所述多份相同的核心程序文件存储在各自对应的一个第二区域中,
所述程序处理模块,用于根据所述其它存储器中存储的所述本次需要运行的核心程序文件的所在位置,确定出存储所述本次需要运行的核心程序文件的一个第二区域;从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述程序处理模块确定出存储所述本次需要运行的核心程序文件的一个第二区域之后;以及在所述程序处理模块从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行之前,
所述程序处理模块,还用于对所述本次需要运行的核心程序文件的完整性进行校验,其中,若所述校验通过,所述程序处理模块则用于执行将从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行的步骤。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,在所述程序处理模块启动运行所述本次需要运行的核心程序文件之后,
所述程序处理模块,还用于在所述本次需要运行的核心程序文件启动运行失败时,将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态,其中,所述其它核心程序文件为所述多份相同的核心程序文件中与所述本次需要运行的核心程序文件不同的核心程序文件。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述程序处理模块将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态之后,所述装置还包括:
程序重启模块,用于重启所述嵌入式设备的系统。
在本申请实施例中,在将其它的核心程序文件的状态修改后,通过重启嵌入式设备的系统可以便捷的启动其它的核心程序文件。
结合第二方面的第四种可能的实现方式,在第六种可能的实现方式中,
所述程序重启模块,用于确定所述本次需要运行的核心程序文件超时还未启动运行成功。
第三方面,本申请实施例提供了一种嵌入式设备,所述嵌入式设备包括:处理器、内存以及存储器;
所述程序引导加载文件包括引导文件和相同的多份相同的核心程序文件;
所述存储器包括第一区域和多个第二区域,所述第一区域用于存储所述引导文件,每份所述第二区域用于对应的一个所述核心程序文件;
所述处理器,用于通过将所述引导文件从所述第一区域加载到所述内存中运行,以执行如第一方面或第一方面的任一种可能的实现方式所述的嵌入式设备的启动方法。
第四方面,本申请实施例提供了一种具有计算机可执行的非易失程序代码的计算机可读存储介质,所述程序代码使所述计算机执行如第一方面或第一方面的任一种可能的实现方式所述的嵌入式设备的启动方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种嵌入式设备的结构框图;
图2为本申请实施例提供的一种嵌入式设备的启动方法的流程图;
图3为本申请实施例提供的一种嵌入式设备的启动装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,本申请实施例提供了一种嵌入式设备10,该嵌入式设备10可以包括但不限于:存储器11(Read-Only Memory,ROM)、内存12(Random Access Memory,RAM)、处理器13以及总线14。
本实施例中,考虑到嵌入式设备10需要低成本且可靠性强,存储器11可以采用闪存(flash memory),但并不限于闪存,例如存储器11还可以采用EEPROM(ElectricallyErasable Programmable read only memory,带电可擦可编程存储器)。
内存12可以采用市面上常规型号的内存条,其容量大小可以根据嵌入式设备10的性能需求进行选择,例如嵌入式设备10的性能比较强大,那么内存12的容量大小可以大一些,反之则小一些。
处理器13可以采用CPU(Central Processing Unit,中央处理器14)、MCU(Microcontroller Unit,微控制单元)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)等芯片。处理器13可以通过总线14分别与存储器11和内存12连接。
本实施例中,引导嵌入式设备的系统10启动的程序引导加载文件预先可以被分割成两份,然后对两份文件进行调整,从而获得引导文件例如引导文件中可以包含处理器基本硬件及存储器访问接口初始化,以及获得程序引导加载文件的核心程序文件例如核心程序文件中可以包含引导程序的全部功能,这样,引导文件的运行可以用于引导核心程序文件启动运行。
进一步的,为实现备份,可以将核心程序文件复制成多份,并将引导文件和多份相同的核心程序文件各自对应的存储在存储器11的各区域中,例如将引导文件存储在存储器11的第一区域111中,并将多份相同的核心程序文件存储在存储器11的第二区域112中。这样,处理器通过将第一区域111中的引导文件加载到内存12中运行,便可以从多份相同的核心程序文件中选择出本次需要的核心程序文件,再将该本次需要的核心程序文件从该本次需要的核心程序文件从第二区域112中加载到内存12中运行,从而实现嵌入式设备10启动。
可以理解到,通过这种将程序引导加载文件分割并复制的方式,可以实现利用同一个存储器11将程序引导加载文件备份存储,并且启动时也无需其他逻辑器件辅助,降低了嵌入式设备10的复杂程度,以及降低了嵌入式设备10的成本。
下面将以嵌入式设备10为执行主体,通过方法实施例来详细说明一份引导文件和多份相同的核心程序文件如何配合实现嵌入式设备10的启动。
请参阅图2,为本申请实施例提供的一种嵌入式设备的启动方法的流程图,具体的,该嵌入式设备的启动方法可以包括:
步骤S100:将引导文件从第一区域加载到嵌入式设备的内存中。
步骤S200:通过运行该引导文件,从多份相同的核心程序文件中确定出本次需要运行的核心程序文件,将本次需要运行的核心程序文件从第二区域中加载到内存中运行。
下面将结合示例对上述流程依次进行说明。
步骤S100:将引导文件从第一区域加载到嵌入式设备的内存中。
在嵌入式设备10上电后,嵌入式设备10便可以从第一区域111中将引导文件加载到内存12中,并驱动引导文件在内存12中运行。
步骤S200:通过运行该引导文件,从多份相同的核心程序文件中确定出本次需要运行的核心程序文件,将本次需要运行的核心程序文件从第二区域中加载到内存中运行。
通过运行该引导文件,嵌入式设备10便需要确定本次需要启动多份相同的核心程序文件中的哪一份文件。
本实施例中,为便于确定出本次需要运行的核心程序文件,可以预先定义每份核心程序文件的启动状态,例如,定义核心程序文件的启动状态为待启动状态,说明该待启动状态的核心程序文件为本次需要启动的文件,而定义核心程序文件的启动状态为初始化状态,说明该初始化状态的核心程序文件为本次无需启动的文件。而确保准确的选择某个核心程序文件启动,在多份嵌入式设备10核心程序文件中,只有一份核心程序文件的启动状态为待启动状态,其余核心程序文件的启动状态都为初始化状态。
进一步的,为便于嵌入式设备10查找到各核心程序文件的启动状态,可以预先将各核心程序文件的启动状态存储到嵌入式设备10中,例如存储到嵌入式设备10的存储器11的第三区域中。当然,将各核心程序文件的启动状态存储到存储器11的第三区域中并不作为本实施例的限定,例如若嵌入式设备10还设有其它存储器11比如嵌入式设备10还设有另一片EEPROM,则还可以将各核心程序文件的启动状态存储到另一片EEPROM的第三区域中。
在此基础上,嵌入式设备10通过该在第三区域中遍历各核心程序文件的启动状态,可以查找到启动状态为待启动状态的核心程序文件,那么该启动状态为待启动状态的核心程序文件则为本次需要启动的核心程序文件。
可以理解到,在核心程序文件为多份的情况下,需要准确的找到本次需要启动的核心程序文件所在的位置,故还可以预先在第三区域中存储本次需要运行的核心程序文件的所在位置。
作为在第三区域中存储本次需要运行的核心程序文件的所在位置的一种示例方式,若第二区域112有多个,且多份核心程序分别存储在各自对应的一个第二区域112中,那么第三区域中可以存储每份核心程序文件所在的第二区域112在存储器11中的偏移,每份核心程序文件所在的第二区域112在存储器11中的偏移即为每份核心程序文件的所在位置。这样,嵌入式设备10根据第三区域中存储的本次需要运行的核心程序文件所在的第二区域112在存储器11中的偏移,便可以从存储器11中查找到本次需要运行的核心程序文件所在的第二区域112,从而查找到该本次需要运行的核心程序文件。
作为在第三区域中存储本次需要运行的核心程序文件的所在位置的另一种示例方式,若多份核心程序作为自独立存储的文件存储在同一个第二区域112中,那么第三区域中可以存储第二区域112在存储器11中的偏移,以及存储每份核心程序文件在第二区域112中的偏移,第二区域112在存储器11中的偏移以及每份核心程序文件在第二区域112中的偏移即为每份核心程序文件的所在位置。这样,嵌入式设备10根据第三区域中存储的第二区域112在存储器11中的偏移,可以在存储器11查找到第二区域112,再根据第三区域中存储的本次需要运行的核心程序文件在第二区域112中的偏移,便可以在第二区域112中查找到该本次需要运行的核心程序文件。
嵌入式设备10在查找到该本次需要运行的核心程序文件后,嵌入式设备10可以直接将该本次需要运行的核心程序文件从该本次需要运行的核心程序文件所在的第二区域112中加载到内存12中运行。或者,在将本次需要运行的核心程序文件加载到内存12之前,嵌入式设备10可以先校验该本次需要运行的核心程序文件的完整性,例如判断本次需要运行的核心程序文件的文件长度是否与预设的文件长度匹配(匹配是指二者的长度差在预设的误差范围内)。若通过校验确定本次需要运行的核心程序文件完整,嵌入式设备10便将该本次需要运行的核心程序文件从该本次需要运行的核心程序文件所在的第二区域112中加载到内存12中运行;若通过校验确定本次需要运行的核心程序文件不完整,嵌入式设备10可以确定本次需要运行的核心程序文件启动运行失败,从而执行启动失败的流程。
为实现便捷的确定本次需要运行的核心程序文件是否启动运行失败,嵌入式设备10可以设置看门狗定时器,在第二区域112中查找到该本次需要运行的核心程序文件时,嵌入式设备10可以控制看门狗定时器启动,并开始计时。在门狗定时器的计时超时,若本次需要运行的核心程序已启动运行成功,说明本次需要运行的核心程序启动成功,那么嵌入式设备10可以正常启动。若加载到内存12中的该本次需要运行的核心程序文件出现bug,或者,若该本次需要运行的核心程序文件不完整,在门狗定时器的计时超时时,本次需要运行的核心程序显然还未启动运行成功,说明本次需要运行的核心程序启动失败,故需要看门狗定时器触发重启该嵌入式设备10的系统。
可以理解到,由于看门狗定时器是计时触发重启,故采用看门狗定时器可以触发该嵌入式设备10的重启,可以有效避免嵌入式设备10的因启动陷入死循环而无法重启的情况发生。
若本次需要运行的核心程序启动失败后下次启动还是运行该需要运行的核心程序启动失败,会导致嵌入式设备10的启动陷入死循环。因此,在看门狗定时器可以触发重启该嵌入式设备10的系统后,以及嵌入式设备10控制自身的系统重启前,嵌入式设备10可以修改各核心程序文件的启动状态。
具体的,嵌入式设备10可以将本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态,且该其它核心程序文件为多份相同的核心程序文件中与本次需要运行的核心程序文件不同的核心程序文件。调整状态后,嵌入式设备10再执行系统的重启。由于该其它核心程序文件的启动状态被调整为待启动状态,在重启的过程中,嵌入式设备10便可以控制该其它核心程序文件启动运行。
请参阅图3,基于同一发明构思,本申请实施例中还提供一种嵌入式设备的启动装置100,该嵌入式设备的启动装置100应用于嵌入式设备10,该嵌入式设备的启动装置100可以包括:
程序处理模块110,用于将所述引导文件从所述第一区域加载到所述嵌入式设备的内存中;
程序选择模块120,用于通过运行所述引导文件,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件;
所述程序处理模块110,还用于将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请一些实施例还提供了一种计算机可执行的非易失的程序代码的计算机可读储存介质,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上存储有程序代码,该程序代码被计算机运行时执行上述任一实施方式的嵌入式设备的启动方法的步骤。
本申请实施例所提供的嵌入式设备的启动方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
综上所述,本申请实施例提供了一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质。通过将程序引导加载文件分成引导文件和核心程序文件,以及将核心程序文件复制成多份相同的核心程序文件,从而可以将引导文件和多份相同的核心程序文件各自对应的存储在同一存储器的各区域中。这样,通过启动引导文件便可以在无需额外的逻辑器件辅助的情况下,引导多份相同的核心程序文件中本次需要运行的核心程序文件加载运行。因此,利用同一存储器且在无需额外的逻辑器件辅助而实现程序引导加载文件备份以及启动,简化了硬件设计,降低了硬件成本,在嵌入式领域有广泛的应用前景。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种嵌入式设备的启动方法,其特征在于,应用于嵌入式设备,所述嵌入式设备的程序引导加载文件包括引导文件和多份相同的核心程序文件,所述引导文件存储在所述嵌入式设备的存储器的第一区域中,所述多份相同的核心程序文件存储在所述存储器的第二区域中,所述方法包括:
将所述引导文件从所述第一区域加载到所述嵌入式设备的内存中;
通过运行所述引导文件,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件,将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行。
2.根据权利要求1所述嵌入式设备的启动方法,其特征在于,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件,包括:
根据所述嵌入式设备的其它存储器中存储的所述多份相同的核心程序文件各自的启动状态,从所述多份相同的核心程序文件中确定出启动状态为待启动状态的核心程序文件,其中,所述待启动状态的核心程序文件为所述本次需要运行的核心程序文件。
3.根据权利要求2所述嵌入式设备的启动方法,其特征在于,所述第二区域为多个,所述多份相同的核心程序文件存储在各自对应的一个第二区域中,将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行,包括:
根据所述其它存储器中存储的所述本次需要运行的核心程序文件的所在位置,确定出存储所述本次需要运行的核心程序文件的一个第二区域;
从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行。
4.根据权利要求3所述嵌入式设备的启动方法,其特征在于,在确定出存储所述本次需要运行的核心程序文件的一个第二区域之后;以及在从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行之前,所述方法还包括:
对所述本次需要运行的核心程序文件的完整性进行校验,其中,若所述校验通过,则执行从存储所述本次需要运行的核心程序文件的一个第二区域中,将所述本次需要运行的核心程序文件加载到所述内存中运行的步骤。
5.根据权利要求2所述嵌入式设备的启动方法,其特征在于,在启动运行所述本次需要运行的核心程序文件之后,所述方法还包括:
在所述本次需要运行的核心程序文件启动运行失败时,将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态,其中,所述其它核心程序文件为所述多份相同的核心程序文件中与所述本次需要运行的核心程序文件不同的核心程序文件。
6.根据权利要求5所述嵌入式设备的启动方法,其特征在于,在将所述本次需要运行的核心程序文件的启动状态从待启动状态调整为初始化状态,并将一个其它核心程序文件的启动状态从初始化状态调整为待启动状态之后,所述方法还包括:
重启所述嵌入式设备的系统。
7.根据权利要求5所述嵌入式设备的启动方法,其特征在于,确定所述本次需要运行的核心程序文件启动运行失败的步骤,包括:
确定所述本次需要运行的核心程序文件超时还未启动运行成功。
8.一种嵌入式设备的启动装置,其特征在于,应用于嵌入式设备,所述嵌入式设备的程序引导加载文件包括引导文件和相同的多份相同的核心程序文件,所述引导文件存储在所述嵌入式设备的存储器的第一区域中,所述多份相同的核心程序文件各自对应的存储在所述存储器的第二区域中,所述装置包括:
程序处理模块,用于将所述引导文件从所述第一区域加载到所述嵌入式设备的内存中;
程序选择模块,用于通过运行所述引导文件,从所述多份相同的核心程序文件中确定出本次需要运行的核心程序文件;
所述程序处理模块,还用于将所述本次需要运行的核心程序文件从所述第二区域中加载到所述内存中运行。
9.一种嵌入式设备,其特征在于,所述嵌入式设备包括:处理器、内存以及存储器;
所述程序引导加载文件包括引导文件和相同的多份相同的核心程序文件;
所述存储器包括第一区域和多个第二区域,所述第一区域用于存储所述引导文件,每份所述第二区域用于对应的一个所述核心程序文件;
所述处理器,用于通过将所述引导文件从所述第一区域加载到所述内存中运行,以执行如权利要求1-7任一权项所述的嵌入式设备的启动方法。
10.一种具有计算机可执行的非易失程序代码的计算机可读存储介质,其特征在于,所述程序代码使所述计算机执行如权利要求1-7任一权项所述的嵌入式设备的启动方法。
CN201911322005.5A 2019-12-19 2019-12-19 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质 Pending CN111078307A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911322005.5A CN111078307A (zh) 2019-12-19 2019-12-19 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911322005.5A CN111078307A (zh) 2019-12-19 2019-12-19 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质

Publications (1)

Publication Number Publication Date
CN111078307A true CN111078307A (zh) 2020-04-28

Family

ID=70316023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911322005.5A Pending CN111078307A (zh) 2019-12-19 2019-12-19 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质

Country Status (1)

Country Link
CN (1) CN111078307A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520735A (zh) * 2008-12-18 2009-09-02 康佳集团股份有限公司 一种启动闪存内引导程序的方法及其网络电视和机顶盒
CN102279757A (zh) * 2010-06-11 2011-12-14 无锡中星微电子有限公司 一种系统程序启动的方法及装置
CN102402468A (zh) * 2010-09-16 2012-04-04 北京中星微电子有限公司 一种嵌入式设备的数据备份加载方法和数据备份加载装置
CN104077167A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 基于nand flash的启动加载方法和装置
CN108345464A (zh) * 2018-03-06 2018-07-31 播思通讯技术(北京)有限公司 一种安卓系统的启动方法及安卓车机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520735A (zh) * 2008-12-18 2009-09-02 康佳集团股份有限公司 一种启动闪存内引导程序的方法及其网络电视和机顶盒
CN102279757A (zh) * 2010-06-11 2011-12-14 无锡中星微电子有限公司 一种系统程序启动的方法及装置
CN102402468A (zh) * 2010-09-16 2012-04-04 北京中星微电子有限公司 一种嵌入式设备的数据备份加载方法和数据备份加载装置
CN104077167A (zh) * 2014-07-11 2014-10-01 杭州华三通信技术有限公司 基于nand flash的启动加载方法和装置
CN108345464A (zh) * 2018-03-06 2018-07-31 播思通讯技术(北京)有限公司 一种安卓系统的启动方法及安卓车机

Similar Documents

Publication Publication Date Title
US9146839B2 (en) Method for pre-testing software compatibility and system thereof
US10437580B2 (en) Software updating methods and systems
US10303459B2 (en) Electronic system with update control mechanism and method of operation thereof
US8136108B2 (en) Updating firmware with multiple processors
JP2015008005A (ja) セキュア・リカバリ装置及び方法
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
US20100125752A1 (en) System for auto-operating backup firmware and method thereof
US11704198B2 (en) Method and apparatus for providing recovery from a computing device boot up error
CN113254048B (zh) 引导程序更新方法、装置、设备及计算机可读介质
CN110780942A (zh) 系统启动方法、装置、节点设备及计算机可读存储介质
US10824517B2 (en) Backup and recovery of configuration files in management device
CN114090107A (zh) 计算机和系统启动方法
CN111522690B (zh) 数据储存装置及维持数据储存装置正常开机运作的方法
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
WO2021012170A1 (zh) 固件启动方法、设备及计算机可读存储介质
CN111078307A (zh) 一种嵌入式设备的启动方法、装置、嵌入式设备及存储介质
CN114356658A (zh) 固件升级异常的处理方法、计算机设备以及可读存储介质
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
CN113377425A (zh) Bmc固件生成方法和装置、bmc启动方法和装置及存储介质
WO2020043361A1 (en) Installing application program code on a vehicle control system
EP3798831B1 (en) Resilient upgradable boot loader with power reset
CN113867753B (zh) 一种服务器的固件更新方法及系统
US20240012572A1 (en) Operationalization of memories using memory information sets
CN116185510A (zh) 分区切换启动方法、阵列服务器和计算机可读存储介质
CN113672302A (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: 20200428