CN115098304B - 一种嵌入式系统、电子设备及软件运行方法 - Google Patents

一种嵌入式系统、电子设备及软件运行方法 Download PDF

Info

Publication number
CN115098304B
CN115098304B CN202210700021.9A CN202210700021A CN115098304B CN 115098304 B CN115098304 B CN 115098304B CN 202210700021 A CN202210700021 A CN 202210700021A CN 115098304 B CN115098304 B CN 115098304B
Authority
CN
China
Prior art keywords
boot
flash chip
app
cpu
programmable 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.)
Active
Application number
CN202210700021.9A
Other languages
English (en)
Other versions
CN115098304A (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.)
Technology and Engineering Center for Space Utilization of CAS
Original Assignee
Technology and Engineering Center for Space Utilization of CAS
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 Technology and Engineering Center for Space Utilization of CAS filed Critical Technology and Engineering Center for Space Utilization of CAS
Priority to CN202210700021.9A priority Critical patent/CN115098304B/zh
Publication of CN115098304A publication Critical patent/CN115098304A/zh
Application granted granted Critical
Publication of CN115098304B publication Critical patent/CN115098304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

本发明公开一种嵌入式系统、电子设备及软件运行方法,嵌入式系统包括:CPU、可编程器件、DDR、第一FLASH芯片、第二FLASH芯片和看门狗;第一FLASH芯片和第二FLASH芯片均由低地址到高地址分别排布引导程序Boot和多个应用程序APP;CPU的第一输出端、第二输出端和片选端均与可编程器件连接;可编程器件的第一片选端和第二片选端分别与所述第一FLASH芯片和第二FLASH芯片连接;可编程器件的喂狗信号端与看门狗连接,看门狗与所述CPU连接,CPU与所述DDR、第一FLASH芯片和第二FLASH芯片连接。本发明可实现嵌入式系统的高可靠性,以及软件运行的灵活性。

Description

一种嵌入式系统、电子设备及软件运行方法
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种嵌入式系统、电子设备及软件运行方法。
背景技术
嵌入式系统一般先将可执行代码固化于FLASH芯片中,系统上电后,从FLASH芯片中加载可执行代码并运行。但目前嵌入式系统一般仅设置一个FLASH芯片,若FLASH芯片失效,则应用程序无法正常运行,导致任务失败。也有部分嵌入式系统设置两个FLASH芯片,其中一个FLASH芯片用于存储引导程序Boot,另一个FLASH芯片用于存储应用程序APP,即两个FLASH芯片作用各不相同,任一FLASH失效,均会导致任务失败。
发明内容
本发明所要解决的技术问题是针对现有技术存在的问题,提供一种嵌入式系统、电子设备及软件运行方法。
为解决上述技术问题,本发明提供一种嵌入式系统,包括:CPU、可编程器件、DDR、第一FLASH芯片、第二FLASH芯片和看门狗;第一FLASH芯片和第二FLASH芯片均由低地址到高地址分别排布引导程序Boot和多个应用程序APP;
CPU的第一输出端、第二输出端和片选端均与可编程器件连接;可编程器件的第一片选端和第二片选端分别与第一FLASH芯片和第二FLASH芯片连接;可编程器件的喂狗信号端与看门狗连接,看门狗与CPU连接,CPU与DDR、第一FLASH芯片和第二FLASH芯片连接;
可编程器件用于执行CPU与第一FLASH芯片和第二FLASH芯片之间的片选控制;CPU用于从当前所选的FLASH芯片中加载引导程序Boot至DDR中并运行,并通过第一输出端向可编程器件输出Boot软件喂狗信号,可编程器件根据第一预设时间段内Boot软件喂狗信号的输出情况确定是否进行片选切换;CPU还用于当引导程序Boot正常运行后,读取当前所选的FLASH芯片中存储的启动标识,加载并运行与启动标识对应的APP代码区的应用程序APP;并通过第二输出端向可编程器件输出App软件喂狗信号;可编程器件根据第二预设时间段内App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
为解决上述技术问题,本发明还提供一种电子设备,包括上述技术方案所述的嵌入式系统。
为解决上述技术问题,本发明还提供一种软件运行方法,利用上述技术方案提供的嵌入式系统实现,包括:
可编程器件执行CPU与第一FLASH芯片和第二FLASH芯片之间的片选控制;CPU从当前所选的FLASH芯片中加载引导程序Boot至DDR中并运行,并通过第一输出端向可编程器件输出Boot软件喂狗信号,可编程器件根据第一预设时间段内Boot软件喂狗信号的输出情况确定是否进行片选切换;
当引导程序Boot正常运行后,CPU读取当前所选的FLASH芯片中存储的启动标识,加载并运行与启动标识对应的APP代码区的应用程序APP;并通过第二输出端向可编程器件输出App软件喂狗信号;可编程器件根据第二预设时间段内App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
本发明的有益效果是:采用双FLASH进行冗余备份,每个FLASH芯片中有独立的引导程序Boot和多个应用程序APP,可分别进行boot和应用程序的多级重构,提高重构效率;且多个应用程序APP对应多个代码区,可灵活进行软件功能切换;通过两个IO分别作为Boot软件喂狗信号和App软件喂狗信号,由FPGA进行综合判断控制CPU复位、FLASH切换及FLASH内APP切换。本发明实施例可实现嵌入式系统的高可靠性,以及软件运行的灵活性。
本发明附加的方面及其优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
图1为本发明实施例提供的嵌入式系统框图;
图2为本发明实施例提供的软件运行方法流程图。
具体实施方式
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
图1为本发明实施例提供的嵌入式系统框图。如图1所示,该系统包括:CPU、可编程器件(可采用FPGA或CPLD,该实施例以FPGA为例进行描述)、DDR、第一FLASH芯片、第二FLASH芯片和看门狗WatchDog;第一FLASH芯片和第二FLASH芯片均由低地址到高地址分别排布引导程序Boot和多个应用程序APP。
其中,CPU为核心处理器,DDR为双倍速率同步动态随机存储器,用于缓存数据及运行程序,第一FLASH芯片和第二FLASH芯片用于存储代码等非掉电易失数据,看门狗WatchDog用于控制CPU复位,可编程器件FPGA用于实现两片FLASH芯片的片选及CPU复位控制。
CPU的第一输出端、第二输出端和片选端均与可编程器件连接;可编程器件的第一片选端和第二片选端分别与第一FLASH芯片和第二FLASH芯片连接;可编程器件的喂狗信号端与看门狗连接,看门狗与CPU连接,CPU与DDR、第一FLASH芯片和第二FLASH芯片连接。
CPU与两个FLASH芯片之间的片选信号接到FPGA,由FPGA进行片选控制,控制CPU端的CS端与FLASH0(第一FLASH芯片)的第一片选端CS0或FLASH1(第二FLASH芯片)的第二片选端CS1相连。
CPU与FPGA之间包括IO 0(第一输出端)和IO 1(第二输出端)两路IO输出,CPU作为输出,可输出高低电平信号。FPGA根据IO 0和IO 1信号的变化,综合判断后向外部看门狗输出喂狗信号,若看门狗一定时间(例如1.6s,由看门狗芯片特性决定)内未进行喂狗,则看门狗控制CPU复位。
表1
Figure BDA0003703642050000041
Figure BDA0003703642050000051
两片FLASH芯片中的数据排布如表1(两片FLASH芯片采用同构策略的情况)所示。每个FLASH芯片由低地址到高地址分别排布Boot、应用程序APP1、APP2、APP3、……。系统上电后,CPU从当前所选的FLASH芯片中读取BOOT加载到DDR,运行Boot;由Boot根据启动标识,从Flash中读取相应的APP代码区加载到DDR,引导应用程序启动。
具体地,可编程器件用于执行CPU与第一FLASH芯片和第二FLASH芯片之间的片选控制;CPU用于从当前所选的FLASH芯片中加载引导程序Boot至DDR中并运行,并通过第一输出端向可编程器件输出Boot软件喂狗信号,可编程器件根据第一预设时间段内Boot软件喂狗信号的输出情况确定是否进行片选切换;CPU还用于当引导程序Boot正常运行后,读取当前所选的FLASH芯片中存储的启动标识,加载并运行与启动标识对应的APP代码区的应用程序APP;并通过第二输出端向可编程器件输出App软件喂狗信号;可编程器件根据第二预设时间段内App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
本发明实施例采用双FLASH进行冗余备份,每个FLASH芯片中有独立的引导程序Boot和多个应用程序APP,可分别进行boot和应用程序的多级重构,提高重构效率;且多个应用程序APP对应多个代码区,可灵活进行软件功能切换;通过两个IO分别作为Boot软件喂狗信号和App软件喂狗信号,由FPGA进行综合判断控制CPU复位、FLASH切换及FLASH内APP切换。本发明实施例可实现嵌入式系统的高可靠性,以及软件运行的灵活性。
可编程器件用于当第一预设时间段内所述Boot软件喂狗信号输出异常时,通过所述看门狗控制所述CPU复位,并切换当前所选FLASH芯片;所述CPU从切换后的FLASH芯片中加载引导程序Boot至所述DDR中并运行,其中,第一预设时间为CPU从当前所选的FLASH芯片中加载引导程序Boot至DDR中并运行开始计时。
如系统加电后,FPGA默认将CPU连接CS0,片选FLASH0。并开始喂狗,WDI喂狗信号每500ms高低电平翻转一次。启动定时器timer1,定时30s,作为FLASH0启动尝试等待时间。
CPU加电后从片选的FLASH加载Boot,Boot运行后,控制IO0按照第一预设周期(如每100ms)输出高低电平翻转,作为Boot软件喂狗信号输出给FPGA。若FPGA检测到定时器timer1定时30s到达,且30s内均未收到IO0的Boot软件喂狗信号,说明FLASH0的Boot未成功运行,需切换到FLASH1,FPGA将CPU连接CS1,片选FLASH1,停止喂狗。CPU复位后,即从FLASH1加载boot继续加载流程,从而实现FlASH切换。
若Boot运行正常,CPU从当前所选FLASH芯片中读取存储的启动标识,判断应启动哪个App代码区。每个代码区尝试启动2次,若2次均启动不成功,则自动切换为其他代码区启动。例如当指定启动代码区1,但代码区1启动2次均未成功,则切换为代码区0启动,代码区0启动2次均未成功,则切换为代码区2尝试2次,若2次均未成功,则切换为代码区1继续尝试……依次循环尝试。
可编程器件用于当第二预设时间段内所述App软件喂狗信号的输出异常时,通过所述看门狗控制所述CPU复位,重启当前所选应用程序APP预设次数仍启动失败时,则切换为启动其他代码区对应的应用程序APP,其中,所述第二预设时间为CPU当前所选的FLASH芯片中引导程序Boot正常运行开始计时。
App启动成功后,在DDR中设置APP启动成功标识并记录App启动次数,控制IO1按照第二预设周期(如每100ms)输出高低电平翻转信号,做为App软件喂狗信号。
当开始加载启动App时,Boot不再运行,因此不再有Boot软件喂狗信号。FPGA检测到IO 0停止翻转500ms后,开始计时,若连续3s未检测到IO 1翻转,说明APP运行异常。此时,可能为App未加载成功,可能为App运行过程中异常跑飞,可能为App收到复位指令后停止软件喂狗,三种情况下,FPGA处理措施相同,均为停止输出看门狗喂狗,进而看门狗控制CPU复位。CPU复位后继续执行Boot及后续引导程序,从而实现App的切换。
本发明实施例提供的嵌入式系统可应用于包括但不限于航天、空间应用等技术领域。以空间应用电子设备为例,本发明实施例提供的嵌入式系统可实现在轨重构,在轨重构过程包括文件上载、固化、代码区切换以及引导等步骤。
本发明实施例提供的嵌入式系统收到重构开始指令后,开始接收上载文件。为充分利用上行链路资源,提高上载效率,可以采用分段上载模式,即将上载文件拆分为若干段,每段文件按照上行协议的格式拆分为若干包。包协议结构中包含包序号、段序号、起始包/中间包/结束包标识、包校验,以保证上载文件的完整性、正确性。
每段代码发送结束后,地面发送“段发送结束”指令,软件APP开始对该段内接收到的所有上载数据包进行校验和排序,查看是否有缺失的包,如果有缺失的包,则将缺失的包序号通过数字量下行反馈给地面。地面补发对应序号的数据包,然后再次发送“段发送结束”指令;若错误和缺失包个数大于预设数量(如大于5个)或该段的起始包或结束包错误,或段接收错误,则对该整段数据进行补注。段校验通过方可开始发送下一段代码包。
最后一个段接收成功后,地面发送“重构数据发送完成”指令。软件开始对接收到的整个文件进行校验,计算文件校验码,校验通过后,将重构数据烧写入FLASH在指定的代码区进行固化。若写入FLASH完成后,将FLASH中数据读出与缓存中的待固化文件进行比对,确认固化过程是否正常无误。
固化完成后,通过地面发送的复位指令进行复位重启,通过复位重启指令中的参数指定启动代码区编号,选择软件的启动版本。BOOT可对APP的尝试启动次数进行统计,若尝试启动2次不成功,则切换到另一个更新代码区(代码区1/代码区2)启动,尝试启动2次不成功,则切换到代码区0启动。循环切换尝试,保证APP在任何异常情况下均可正常启动。
对于本发明实施例中的三个应用程序App,可根据需要进行设置,兼顾可靠性和灵活性。例如:APP1为原始代码区,在轨一般不对其进行重构;APP2为重构代码区;APP3为预置代码区,存储故障定位、系统自检等专用功能版本代码。
本发明实施例中,第一FLASH芯片和第二FLASH芯片可采用同构策略,也可以采用异构策略。
如第一FLASH芯片和第二FLASH芯片采用同构策略,每次上载重构时,同时对所述第一FLASH芯片和第二FLASH芯片进行固化,并对两个FLASH芯片中的启动标识进行同样的置位。这样无论何时,两个Flash中的代码及启动标识均保持一致。当Flash0发生异常切换到Flash1后,将自动启动与Flash0一致的App代码区。
如第一FLASH芯片和第二FLASH芯片采用异构策略,仅对当前Flash芯片进行固化,并仅对当前Flash芯片中的启动标识进行置位。这样Flash0和Flash1中代码区代码及启动标识不一致。当切换到Flash1后,默认启动App代码区为代码区0(对应APP1),若需切换代码区,需发送复位指令进行切换。
本发明实施例中,FPGA也可使用CPLD替代,实现相同功能即可。FLASH与CPU之间的接口可为Spi,也可为EMI等。各个定时器的时间可根据实际情况调整。FLASH芯片中各部分所占的地址分区可根据实际情况调整大小。
第一FLASH芯片和第二FLASH芯片还可以包括排布于所述引导程序Boot和多个应用程序APP之间的操作系统。即若使用操作系统,例如Vxworks,则按表2进行FLASH中内容排布,由低地址到高地址分别排布Boot、VxWorks操作系统镜像、应用程序APP1、APP2、APP3……。即可实现三级重构,即APP级、操作系统级和Boot级,每级均可单独上载。
FLASH0 FLASH1
BOOT0 BOOT1
VxWorks0 VxWorks1
APP0-1 APP1-1
APP0-2 APP1-2
APP0-3 APP1-3
…… ……
启动标识等 启动标识等
本发明实施例还提供一种电子设备,包括上述实施例提供的嵌入式系统。
本发明实施例还提供一种软件运行方法,利用上述技术方案提供的嵌入式系统实现,包括:
可编程器件执行CPU与第一FLASH芯片和第二FLASH芯片之间的片选控制;CPU从当前所选的FLASH芯片中加载引导程序Boot至所述DDR中并运行,并通过第一输出端向可编程器件输出Boot软件喂狗信号,可编程器件根据第一预设时间段内Boot软件喂狗信号的输出情况确定是否进行片选切换;
当引导程序Boot正常运行后,CPU读取当前所选的FLASH芯片中存储的启动标识,加载并运行与启动标识对应的APP代码区的应用程序APP;并通过第二输出端向可编程器件输出App软件喂狗信号;可编程器件根据第二预设时间段内App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
如图2所示,本发明实施例提供的软件运行方法具体执步骤包括:CPU运行流程和FPGA运行流程。
CPU运行流程:
系统加电后,CPU从FLASH0启动,运行Boot,Boot软件控制IO0每100ms高、低翻转一次。
Boot读FLASH0中的启动分区标识F,并判断此次复位是否为上电复位,若为上电复位,则将BOOT尝试启动次数K置1,APP启动次数APP_K置0;若非上电复位,即看门狗复位,则需根据APP启动成功标志,判断之前APP是否启动成功,若之前APP未启动成功,即APP启动成功标志为0,则将Boot尝试启动次数K加1。然后清空“APP启动成功”标志。Boot软件根据当前FLASH中启动标识F和BOOT尝试启动次数K决定启动哪份代码区,每次复位后,尝试启动当前代码区2次,若2次均启动不成功,则切换到其他代码区尝试。Boot读取FLASH中指定APP代码区的数据,引导APP启动,并控制IO0停止翻转。
APP启动之后,设置“APP启动成功”标志为1,“APP启动次数”加1,控制IO 1每100ms高、低电平翻转一次。
复位指令带有参数可指定复位后启动哪个代码区。在APP运行过程中,若收到复位指令,则判断复位指令是否需要重启当前代码区,若为启动当前代码区,则IO1停止翻转;若为启动其他代码区,则通过清除复位类型标识的方式来模拟上电复位,并将拟启动的代码区标识写入FLASH中。并控制IO1停止翻转。
若软件运行过程中软件异常跑飞,也将导致无法控制IO 1定时翻转。
FPGA运行流程:
系统加电后,FPGA默认连接FLASH的CS0,FPGA开始喂狗,每500ms喂狗一次。并开始启动定时器timer1。
若定时器timer1定时的30s已到,仍未检测到IO0翻转,说明本FLASH的boot运行异常,需切换FLASH,因此将片选信号切换到CS1,然后停止喂狗。此时看门狗芯片控制CPU复位,并从FLASH1启动。
若在定时器1未到定时的30s内,检测到IO0开始翻转,则说明本FLASH的BOOT运行正常。
从检测到IO0停止翻转后开始启动timer2计时,若连续3s未检测到IO1翻转,说明App运行异常,停止喂狗。此时看门狗芯片控制CPU复位,并仍从FLASH0启动。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种嵌入式系统,其特征在于,包括:CPU、可编程器件、DDR、第一FLASH芯片、第二FLASH芯片和看门狗;所述第一FLASH芯片和第二FLASH芯片均由低地址到高地址分别排布引导程序Boot和多个应用程序APP;
所述CPU的第一输出端、第二输出端和片选端均与所述可编程器件连接;所述可编程器件的第一片选端和第二片选端分别与所述第一FLASH芯片和第二FLASH芯片连接;所述可编程器件的喂狗信号端与所述看门狗连接,所述看门狗与所述CPU连接,所述CPU与所述DDR、第一FLASH芯片和第二FLASH芯片连接;
所述可编程器件用于执行所述CPU与所述第一FLASH芯片和第二FLASH芯片之间的片选控制;所述CPU用于从当前所选的FLASH芯片中加载引导程序Boot至所述DDR中并运行,并通过所述第一输出端向所述可编程器件输出Boot软件喂狗信号,所述可编程器件根据第一预设时间段内所述Boot软件喂狗信号的输出情况确定是否进行片选切换;
所述CPU还用于当所述引导程序Boot正常运行后,读取当前所选的FLASH芯片中存储的启动标识,加载并运行与所述启动标识对应的APP代码区的应用程序APP;并通过所述第二输出端向所述可编程器件输出App软件喂狗信号;所述可编程器件根据第二预设时间段内所述App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
2.根据权利要求1所述的嵌入式系统,其特征在于,所述可编程器件用于当第一预设时间段内所述Boot软件喂狗信号输出异常时,通过所述看门狗控制所述CPU复位,并切换当前所选FLASH芯片;所述CPU从切换后的FLASH芯片中加载引导程序Boot至所述DDR中并运行。
3.根据权利要求1所述的嵌入式系统,其特征在于,所述可编程器件用于当第二预设时间段内所述App软件喂狗信号的输出异常时,通过所述看门狗控制所述CPU复位,重启当前所选应用程序APP预设次数仍启动失败时,则切换为启动其他代码区对应的应用程序APP。
4.根据权利要求1所述的嵌入式系统,其特征在于,所述Boot软件喂狗信号为按照第一预设周期输出的高低电平翻转信号,所述App软件喂狗信号为按照第二预设周期输出的高低电平翻转信号。
5.根据权利要求1至4任一项所述的嵌入式系统,其特征在于,所述第一FLASH芯片和第二FLASH芯片采用同构策略,每次上载重构时,同时对所述第一FLASH芯片和第二FLASH芯片进行固化,并对两个FLASH芯片中的启动标识进行同样的置位。
6.根据权利要求1至4任一项所述的嵌入式系统,其特征在于,所述第一FLASH芯片和第二FLASH芯片采用异构策略,仅对当前所选Flash芯片进行固化,并仅对当前Flash芯片中的启动标识进行置位。
7.根据权利要求1至4任一项所述的嵌入式系统,其特征在于,所述第一FLASH芯片和第二FLASH芯片还包括排布于所述引导程序Boot和多个应用程序APP之间的操作系统。
8.根据权利要求1至4任一项所述的嵌入式系统,其特征在于,所述多个应用程序APP至少包括原始代码区、重构代码区和预置代码区;所述可编程器件采用FPGA或CPLD。
9.一种电子设备,其特征在于,包括权利要求1至8任一项所述的嵌入式系统。
10.一种软件运行方法,其特征在于,利用权利要求1至8任一项所述的嵌入式系统实现,包括:
可编程器件执行CPU与第一FLASH芯片和第二FLASH芯片之间的片选控制;CPU从当前所选的FLASH芯片中加载引导程序Boot至DDR中并运行,并通过第一输出端向可编程器件输出Boot软件喂狗信号,可编程器件根据第一预设时间段内所述Boot软件喂狗信号的输出情况确定是否进行片选切换;
当引导程序Boot正常运行后,CPU读取当前所选的FLASH芯片中存储的启动标识,加载并运行与启动标识对应的APP代码区的应用程序APP;并通过第二输出端向可编程器件输出App软件喂狗信号;可编程器件根据第二预设时间段内所述App软件喂狗信号的输出情况确定是否进行应用程序APP切换。
CN202210700021.9A 2022-06-20 2022-06-20 一种嵌入式系统、电子设备及软件运行方法 Active CN115098304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210700021.9A CN115098304B (zh) 2022-06-20 2022-06-20 一种嵌入式系统、电子设备及软件运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210700021.9A CN115098304B (zh) 2022-06-20 2022-06-20 一种嵌入式系统、电子设备及软件运行方法

Publications (2)

Publication Number Publication Date
CN115098304A CN115098304A (zh) 2022-09-23
CN115098304B true CN115098304B (zh) 2022-11-29

Family

ID=83292282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210700021.9A Active CN115098304B (zh) 2022-06-20 2022-06-20 一种嵌入式系统、电子设备及软件运行方法

Country Status (1)

Country Link
CN (1) CN115098304B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003242044A (ja) * 2002-02-18 2003-08-29 Hitachi Kokusai Electric Inc マイクロコンピュータ回路
CN102169451A (zh) * 2011-04-26 2011-08-31 中兴通讯股份有限公司 一种监控cpu运行的方法和装置
CN203858622U (zh) * 2014-04-29 2014-10-01 上海斐讯数据通信技术有限公司 双boot切换的实现装置
CN109614258A (zh) * 2018-11-26 2019-04-12 广东工业大学 嵌入式Linux的电子操作系统及其外部监控模块的控制方法
CN110727544A (zh) * 2019-10-15 2020-01-24 深圳航天东方红海特卫星有限公司 一种基于工业器件的微小卫星星载计算机系统
CN111158963A (zh) * 2019-12-29 2020-05-15 苏州浪潮智能科技有限公司 一种服务器固件冗余启动方法和服务器
CN112162784A (zh) * 2020-09-28 2021-01-01 中国科学院微小卫星创新研究院 基于龙芯的中高轨卫星数据处理系统
CN112306726A (zh) * 2020-10-20 2021-02-02 中国电子科技集团公司第五十二研究所 一种抗单粒子翻转系统及方法
CN114116270A (zh) * 2021-09-30 2022-03-01 中国航空工业集团公司洛阳电光设备研究所 一种新型嵌入式系统监控方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10127095B2 (en) * 2015-11-04 2018-11-13 Quanta Computer Inc. Seamless automatic recovery of a switch device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003242044A (ja) * 2002-02-18 2003-08-29 Hitachi Kokusai Electric Inc マイクロコンピュータ回路
CN102169451A (zh) * 2011-04-26 2011-08-31 中兴通讯股份有限公司 一种监控cpu运行的方法和装置
CN203858622U (zh) * 2014-04-29 2014-10-01 上海斐讯数据通信技术有限公司 双boot切换的实现装置
CN109614258A (zh) * 2018-11-26 2019-04-12 广东工业大学 嵌入式Linux的电子操作系统及其外部监控模块的控制方法
CN110727544A (zh) * 2019-10-15 2020-01-24 深圳航天东方红海特卫星有限公司 一种基于工业器件的微小卫星星载计算机系统
CN111158963A (zh) * 2019-12-29 2020-05-15 苏州浪潮智能科技有限公司 一种服务器固件冗余启动方法和服务器
CN112162784A (zh) * 2020-09-28 2021-01-01 中国科学院微小卫星创新研究院 基于龙芯的中高轨卫星数据处理系统
CN112306726A (zh) * 2020-10-20 2021-02-02 中国电子科技集团公司第五十二研究所 一种抗单粒子翻转系统及方法
CN114116270A (zh) * 2021-09-30 2022-03-01 中国航空工业集团公司洛阳电光设备研究所 一种新型嵌入式系统监控方法

Also Published As

Publication number Publication date
CN115098304A (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN102104516B (zh) 网络模式切换方法和串行数据通信网络
CN106873990B (zh) 嵌入式系统ram损坏模式下的多分区引导方法
CN102073517A (zh) 一种嵌入式系统的升级、备份方法和装置
CN105354070A (zh) 一种通过i2c升级设备固件的方法
CN115098304B (zh) 一种嵌入式系统、电子设备及软件运行方法
CN110389772B (zh) 双核mcu应用程序升级方法
CN110764953A (zh) 一种数据恢复方法、装置、设备及可读存储介质
CN101604248B (zh) 一种修正只读存储器中程序的嵌入式系统及其实现方法
CN115454477A (zh) 一种固态硬盘不中断业务的更新固件的方法
CN116795408A (zh) Ecu的软件升级方法、系统及车辆
US11604635B2 (en) Online program updating method
CN111078255B (zh) 一种软件升级方法和软件升级系统
CN106250193B (zh) 一种基于nand存储器的系统启动方法及系统
CN113568707A (zh) 基于容器技术的海洋平台的计算机控制方法及系统
CN114398087B (zh) 一种提高单片机更新程序后运行稳定性的方法及单片机
CN116072202A (zh) 一种存储设备的管理方法、系统及存储介质
CN116048595A (zh) 一种智能终端无感升级方法、系统及电动叉车
CN115168079A (zh) 一种双处理器设备及其控制方法
JP2001109629A (ja) Cpuのブート制御装置及びブート制御方法
CN1323361C (zh) 一种使用多个启动程序存储器的处理器系统及其启动方法
CN113867210A (zh) 多路星载嵌入式系统软件在轨重构控制系统及控制方法
CN113114730A (zh) 升级方法、装置、终端设备及存储介质
CN110554928A (zh) 一种非易失性半导体存储器参数上电读取方法及装置
CN109857701A (zh) Fpga配置电路的启动系统及其方法
US6718483B1 (en) Fault tolerant circuit and autonomous recovering method

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