CN112181526B - 设备启动方法及装置 - Google Patents
设备启动方法及装置 Download PDFInfo
- Publication number
- CN112181526B CN112181526B CN202011059399.2A CN202011059399A CN112181526B CN 112181526 B CN112181526 B CN 112181526B CN 202011059399 A CN202011059399 A CN 202011059399A CN 112181526 B CN112181526 B CN 112181526B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- spi flash
- pin
- switch
- cpu
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Abstract
本发明公开了一种设备启动方法及装置,该方法包括:接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;确定所述第一启动结果是否为启动失败;若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果。该方案可以大大提高设备启动的可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤指一种设备启动方法及装置。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)是在可编程阵列逻辑(Programming Array Logic,PAL)、通用阵列逻辑(Generic Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件的基础上进一步发展的产物,内部基本结构为门阵列构成静态存储器(Static Random-Access Memory,SRAM),在路由器、交换机、服务器等等设备中使用FPGA时,需外加串行外设接口(SerialPeripheral Interface,SPI)闪存来存放FPGA的配置文件,还需加只读存储器(Read-OnlyMemory,ROM)来存放监控策略信息,如图1所示为一种设备的架构示意图,其中,CPU、FPGA、SPI闪存分别通过SPI接口与切换开关连接,切换开关用来切换CPU或者FPGA与SPI闪存联通,当FPGA启动时,切换FPGA与SPI闪存联通,由FPGA从SPI闪存中获取配置文件进行启动,当SPI闪存需要升级时,切换CPU与SPI闪存联通,由CPU升级SPI闪存。
上述设备启动方法中,若SPI闪存、程序、焊接等等出现故障,或者SPI闪存在线升级写过程中挂死或者突然断电,设备都无法正常启动,无法使用。因此,上述设备启动方法可靠性较差。
发明内容
本发明实施例提供一种设备启动方法及装置,用以解决现有技术中存在的可靠性较差的问题。
根据本发明实施例,提供一种设备启动方法,应用于所述设备包括的中央处理器CPU中,所述设备还包括现场可编程门阵列FPGA、主串行外设接口SPI闪存、从SPI闪存、切换开关和二选一开关,所述CPU与所述FPGA连接,所述二选一开关与所述切换开关、所述CPU、所述主SPI闪存和所述从SPI闪存连接,所述CPU、所述FPGA、所述主SPI闪存和所述从SPI闪存分别通过SPI接口与所述切换开关连接,所述切换开关用于切换所述CPU或者所述FPGA选通,所述二选一开关用于切换所述主SPI闪存或者所述从SPI选通,所述方法包括:
接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;
确定所述第一启动结果是否为启动失败;
若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果。
可选的,还包括:
监控是否接收到SPI闪存升级指令;
若接收到所述SPI闪存升级指令,则通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,升级所述主SPI闪存;
确定是否成功升级所述主SPI闪存;
若确定成功升级所述主SPI闪存,则通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI闪存联通,升级所述从SPI闪存。
具体的,所述CPU的第一通用输入输出接口GPIO与所述切换开关的第一选通管脚连接,所述CPU的第二GPIO与所述切换开关的第二选通管脚连接,所述CPU的第三GPIO与所述二选一开关的第三选通管脚连接,所述CPU的第四GPIO与所述二选一开关的第四选通管脚连接,所述切换开关与所述主SPI闪存和所述从SPI闪存连接的SPI接口中的第一片选管脚与所述二选一开关的输入管脚连接,所述二选一开关的第一输出管脚和第二输出管脚分别与所述主SPI闪存的SPI接口中的第二片选管脚和所述从SPI闪存的SPI接口中的第三片选管脚连接,所述第一选通管脚与所述第二选通管脚互斥取反,所述第三选通管脚与所述第四选通管脚互斥取反;
通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,具体包括:
通过所述第一GPIO使能所述第一选通管脚以选通所述FPGA,并通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,具体包括:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚;
通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,具体包括:
通过所述第二GPIO使能所述第二选通管脚以选通所述CPU,通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI联通,具体包括:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
可选的,还包括:
若确定未成功升级所述主SPI闪存或者所述从SPI闪存,则发出故障告警。
可选的,还包括:
确定所述第二启动结果是否为启动失败;
若确定所述第二启动结果为启动失败,则发出故障告警。
根据本发明实施例,还提供一种设备启动装置,应用于所述设备包括的CPU中,所述设备还包括FPGA、SPI闪存、从SPI闪存、切换开关和二选一开关,所述CPU与所述FPGA连接,所述二选一开关与所述切换开关、所述CPU、所述主SPI闪存和所述从SPI闪存连接,所述CPU、所述FPGA、所述主SPI闪存和所述从SPI闪存分别通过SPI接口与所述切换开关连接,所述切换开关用于切换所述CPU或者所述FPGA选通,所述二选一开关用于切换所述主SPI闪存或者所述从SPI选通,所述装置包括:
控制模块,用于接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;
确定模块,用于确定所述第一启动结果是否为启动失败;
所述控制模块,还用于若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果。
可选的,还包括:
监控模块,用于监控是否接收到SPI闪存升级指令;
所述控制模块,还用于若接收到所述SPI闪存升级指令,则通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,升级所述主SPI闪存;
所述确定模块,还用于确定是否成功升级所述主SPI闪存;
所述控制模块,还用于若确定成功升级所述主SPI闪存,则通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI闪存联通,升级所述从SPI闪存。
具体的,所述CPU的第一GPIO与所述切换开关的第一选通管脚连接,所述CPU的第二GPIO与所述切换开关的第二选通管脚连接,所述CPU的第三GPIO与所述二选一开关的第三选通管脚连接,所述CPU的第四GPIO与所述二选一开关的第四选通管脚连接,所述切换开关与所述主SPI闪存和所述从SPI闪存连接的SPI接口中的第一片选管脚与所述二选一开关的输入管脚连接,所述二选一开关的第一输出管脚和第二输出管脚分别与所述主SPI闪存的SPI接口中的第二片选管脚和所述从SPI闪存的SPI接口中的第三片选管脚连接,所述第一选通管脚与所述第二选通管脚互斥取反,所述第三选通管脚与所述第四选通管脚互斥取反;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,具体用于:
通过所述第一GPIO使能所述第一选通管脚以选通所述FPGA,并通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,具体用于:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,具体用于:
通过所述第二GPIO使能所述第二选通管脚以选通所述CPU,通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI联通,具体用于:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
可选的,还包括告警模块,用于:
若确定未成功升级所述主SPI闪存或者所述从SPI闪存,则发出故障告警。
可选的,所述确定模块,还用于:
确定所述第二启动结果是否为启动失败;
若确定所述第二启动结果为启动失败,则发出故障告警。
根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。
根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。
本发明有益效果如下:
本发明实施例提供一种设备启动方法及装置,应用于所述设备包括的中央处理器CPU中,所述设备还包括现场可编程门阵列FPGA、主串行外设接口SPI闪存、从SPI闪存、切换开关和二选一开关,所述CPU与所述FPGA连接,所述二选一开关与所述切换开关、所述CPU、所述主SPI闪存和所述从SPI闪存连接,所述CPU、所述FPGA、所述主SPI闪存和所述从SPI闪存分别通过SPI接口与所述切换开关连接,通过接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;确定所述第一启动结果是否为启动失败;若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果。该方案中,设备设置主SPI闪存和从SPI闪存,CPU接收到设备启动指令后,FPGA可以从主SPI闪存获取配置文件进行启动,若启动失败,则从从SPI闪存获取配置文件启动,由于设置主从两个SPI闪存,两个SPI闪存同时故障的概率很小,从而可以确保设备正常启动,相对于设置一个SPI的设备启动方式,可以大大提高设备启动的可靠性。
附图说明
图1为现有技术中的设备的架构示意图;
图2为本发明实施例中一种设备的架构示意图;
图3为本发明实施例中一种设备启动方法的流程图;
图4为本发明实施例中一种设备升级方法的流程图;
图5为本发明实施例中一种设备启动装置的结构示意图;
图6为本申请示出的一种电子设备的结构示意图。
具体实施方式
针对现有技术中存在的可靠性较差的问题,本发明实施例提供一种设备启动方法,应用于如图2所示的设备中,应用于设备包括的CPU中,设备还包括FPGA、主SPI闪存、从SPI闪存、切换开关和二选一开关,CPU与FPGA连接,二选一开关与切换开关、CPU、主SPI闪存和从SPI闪存连接,CPU、FPGA、主SPI闪存和从SPI闪存分别通过SPI接口与切换开关连接,切换开关用于切换CPU或者FPGA选通,二选一开关用于切换主SPI闪存或者从SPI选通,该方法的流程如图3所示,执行步骤如下:
S31:接收到设备启动指令后,通过切换开关和二选一开关控制FPGA与主SPI闪存联通,以使FPGA从主SPI闪存获取配置文件进行启动、并反馈第一启动结果。
由于设备设置主从SPI闪存,所以在接收到设备启动指令后,可以首先使FPGA与主SPI闪存联通,也就是FPGA首先从主SPI启动,并且FPGA会反馈启动结果,该启动结果可以定义为第一启动结果。
S32:确定第一启动结果是否为启动失败。
S33:若确定第一启动结果为启动失败,则通过切换开关和二选一开关控制FPGA与从SPI闪存联通,以使FPGA从从SPI闪存获取配置文件进行启动、并反馈第二启动结果。
若第一启动结果为启动成功,则设备成功启动,若第一启动结果为启动失败,还可以继续重试通过FPGA从SPI闪存启动,并且FPGA会反馈启动结果,该启动结果可以定义为第二启动结果FPGA。
一种可选的实施方式,还可以进一步确定第二启动结果是否为启动失败,若第一启动结果为启动成功,则设备成功启动;若确定第二启动结果为启动失败,则说明FPGA从主从SPI闪存均无法正常启动,从而需要技术人员进一步处理,可以发出故障告警。
该方案中,设备设置主SPI闪存和从SPI闪存,CPU接收到设备启动指令后,FPGA可以从主SPI闪存获取配置文件进行启动,若启动失败,则从从SPI闪存获取配置文件启动,由于设置主从两个SPI闪存,两个SPI闪存同时故障的概率很小,从而可以确保设备正常启动,相对于设置一个SPI的设备启动方式,可以大大提高设备启动的可靠性。
可选的,如图2所示的设备中,CPU还可以升级主从SPI,如图4所示为一种设备升级的方法,具体包括:
S41:监控是否接收到SPI闪存升级指令。
通常主从SPI闪存需要升级时,CPU会接收到SPI闪存升级指令,因此,在设备成功启动后,可以监控是否接收到SPI闪存升级指令。
S42:若接收到SPI闪存升级指令,则通过切换开关和二选一开关控制CPU与主SPI联通,升级主SPI闪存。
由于设备启动时,FPGA首先通过主SPI闪存启动,因此,可以首先升级主SPI闪存。
S43:确定是否成功升级主SPI闪存。
S44:若确定成功升级主SPI闪存,则通过切换开关和二选一开关控制CPU与从SPI闪存联通,升级从SPI闪存。
在主SPI闪存成功升级后,可以进一步升级从SPI闪存;若确定未成功升级主SPI闪存或者从SPI闪存,说明主SPI闪存或者从SPI闪存存在故障,因此发出故障告警,此时还可以确保设备正常工作。
具体的,如图2所示,CPU的第一通用输入输出接口(General Purpose Input/Output,GPIO)与切换开关的第一选通管脚连接,CPU的第二GPIO与切换开关的第二选通管脚连接,CPU的第三GPIO与二选一开关的第三选通管脚连接,CPU的第四GPIO与二选一开关的第四选通管脚连接,切换开关与主SPI闪存和从SPI闪存连接的SPI接口中的第一片选管脚与二选一开关的输入管脚连接,二选一开关的第一输出管脚和第二输出管脚分别与主SPI闪存的SPI接口中的第二片选管脚和从SPI闪存的SPI接口中的第三片选管脚连接,第一选通管脚与第二选通管脚互斥取反,第三选通管脚与第四选通管脚互斥取反。
上述S31中的通过切换开关和二选一开关控制FPGA与主SPI闪存联通,实现过程具体包括:通过第一GPIO使能第一选通管脚以选通FPGA,并通过第三GPIO使能第三选通管脚以联通输入管脚与第一输出管脚。由于第一选通管脚与第二选通管脚互斥取反、第三选通管脚与第四选通管脚互斥取反,通过第一GPIO使能第一选通管脚,并通过第三GPIO使能第三选通管脚时,可以确保FPGA与主SPI闪存联通。
上述S33中的通过切换开关和二选一开关控制FPGA与从SPI闪存联通,实现过程具体包括:通过第四GPIO使能第四选通管脚以联通输入管脚与第二输出管脚。由于已经通过第一GPIO使能第一选通管脚,再通过第四GPIO使能第四选通管脚后,就可以确保FPGA与从SPI闪存联通。
上述S42中的通过切换开关和二选一开关控制CPU与主SPI联通,实现过程具体包括:通过第二GPIO使能第二选通管脚以选通CPU,通过第三GPIO使能第三选通管脚以联通输入管脚与第一输出管脚。由于第一选通管脚与第二选通管脚互斥取反、第三选通管脚与第四选通管脚互斥取反,通过第二GPIO使能第二选通管脚,并通过第三GPIO使能第三选通管脚时,可以确保CPU与主SPI闪存联通。
上述S44中的通过切换开关和二选一开关控制CPU与从SPI联通,实现过程具体包括:通过第四GPIO使能第四选通管脚以联通输入管脚与第二输出管脚。由于已经通过第一片选管脚使能第一选通管脚,再通过第四GPIO使能第四选通管脚后,就可以确保CPU与从SPI闪存联通。
基于同一发明构思,本发明实施例提供一种设备启动装置,应用于设备包括的CPU中,设备还包括FPGA、SPI闪存、从SPI闪存、切换开关和二选一开关,CPU与FPGA连接,二选一开关与切换开关、CPU、主SPI闪存和从SPI闪存连接,CPU、FPGA、主SPI闪存和从SPI闪存分别通过SPI接口与切换开关连接,切换开关用于切换CPU或者FPGA选通,二选一开关用于切换主SPI闪存或者从SPI闪存选通,该装置的结构如图5所示,包括:
控制模块51,用于接收到设备启动指令后,通过切换开关和二选一开关控制FPGA与主SPI闪存联通,以使FPGA从主SPI闪存获取配置文件进行启动、并反馈第一启动结果;
确定模块52,用于确定第一启动结果是否为启动失败;
控制模块51,还用于若确定第一启动结果为启动失败,则通过切换开关和二选一开关控制FPGA与从SPI闪存联通,以使FPGA从从SPI闪存获取配置文件进行启动、并反馈第二启动结果。
该方案中,设备设置主SPI闪存和从SPI闪存,CPU接收到设备启动指令后,FPGA可以从主SPI闪存获取配置文件进行启动,若启动失败,则从从SPI闪存获取配置文件启动,由于设置主从两个SPI闪存,两个SPI闪存同时故障的概率很小,从而可以确保设备正常启动,相对于设置一个SPI的设备启动方式,可以大大提高设备启动的可靠性。
可选的,还包括:
监控模块,用于监控是否接收到SPI闪存升级指令;
控制模块,还用于若接收到SPI闪存升级指令,则通过切换开关和二选一开关控制CPU与主SPI联通,升级主SPI闪存;
确定模块,还用于确定是否成功升级主SPI闪存;
控制模块,还用于若确定成功升级主SPI闪存,则通过切换开关和二选一开关控制CPU与从SPI闪存联通,升级从SPI闪存。
具体的,CPU的第一GPIO与切换开关的第一选通管脚连接,CPU的第二GPIO与切换开关的第二选通管脚连接,CPU的第三GPIO与二选一开关的第三选通管脚连接,CPU的第四GPIO与二选一开关的第四选通管脚连接,切换开关与主SPI闪存和从SPI闪存连接的SPI接口中的第一片选管脚与二选一开关的输入管脚连接,二选一开关的第一输出管脚和第二输出管脚分别与主SPI闪存的SPI接口中的第二片选管脚和从SPI闪存的SPI接口中的第三片选管脚连接,第一选通管脚与第二选通管脚互斥取反,第三选通管脚与第四选通管脚互斥取反;
控制模块,用于通过切换开关和二选一开关控制FPGA与主SPI闪存联通,具体用于:
通过第一GPIO使能第一选通管脚以选通FPGA,并通过第三GPIO使能第三选通管脚以联通输入管脚与第一输出管脚;
控制模块,用于通过切换开关和二选一开关控制FPGA与从SPI闪存联通,具体用于:
通过第四GPIO使能第四选通管脚以联通输入管脚与第二输出管脚;
控制模块,用于通过切换开关和二选一开关控制CPU与主SPI联通,具体用于:
通过第二GPIO使能第二选通管脚以选通CPU,通过第三GPIO使能第三选通管脚以联通输入管脚与第一输出管脚;
控制模块,用于通过切换开关和二选一开关控制CPU与从SPI联通,具体用于:
通过第四GPIO使能第四选通管脚以联通输入管脚与第二输出管脚。
可选的,还包括告警模块,用于:
若确定未成功升级主SPI闪存或者从SPI闪存,则发出故障告警。
可选的,确定模块,还用于:
确定第二启动结果是否为启动失败;
若确定第二启动结果为启动失败,则发出故障告警。
本申请实施例还提供了一种电子设备,请参见图6所示,包括处理器610、通信接口620、存储器630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。
存储器630,用于存放计算机程序;
处理器610,用于执行存储器630上所存放的程序时,实现上述实施例中任一所述的设备启动方法。
通信接口620用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
该方案中,设备设置主SPI闪存和从SPI闪存,CPU接收到设备启动指令后,FPGA可以从主SPI闪存获取配置文件进行启动,若启动失败,则从从SPI闪存获取配置文件启动,由于设置主从两个SPI闪存,两个SPI闪存同时故障的概率很小,从而可以确保设备正常启动,相对于设置一个SPI的设备启动方式,可以大大提高设备启动的可靠性。
相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的设备启动方法。
该方案中,设备设置主SPI闪存和从SPI闪存,CPU接收到设备启动指令后,FPGA可以从主SPI闪存获取配置文件进行启动,若启动失败,则从从SPI闪存获取配置文件启动,由于设置主从两个SPI闪存,两个SPI闪存同时故障的概率很小,从而可以确保设备正常启动,相对于设置一个SPI的设备启动方式,可以大大提高设备启动的可靠性。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种设备启动方法,其特征在于,应用于所述设备包括的中央处理器CPU中,所述设备还包括现场可编程门阵列FPGA、主串行外设接口SPI闪存、从SPI闪存、切换开关和二选一开关,所述CPU与所述FPGA连接,所述二选一开关与所述切换开关、所述CPU、所述主SPI闪存和所述从SPI闪存连接,所述CPU、所述FPGA、所述主SPI闪存和所述从SPI闪存分别通过SPI接口与所述切换开关连接,所述切换开关用于切换所述CPU或者所述FPGA选通,所述二选一开关用于切换所述主SPI闪存或者所述从SPI闪存选通,所述方法包括:
接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;
确定所述第一启动结果是否为启动失败;
若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果;
其中,所述CPU的第一通用输入输出接口GPIO与所述切换开关的第一选通管脚连接,所述CPU的第二GPIO与所述切换开关的第二选通管脚连接,所述CPU的第三GPIO与所述二选一开关的第三选通管脚连接,所述CPU的第四GPIO与所述二选一开关的第四选通管脚连接,所述切换开关与所述主SPI闪存和所述从SPI闪存连接的SPI接口中的第一片选管脚与所述二选一开关的输入管脚连接,所述二选一开关的第一输出管脚和第二输出管脚分别与所述主SPI闪存的SPI接口中的第二片选管脚和所述从SPI闪存的SPI接口中的第三片选管脚连接,所述第一选通管脚与所述第二选通管脚互斥取反,所述第三选通管脚与所述第四选通管脚互斥取反;
通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,具体包括:
通过所述第一GPIO使能所述第一选通管脚以选通所述FPGA,并通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,具体包括:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
2.如权利要求1所述的方法,其特征在于,还包括:
监控是否接收到SPI闪存升级指令;
若接收到所述SPI闪存升级指令,则通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,升级所述主SPI闪存;
确定是否成功升级所述主SPI闪存;
若确定成功升级所述主SPI闪存,则通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI闪存联通,升级所述从SPI闪存。
3.如权利要求2所述的方法,其特征在于,通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,具体包括:
通过所述第二GPIO使能所述第二选通管脚以选通所述CPU,通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI联通,具体包括:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
4.如权利要求2所述的方法,其特征在于,还包括:
若确定未成功升级所述主SPI闪存或者所述从SPI闪存,则发出故障告警。
5.如权利要求1-4任一所述的方法,其特征在于,还包括:
确定所述第二启动结果是否为启动失败;
若确定所述第二启动结果为启动失败,则发出故障告警。
6.一种设备启动装置,其特征在于,应用于所述设备包括的CPU中,所述设备还包括FPGA、SPI闪存、从SPI闪存、切换开关和二选一开关,所述CPU与所述FPGA连接,所述二选一开关与所述切换开关、所述CPU、所述主SPI闪存和所述从SPI闪存连接,所述CPU、所述FPGA、所述主SPI闪存和所述从SPI闪存分别通过SPI接口与所述切换开关连接,所述切换开关用于切换所述CPU或者所述FPGA选通,所述二选一开关用于切换所述主SPI闪存或者所述从SPI闪存选通,所述装置包括:
控制模块,用于接收到设备启动指令后,通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,以使所述FPGA从所述主SPI闪存获取配置文件进行启动、并反馈第一启动结果;
确定模块,用于确定所述第一启动结果是否为启动失败;
所述控制模块,还用于若确定所述第一启动结果为启动失败,则通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,以使所述FPGA从所述从SPI闪存获取所述配置文件进行启动、并反馈第二启动结果;
其中,所述CPU的第一GPIO与所述切换开关的第一选通管脚连接,所述CPU的第二GPIO与所述切换开关的第二选通管脚连接,所述CPU的第三GPIO与所述二选一开关的第三选通管脚连接,所述CPU的第四GPIO与所述二选一开关的第四选通管脚连接,所述切换开关与所述主SPI闪存和所述从SPI闪存连接的SPI接口中的第一片选管脚与所述二选一开关的输入管脚连接,所述二选一开关的第一输出管脚和第二输出管脚分别与所述主SPI闪存的SPI接口中的第二片选管脚和所述从SPI闪存的SPI接口中的第三片选管脚连接,所述第一选通管脚与所述第二选通管脚互斥取反,所述第三选通管脚与所述第四选通管脚互斥取反;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述FPGA与所述主SPI闪存联通,具体用于:
通过所述第一GPIO使能所述第一选通管脚以选通所述FPGA,并通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述FPGA与所述从SPI闪存联通,具体用于:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
7.如权利要求6所述的装置,其特征在于,还包括:
监控模块,用于监控是否接收到SPI闪存升级指令;
所述控制模块,还用于若接收到所述SPI闪存升级指令,则通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,升级所述主SPI闪存;
所述确定模块,还用于确定是否成功升级所述主SPI闪存;
所述控制模块,还用于若确定成功升级所述主SPI闪存,则通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI闪存联通,升级所述从SPI闪存。
8.如权利要求7所述的装置,其特征在于,所述控制模块,用于通过所述切换开关和所述二选一开关控制所述CPU与所述主SPI联通,具体用于:
通过所述第二GPIO使能所述第二选通管脚以选通所述CPU,通过所述第三GPIO使能所述第三选通管脚以联通所述输入管脚与所述第一输出管脚;
所述控制模块,用于通过所述切换开关和所述二选一开关控制所述CPU与所述从SPI联通,具体用于:
通过所述第四GPIO使能所述第四选通管脚以联通所述输入管脚与所述第二输出管脚。
9.如权利要求7所述的装置,其特征在于,还包括告警模块,用于:
若确定未成功升级所述主SPI闪存或者所述从SPI闪存,则发出故障告警。
10.如权利要求6-9任一所述的装置,其特征在于,所述确定模块,还用于:
确定所述第二启动结果是否为启动失败;
若确定所述第二启动结果为启动失败,则发出故障告警。
11.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011059399.2A CN112181526B (zh) | 2020-09-30 | 2020-09-30 | 设备启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011059399.2A CN112181526B (zh) | 2020-09-30 | 2020-09-30 | 设备启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181526A CN112181526A (zh) | 2021-01-05 |
CN112181526B true CN112181526B (zh) | 2022-11-11 |
Family
ID=73946730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011059399.2A Active CN112181526B (zh) | 2020-09-30 | 2020-09-30 | 设备启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181526B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7554357B2 (en) * | 2006-02-03 | 2009-06-30 | Lattice Semiconductor Corporation | Efficient configuration of daisy-chained programmable logic devices |
CN101420328B (zh) * | 2008-12-03 | 2010-12-08 | 杭州华三通信技术有限公司 | 远程升级现场可编程门阵列的系统、接口卡及方法 |
CN102360302B (zh) * | 2011-10-13 | 2014-01-22 | 福建星网锐捷网络有限公司 | 一种fpga配置文件在线升级方法及装置 |
CN102736941A (zh) * | 2012-07-03 | 2012-10-17 | 江西省电力公司信息通信分公司 | 一种实现自动双flash启动cpu系统的方法 |
CN111045866B (zh) * | 2019-12-06 | 2023-06-16 | 锐捷网络股份有限公司 | 一种bmc故障处理方法、装置、电子设备及存储介质 |
CN111158963A (zh) * | 2019-12-29 | 2020-05-15 | 苏州浪潮智能科技有限公司 | 一种服务器固件冗余启动方法和服务器 |
-
2020
- 2020-09-30 CN CN202011059399.2A patent/CN112181526B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112181526A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8762782B2 (en) | Basic input-output system circuit and method for using the same | |
EP4083786A1 (en) | Cloud operating system management method and apparatus, server, management system, and medium | |
US11080404B2 (en) | Firmware upgrade method, slave station of robot, and machine readable storage medium | |
US11392368B2 (en) | Electronic control system for updating circuit | |
US10216550B2 (en) | Technologies for fast boot with adaptive memory pre-training | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
US7194614B2 (en) | Boot swap method for multiple processor computer systems | |
CN109408126A (zh) | 一种多路服务器的开机方法、bmc及多路服务器 | |
WO2023065601A1 (zh) | 服务器组件自检异常恢复方法、装置、系统及介质 | |
CN111209265A (zh) | 一种数据库切换方法和终端设备 | |
CN112181526B (zh) | 设备启动方法及装置 | |
CN116644011B (zh) | 一种i2c设备的快速识别方法、装置、设备及存储介质 | |
TWI590012B (zh) | 分散型控制系統用控制機器及分散型控制基本單元 | |
CN113778732A (zh) | 业务板卡的故障定位方法及装置 | |
TWI690849B (zh) | 應用升級與關閉應用之方法及裝置 | |
CN113741928B (zh) | 一种基于i2c的逻辑器件的固件升级方法及系统 | |
TWI838264B (zh) | 電腦系統及其電腦系統除錯資訊處理之方法 | |
CN108334422B (zh) | 一种控制异构混合内存系统冷重启的方法及bmc | |
CN113434163B (zh) | 适用于电子控制单元的在线标定方法、系统、设备及介质 | |
CN109857700B (zh) | 一种fpga切换方法、装置、系统、电子设备及介质 | |
JP2985188B2 (ja) | 二重化計算機システム | |
TWI244031B (en) | Booting switch method for computer system having multiple processors | |
CN113515304A (zh) | 基于框式网络设备的板卡间交互方法及装置 | |
CN116185510A (zh) | 分区切换启动方法、阵列服务器和计算机可读存储介质 | |
CN112052024A (zh) | 一种兆芯服务器bios的升级方法、装置、设备及介质 |
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 |