CN113821240B - 固件升级方法、电子设备、存储介质及信号锁存电路 - Google Patents
固件升级方法、电子设备、存储介质及信号锁存电路 Download PDFInfo
- Publication number
- CN113821240B CN113821240B CN202111031578.XA CN202111031578A CN113821240B CN 113821240 B CN113821240 B CN 113821240B CN 202111031578 A CN202111031578 A CN 202111031578A CN 113821240 B CN113821240 B CN 113821240B
- Authority
- CN
- China
- Prior art keywords
- firmware
- latch
- signal
- upgraded
- output
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000001914 filtration Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种固件升级方法、电子设备、存储介质及信号锁存电路,所述固件升级方法包括:从需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态;在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级。本发明实施例通过对升级的固件锁存输出电平,对其它未升级的固件继续实现业务功能解决了固件升级需下电重启设备而导致正常运行的业务中断乃至数据丢失的问题,有效保障了业务进行的持续性,提高了固件升级的便利性。
Description
技术领域
本发明涉及电子技术领域,尤指一种固件升级方法、电子设备、存储介质及信号锁存电路。
背景技术
专用集成电路(ApplicatI/On Specific Intergrated Circuits,ASIC)是根据特定用户要求和特定电子系统的需要而设计、制造的集成电路。目前,使用复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)或现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)来进行ASIC设计是最为流行的方式之一。CPLD和FPGA都具有用户现场可编程特性,能够根据用户的需要对其固件进行更新,以灵活调整实现的功能。
在现有技术中,对CPLD或FPGA的固件的在线升级,主要采用的是冷升级方案。冷升级方案主要步骤为上位机将需要更新的固件写入CPLD或FPGA对应的只读存储器(Read-Only Memory,ROM)(例如,快擦除读写(Flash)存储器)中,芯片完成固件写入ROM后需要下电重启,在重新上电时由随机存取存储器(Random Access Memory,RAM)(例如,静态随机存取存储器(Static Random Access Memory,SRAM))从ROM中重新初始化读取更新后的固件,从而完成更新。由于固件下电重启和复位上电会将固件的所有操作重新初始化,因而会打断ASIC的正常工作,影响业务功能的实现。
发明内容
本发明实施例提供一种固件升级方法、电子设备、存储介质及信号锁存电路,用以解决现有技术中存在ASIC升级时会打断ASIC的正常工作,影响业务功能的实现的问题。
第一方面,本发明实施例提供了一种ASIC的固件升级方法,应用于上位机,包括:
从ASIC需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态;
在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级。
可选地,所述从需要升级的固件中选择一个固件进行升级,包括:
确定需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件;
从所述ASIC需要升级的链路中选择一条链路;
从选择的链路中选择一个需要升级的固件进行升级;
所述在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级,包括:
在完成所述固件的升级后继续从所述链路中选择未升级的固件进行升级,直至所述链路的所有需要升级的固件完成升级;以及
在完成所述链路的升级后继续从需要升级的链路中选择未升级的链路进行升级,直至所有需要升级的链路完成升级。
可选地,所述从需要升级的固件中选择一个固件后,对所述固件进行升级前还包括:
将升级数据写入需要升级的固件对应的所述ASIC的只读存储器ROM;
停止应用层访问选择的固件;
所述对所述选择的固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,包括:
保存所述固件的寄存器值,之后控制所述固件的信号锁存电路锁存所述固件的输出电平;
对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的随机存取存储器RAM;
将保存的所述固件的寄存器值写入所述固件;
所述在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,包括:
将保存的所述固件的寄存器值写入所述固件后,控制所述信号锁存电路解除输出电平的锁存状态;
在对所述固件升级完成后,还包括:
恢复应用层访问所述固件。
可选地,将保存的所述固件的寄存器值写入所述固件之前,还包括:
检测到复位完成标志位,并根据读写所述固件的测试寄存器的结果,确定所述固件读写功能正常。
第二方面,基于同一发明构思,本发明实施例还提供了一种电子设备,包括:与ASIC连接的处理器和用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
从所述ASIC需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态;
在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级。
可选地,所述处理器被配置为执行所述指令实现所述从需要升级的固件中选择一个固件进行升级,具体包括:
确定需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件;
从所述ASIC需要升级的链路中选择一条链路;
从选择的链路中选择一个需要升级的固件进行升级;
所述在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级,具体包括:
在完成所述固件的升级后继续从所述链路中选择未升级的固件进行升级,直至所述链路的所有需要升级的固件完成升级;以及
在完成所述链路的升级后继续从需要升级的链路中选择未升级的链路进行升级,直至所有需要升级的链路完成升级。
可选地,所述处理器被配置为执行所述指令实现从需要升级的固件中选择一个固件后,对所述固件进行升级前还包括:
将升级数据写入需要升级的固件对应的所述ASIC的只读存储器ROM;
停止应用层访问选择的固件;
所述处理器被配置为执行所述指令实现对所述选择的固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
保存所述固件的寄存器值,之后控制所述固件的信号锁存电路锁存所述固件的输出电平;
对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的随机存取存储器RAM;
将保存的所述固件的寄存器值写入所述固件;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
将保存的所述固件的寄存器值写入所述固件后,控制所述信号锁存电路解除输出电平的锁存状态;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后,还包括:
恢复应用层访问所述固件。
可选地,所述处理器被配置为执行所述指令实现将保存的所述固件的寄存器值写入所述固件之前,还用于:
检测到复位完成标志位,并根据读写所述固件的测试寄存器的结果,确定所述固件读写功能正常。
可选地,所述处理器被配置为执行所述指令实现在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
在对所述固件升级开始后向所述信号锁存电路的锁存信号端发送锁存指示信号,使所述信号锁存电路根据所述锁存指示信号,和所述信号锁存电路的运行状态端接收的升级状态信号,锁存所述固件的输出电平;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
在对所述固件升级完成后向所述信号锁存电路的锁存信号端发送解除锁存信号,使所述信号锁存电路根据所述解除锁存信号,和所述信号锁存电路的运行状态端接收的运行状态信号,解除输出电平的锁存状态。
第三方面,基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现所述的固件升级方法。
第四方面,基于同一发明构思,本发明实施例还提供了一种信号锁存电路,包括锁存模块、控制模块,其中:
所述控制模块用于根据接收到的上位机的锁存指示信号控制所述锁存模块锁存固件的输出电平,根据接收到的所述上位机的解除锁存信号控制所述锁存模块解除输出电平的锁存状态;
所述锁存模块用于在所述控制模块的控制下锁存所述固件的输出电平或解除输出电平的锁存状态;
其中,所述锁存指示信号是所述上位机对ASIC中需要升级的所述固件进行升级开始后发送的;所述解除锁存信号是所述上位机对所述固件进行升级完成后发送的。
可选地,所述控制模块包括锁存信号端、运行状态端和输出控制端;其中所述控制模块的输出控制端与所述锁存模块连接;
所述控制模块具体用于:
通过所述锁存信号端接收所述上位机发送的锁存指示信号或解除锁存信号;以及通过运行状态端接收固件的运行状态信号或升级状态信号;并在接收所述锁存指示信号和升级状态信号后,通过所述输出控制端向所述锁存模块发送有效使能信号,使所述锁存模块锁存输出电平;在接收所述解除锁存指示信号和所述运行状态信号后,通过所述输出控制端向所述锁存模块发送无效使能信号,使所述锁存模块解除所述输出电平的锁存状态。
可选地,所述锁存模块包括使能端、输入端、输出端和反馈端;其中所述使能端与所述控制模块连接,所述输入端与所述固件中对应逻辑块的输出端连接,所述输出端与所述固件的输入输出I/O块连接,所述反馈端与所述逻辑块的校验端连接;
所述锁存模块具体用于:
通过所述输入端接收所述逻辑块的输出电平;在通过所述使能端接收所述控制模块输出的有效使能信号后,锁存所述输出电平并通过所述输出端向所述输入输出I/O块输出锁存的所述输出电平,以及在通过所述使能端接收所述控制模块输出的无效使能信号后,解除输出电平的锁存状态并将所述输入端接收的输出电平通过所述输出端向所述输入输出I/O块输出;通过所述反馈端向所述逻辑块反馈所述输出端输出的输出电平。
可选地,所述控制模块还用于在接收所述锁存指示信号后控制连接的所述固件的逻辑块不对接收的输入信号输出响应,在接收所述解除锁存信号后控制所述逻辑块对其接收的输入信号输出响应。
可选地,所述控制模块还包括运行控制端,所述运行控制端与所述逻辑块的响应控制端连接;
所述控制模块还用于在接收所述锁存指示信号后通过所述运行控制端输出禁止响应信号,使所述逻辑块不对接收的输入信号输出响应;在接收所述解除锁存信号后通过所述运行控制端输出允许响应信号,使所述逻辑块对接收的输入信号输出响应。
可选地,所述运行控制端与锁存信号端连接;
所述禁止响应信号为所述锁存指示信号,所述允许响应信号为所述解除锁存信号。
可选地,所述控制模块包括或门,其中:
所述或门的第一输入端与所述锁存信号端连接,所述或门的第二输入端与所述运行状态端连接,所述或门的输出端与所述输出控制端连接。
可选地,所述控制模块包括或门、非门,其中:
所述非门的输入端与所述运行状态端连接;
所述或门的第一输入端与所述锁存信号端连接,所述或门的第二输入端与所述非门的输出端连接,所述或门的输出端与所述输出控制端连接。
可选地,所述锁存模块包括锁存器,其中:
所述锁存器的锁存输入端与所述锁存模块的输入端连接;
所述锁存器的锁存输出端与所述锁存模块的输出端连接;
所述锁存器的锁存控制端与所述锁存模块的使能端连接;
所述锁存器的反馈输入端与所述锁存模块的输出端连接;
所述锁存器用于在接收所述使能端接收的有效使能信号后,通过所述反馈输入端反馈接收所述输出端输出的输出电平并锁存,并通过所述锁存输出端输出锁存的输出电平;及在所述使能端接收的无效使能信号后,解除输出电平的锁存状态并通过所述锁存输出端输出所述锁存输入端接收的输出电平。
可选地,所述锁存模块还包括第一滤波子模块,其中:
所述锁存输出端与所述第一滤波子模块的输入端连接,所述第一滤波子模块的输出端与所述输出端连接;所述第一滤波子模块用于控制所述锁存输出端至所述输出端单向导通;
和/或,所述锁存模块还包括第二滤波子模块,其中:
所述第二滤波子模块的输入端与所述输出端连接,所述第二滤波子模块的输出端与所述反馈端连接;所述第二滤波子模块用于控制所述输出端至所述反馈端单向导通。
本发明有益效果如下:
本发明实施例提供的固件升级方法、电子设备、存储介质及信号锁存电路,通过对升级的固件锁存输出电平,对其它未升级的固件继续实现业务功能,降低了升级操作对ASIC的业务功能的影响,并且能够防止在固件升级时由于复位操作导致输出与业务无关的错误的信号扰乱其它固件的工作,解决了固件冷升级完成后需下电重启设备而导致正常运行的业务中断乃至数据丢失的这一局限性问题,从而实现了ASIC的热升级,有效保障了业务进行的持续性,提高了固件升级的便利性。
附图说明
图1为本发明实施例提供的固件升级方法的流程图之一;
图2为本发明实施例提供的固件升级方法的流程图之二;
图3为图1或图2所示的流程图中部分步骤的流程图之一;
图4为图1或图2所示的流程图中部分步骤的流程图之二;
图5为本发明实施例提供的电子设备的结构示意图;
图6为本发明实施例提供的信号锁存电路与固件其它结构的连接关系示意图;
图7为本发明实施例提供的信号锁存电路的电路图之一;
图8为本发明实施例提供的信号锁存电路的电路图之二;
图9为本发明实施例提供的信号锁存电路的电路图之三;
图10为本发明实施例提供的信号锁存电路的电路图之四;
图11为本发明实施例提供的信号锁存电路的电路图之五;
图12为本发明实施例提供的信号锁存电路的电路图之六;
图13为图12示意的信号锁存电路的时序图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面将结合附图和实施例对本发明做进一步说明。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。本发明中所描述的表达位置与方向的词,均是以附图为例进行的说明,但根据需要也可以做出改变,所做改变均包含在本发明保护范围内。本发明的附图仅用于示意相对位置关系不代表真实比例。
需要说明的是,在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
下面结合附图,对本发明实施例提供的固件升级方法、电子设备、存储介质及信号锁存电路进行具体说明。
第一方面,本发明实施例提供了一种ASIC的固件升级方法,应用于上位机,如图1所示,包括:
S100、确定ASIC需要升级的固件。
S200、从需要升级的固件中不重复地选择一个固件。
在具体实施过程中,所述步骤S200中可以对固件按照顺序进行选择(例如固件的编号顺序等),也可以为随机选择,在此不作限定。
若所有需要升级的固件均完成升级,则结束升级步骤;否则执行所述步骤S300。
S300、对所述固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平。
在对所述固件升级完成后,S311、控制所述信号锁存电路解除输出电平的锁存状态。
之后返回所述步骤S200。
这样,通过对升级的固件锁存输出电平,对其它未升级的固件继续实现业务功能,降低了升级操作对ASIC的业务功能的影响,并且能够防止在固件升级时由于复位操作导致输出与业务无关的错误的信号扰乱其它固件的工作,解决了固件冷升级完成后需下电重启设备而导致正常运行的业务中断乃至数据丢失的这一局限性问题,从而实现了ASIC的热升级,有效保障了业务进行的持续性,提高了固件升级的便利性。
在具体实施过程中,可以仅对需要升级的固件进行升级;也可以链路为单位,对需要升级的固件所在的链路整体进行升级。那么进一步可选地,如图2所示,所述步骤S100、确定ASIC需要升级的固件,具体为:
S110、确定ASIC需要升级的固件及需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件。
在具体实施过程中,所述ASIC可以包括多片的CPLD和/或FPGA。所述上位机的中央处理器(Central Processing Unit,CPU)是通过总线与ASIC的固件相连的。CPU要升级哪片固件则会选通相应的通路。而硬件设计上并不都是一片固件只对应一个CPU的片选引脚,可能是多片固件都使用同一引脚,或者多片固件会统一汇总连接到特定器件上再与CPU相连。这样,与上位机各升级引脚进行连接的所有固件组成需要升级的多条链路。最终与上位机的CPU的同一升级引脚连接的固件属于同一链路的固件。对于任意一个固件,其对应的需要升级的链路为与该固件及对应升级引脚连接的链路。
在进行对需要升级的链路进行升级时,可以根据上位机中指定的升级文件夹中的升级数据直接确定对应链路需要升级;也可以首先确定需要升级的固件,再将需要升级的固件所对应的链路确定为需要升级的链路。在确定了需要升级的链路之后,可以将需要升级的链路下的所有固件均视为需要升级的固件;也可以仍只将有实质内容更新的固件确定为需要升级的固件,将需要升级的链路下没有实质内容更新的固件跳过其升级步骤。
相应地,所述步骤S200、从需要升级的固件中不重复地选择一个固件,包括:
S210、从需要升级的链路中不重复地选择一条链路。
若所有需要升级的链路均完成升级,则结束升级步骤;否则执行步骤S220。
S220、从选择的链路中不重复地选择一个需要升级的固件。
若所述链路的所有需要升级的固件均完成升级,则返回所述步骤S210;否则执行步骤S300。
相应地,如图2所示,执行完成所述步骤S311后返回所述步骤S220。
在具体实施过程中,所述步骤S210、所述步骤S220中可以对链路或固件按照顺序进行选择(例如固件或链路的编号顺序等),也可以为随机选择,在此不作限定。
现有固件升级方式对于涉及多片CPLD与多片FPGA的场景时,由于不同固件存在与上位机的CPU的连接总线(PCIe、I2C、LPC等)差异、使能与片选访问方式(通过GPIO或逻辑器件)差异、使能与片选选通电平(设置I/O电平的高低、设计逻辑器件寄存器高低)差异等因素影响,目前对于CPLD和FPGA固件升级的前置动作多为人工手动操作,而后才能进行固件升级操作,最后再人工手动进行固件升级的相反后置动作将所有状态恢复至升级前的状态,操作较为繁琐,进行固件升级的效率较低。而本实施例通过将ASIC的固件按照链路进行划分,以链路为单位进行升级,从而能够根据链路的配置对相同链路的固件进行升级时执行相同的升级操作,提高了升级的效率。
可选地,如图3和图4所示,所述步骤S300、对所述固件进行升级之前,还包括:
S301、将升级数据写入需要升级的固件对应的所述ASIC的ROM。
在具体实施过程中,所述固件对应的ROM可以为外挂在所述ASIC中的ROM。所述ROM可以为FLASH存储器等。在此不作限定。
在具体实施过程中,所述步骤S301可以在每选择一个固件进行升级时执行一次,将所述固件的升级数据写入对应的所述ASIC的ROM;也可以在整个升级过程中仅执行一次,直接对所有需要升级的固件将各自对应的升级数据写入对应的所述ASIC的ROM;还可以在采用以链路为单位进行升级的方案中,在每选择一个链路进行升级时执行一次,将所述链路中所有需要升级的固件的升级数据分别写入对应的所述ASIC的ROM;也可以为其它执行方法,在此不作限定。
S302、停止应用层访问选择的固件。
完成对选择的所述固件的升级前的准备工作后,所述步骤S300、对所述固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
S303、保存所述固件的寄存器值。
S305、控制所述固件的信号锁存电路锁存所述固件的输出电平。
S306、对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的RAM。
在具体实施过程中,对于CPLD和FPGA而言,所述RAM可以为SRAM。
S310、将保存的所述固件的寄存器值写入所述固件。
至此,所述固件完成了数据的升级并恢复了升级前的工作状态。
在所述步骤S311、控制所述信号锁存电路解除输出电平的锁存状态之后,为了恢复所述固件的正常工作,所述方法还包括:
S312、恢复应用层访问所述固件。
相应地,在图3和图4中完成执行所述步骤S312后返回所述步骤S200(如果采用图2示意的实施方式,图3和图4中示意的步骤S200具体为S220)。
这样,通过在对固件升级的过程中保存寄存器值,待升级完成后将寄存器值写回所述固件,并在升级过程中锁存输出电平,待寄存器值完成写回后解除锁存,可以使所述固件升级后的工作状态与升级前一致,从而能够避免固件升级后丢失升级前的工作,同时防止复位时固件的输出接口的输出信号跳动,保证ASIC能够热升级。
可选地,如图4所示,所述步骤S310、将保存的所述固件的寄存器值写入所述固件之前,还包括:
S308、判断是否检测到复位完成标志位。
在固件升级的过程中,固件在将升级数据从ROM中加载至固件的RAM时,会将表示固件运行状态的相关标志位的值置为表示复位状态的值或者默认缺省值,在完成所述固件的所有升级数据从ROM中加载至RAM时,会将表示固件运行状态的相关标志位的值置复位完成标志位的值,表示结束复位操作。上位机可以根据是否检测到复位完成标志位来确定固件是否完成了复位的所有操作。
若所述步骤S308的结果为是,执行所述步骤S309;若所述步骤S308的结果为否,继续等待直至结果为是。
S309、根据读写所述固件的测试寄存器的结果,判断所述固件读写功能是否正常。
若所述步骤S309的结果为是,执行所述步骤S310;若所述步骤S309的结果为否,继续等待直至结果为是。
这样,能够确保寄存器值能够在固件完成复位后正确地回写至所述固件中,避免数据丢失。
可选地,如图4所示,所述步骤S305、控制所述固件的信号锁存电路锁存所述固件的输出电平之前,还包括:
S304、确定所述固件的信号锁存电路能够正常锁存电平。
若所述步骤S304结果为是,执行所述步骤S305;若所述步骤S304结果为否,执行所述步骤S312。
在具体实施过程中,可以通过向所述固件的信号锁存电路发送锁存指示信号和解除锁存信号进行信号锁存测试,由固件将是否成功锁存的结果反馈给上位机。
可选地,如图4所示,所述步骤S306、对所述固件进行复位操作之后,还包括:
S307、判断所述固件能否正常复位。
若所述步骤S307的结果为是,执行所述步骤S308;若所述步骤S307的结果为否,执行所述步骤S311。
在具体实施过程中,可以通过固件向所述上位机反馈的运行状态信号和升级状态信号判断所述固件能否正常复位。
第二方面,基于同一发明构思,本发明实施例还提供了一种电子设备,如图5所示,包括:与ASIC连接的处理器110和用于存储所述处理器110可执行指令的存储器120;
其中,所述处理器110被配置为执行所述指令,以实现如下步骤:
从所述ASIC需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态;
在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级。
在具体实施过程中,所述设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器110和存储器120,一个或一个以上存储应用程序131或数据132的存储器120。其中,存储器120和存储介质130可以是短暂存储或持久存储。存储在存储器120的应用程序131可以包括一系列指令操作。存储器120中还可以包括一个或一个以上操作系统133,例如Windows、Mac OS、Linux、I/OS、Android、Unix、FreeBSD等。更进一步地,处理器110可以设置为与存储介质130通信,在所述设备上执行存储介质130中的一系列指令操作。所述设备还可以包括一个或一个以上电源(图5中未示出);一个或一个以上网络接口140,所述网络接口140包括有线网络接口141和/或无线网络接口142,一个或一个以上输入输出接口143。所述处理器110通过所述输入输出接口143与ASIC连接。
可选地,所述处理器110被配置为执行所述指令实现所述从需要升级的固件中选择一个固件进行升级,具体包括:
确定需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件;
从所述ASIC需要升级的链路中选择一条链路;
从选择的链路中选择一个需要升级的固件进行升级;
所述在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级,具体包括:
在完成所述固件的升级后继续从所述链路中选择未升级的固件进行升级,直至所述链路的所有需要升级的固件完成升级;以及
在完成所述链路的升级后继续从需要升级的链路中选择未升级的链路进行升级,直至所有需要升级的链路完成升级。
可选地,所述处理器110被配置为执行所述指令实现从需要升级的固件中选择一个固件后,对所述固件进行升级前还包括:
将升级数据写入需要升级的固件对应的所述ASIC的只读存储器ROM;
停止应用层访问选择的固件;
所述处理器被配置为执行所述指令实现对所述选择的固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
保存所述固件的寄存器值,之后控制所述固件的信号锁存电路锁存所述固件的输出电平;
对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的随机存取存储器RAM;
将保存的所述固件的寄存器值写入所述固件;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
将保存的所述固件的寄存器值写入所述固件后,控制所述信号锁存电路解除输出电平的锁存状态;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后,还包括:
恢复应用层访问所述固件。
可选地,所述处理器110被配置为执行所述指令实现将保存的所述固件的寄存器值写入所述固件之前,还用于:
检测到复位完成标志位,并根据读写所述固件的测试寄存器的结果,确定所述固件读写功能正常。
可选地,所述处理器110被配置为执行所述指令实现在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
在对所述固件升级开始后向所述信号锁存电路的锁存信号端发送锁存指示信号,使所述信号锁存电路根据所述锁存指示信号,和所述信号锁存电路的运行状态端接收的升级状态信号,锁存所述固件的输出电平;
所述处理器110被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
在对所述固件升级完成后向所述信号锁存电路的锁存信号端发送解除锁存信号,使所述信号锁存电路根据所述解除锁存信号,和所述信号锁存电路的运行状态端接收的运行状态信号,解除输出电平的锁存状态。
由于所述电子设备是所述固件升级方法在实施过程中所使用的硬件设备,且所述电子设备的工作原理与所述固件升级方法基本一致,故可以参见上文所述固件升级方法的具体实施方式进行对应实施,此处不再赘述。
第三方面,基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现所述的固件升级方法。
由于所述计算机可读存储介质是承载所述固件升级方法的载体,且所述计算机可读存储介质的工作原理与所述固件升级方法基本一致,故可以参见上文所述固件升级方法的具体实施方式进行对应实施,此处不再赘述。
第四方面,基于同一发明构思,如图6所示,本发明实施例还提供了一种信号锁存电路U2,包括锁存模块M1、控制模块M2,其中:
所述控制模块M2用于根据接收到的上位机的锁存指示信号控制所述锁存模块M1锁存固件的输出电平,根据接收到的所述上位机的解除锁存信号控制所述锁存模块M1解除输出电平的锁存状态;
所述锁存模块M1,用于在所述控制模块M2的控制下锁存所述固件的输出电平或解除输出电平的锁存状态;
其中,所述锁存指示信号是所述上位机对ASIC中需要升级的所述固件进行升级开始后发送的;所述解除锁存信号是所述上位机对所述固件进行升级完成后发送的。
在具体实施过程中,所述信号锁存电路U2与固件U0的用户逻辑设计的逻辑块U3、输入输出I/O块U1连接。在所述控制模块M2根据接收到的所述上位机的解除锁存信号控制所述锁存模块M1解除输出电平的锁存状态后,所述逻辑块U3的输出电平将直接经由所述信号锁存电路U2发送至所述I/O块U1中,由所述I/O块U1根据其I/O控制电路将所述输出电平进行输出。在所述控制模块M2根据接收到的上位机的锁存指示信号控制所述锁存模块M1锁存固件的输出电平后,所述信号锁存电路U2将锁存的输出电平发送至所述I/O块U1中,由所述I/O块U1根据其I/O控制电路将所述输出电平进行输出,而此时所述逻辑块U3的输出电平将无法输出至所述I/O块U1中。
这样,通过在所述固件的升级过程中将所述固件的输出电平进行锁存,避免升级复位过程中的输出电平跳动导致ASIC的工作异常,同时保持升级前的输出状态,避免工作丢失。
可选地,如图7至图12所示,所述控制模块M2包括锁存信号端P1、运行状态端P2和输出控制端P3;其中所述控制模块M2的输出控制端P3与所述锁存模块M1连接(图7-至图12中以输出控制端P3与所述锁存模块M1的使能端P4连接示意);
所述控制模块M2具体用于:
通过所述锁存信号端P1接收所述上位机发送的锁存指示信号或解除锁存信号;以及通过运行状态端P2用于接收固件的运行状态信号或升级状态信号;并在接收所述锁存指示信号和升级状态信号后,通过所述输出控制端P3向所述锁存模块M1发送有效使能信号,使所述锁存模块M1锁存输出电平;在接收所述解除锁存指示信号和所述运行状态信号后,通过所述输出控制端P3向所述锁存模块M1发送无效使能信号,使所述锁存模块M1解除所述输出电平的锁存状态。
可选地,如图7和图8所示,所述锁存模块M1包括使能端P4、输入端P5、输出端P6和反馈端P7;其中所述使能端P4与所述控制模块M2连接(图7至图12中以输出控制端P3与所述使能端P4连接示意),所述输入端P5与所述固件中对应逻辑块U3的输出端连接(图中未示出),所述输出端P6与所述固件的输入输出I/O块U1连接(图中未示出),所述反馈端P7与所述逻辑块U3的校验端连接(图中未示出);
所述锁存模块M1具体用于:
通过所述输入端P5接收所述逻辑块U3的输出电平;在通过所述使能端P4接收所述控制模块M2输出的有效使能信号后,锁存所述输出电平并通过所述输出端P6向所述输入输出I/O块U1输出锁存的所述输出电平,以及在通过所述使能端P4接收所述控制模块M2输出的无效使能信号后,解除输出电平的锁存状态并将所述输入端P5接收的输出电平通过所述输出端P6向所述输入输出I/O块U1输出;通过所述反馈端P7向所述逻辑块U3反馈所述输出端P6输出的输出电平。
可选地,所述控制模块M2还用于在接收所述锁存指示信号后控制连接的所述固件的逻辑块U3不对接收的输入信号输出响应,在接收所述解除锁存信号后控制所述逻辑块U3对其接收的输入信号输出响应。
这样,能够防止所述固件未完成升级时输出错误的响应。
如图8至图12所示,所述控制模块M2还包括运行控制端P8,所述运行控制端P8与所述逻辑块U3的响应控制端连接(图中未示出);
所述控制模块M2还用于在接收所述锁存指示信号后通过所述运行控制端P8输出禁止响应信号,使所述逻辑块U3不对接收的输入信号输出响应;在接收所述解除锁存信号后通过所述运行控制端P8输出允许响应信号,使所述逻辑块U3对接收的输入信号输出响应。
可选地,如图9至图12所示,所述运行控制端P8与所述锁存信号端P1连接;
所述禁止响应信号为所述锁存指示信号,所述允许响应信号为所述解除锁存信号。
这样,所述信号锁存电路的结构较为简单,易于实施。
作为一种可选的实施方式,如图9所示,所述控制模块M2包括或门D1,其中:
所述或门的第一输入端与所述锁存信号端P1连接,所述或门的第二输入端与所述运行状态端P2连接,所述或门的输出端与所述输出控制端P3连接。
相应地,所述锁存指示信号为低电平信号,所述解除锁存信号为高电平信号,所述升级状态信号为低电平信号,所述运行状态信号为高电平信号。
作为另一种可选的实施方式,如图10至图12所示,所述控制模块M2包括或门D1、非门D2,其中:
所述非门D2的输入端与所述运行状态端P2连接;
所述或门D1的第一输入端与所述锁存信号端P1连接,所述或门D2的第二输入端与所述非门D2的输出端连接,所述或门D1的输出端与所述输出控制端P3连接。
相应地,所述锁存指示信号为低电平信号,所述解除锁存信号为高电平信号,所述升级状态信号为高电平信号,所述运行状态信号为低电平信号。
这样,能够使所述信号锁存电路同时在所述锁存信号端P1接收到所述锁存指示信号和所述运行状态端P2接收到所述升级状态信号后才会锁存输出电平,在其它情况下不会锁存输出电平,保证所述固件的正常运行。
可选地,如图9至图12所示,所述锁存模块M1包括锁存器S,其中:
所述锁存器S的锁存输入端1与所述锁存模块M1的输入端P5连接;
所述锁存器S的锁存输出端SP与所述锁存模块M1的输出端P6连接;
所述锁存器S的锁存控制端SI与所述锁存模块M1的使能端P4连接;
所述锁存器S的反馈输入端0与所述锁存模块M1的输出端P6连接;
所述锁存器S用于在接收所述使能端P4接收的有效使能信号后,通过所述反馈输入端0反馈接收所述输出端P6输出的输出电平并锁存,并通过所述锁存输出端SP输出锁存的输出电平;及在所述使能端P4接收的无效使能信号后,解除输出电平的锁存状态并通过所述锁存输出端SP输出所述锁存输入端1接收的输出电平。
可选地,如图11和图12所示,所述锁存模块M1还包括第一滤波子模块M11,其中:
所述锁存输出端SP与所述第一滤波子模块M11的输入端连接,所述第一滤波子模块M11的输出端与所述输出端P6连接;所述第一滤波子模块M11用于控制所述锁存输出端SP至所述输出端P 6单向导通;
和/或,所述锁存模块M1还包括第二滤波子模块M12,其中:
所述第二滤波子模块M12的输入端与所述输出端P6连接,所述第二滤波子模块M12的输出端与所述反馈端P7连接;所述第二滤波子模块M12用于控制所述输出端P6至所述反馈端P7单向导通。
在具体实施过程中,可选地,如图12所示,所述第一滤波子模块M11和所述第二滤波子模块M12为二极管。所述二极管的阳极为所述第一滤波子模块M11或所述第二滤波子模块M12的输入端,所述二极管的阴极为所述第一滤波子模块M11或所述第二滤波子模块M12的输出端。
这样,能够防止反向电流输入所述锁存器的锁存输出端和所述逻辑块的校验端,避免损坏电路。
下面以图12所示的信号锁存电路为例,结合第一方面如图3所示的所述的固件升级方法的部分步骤对所述信号锁存电路的工作原理进行说明。
如图13所示,在所述步骤S301至所述步骤S303,所述锁存信号端P1接收所述上位机发送的解除锁存信号(高电平),所述运行状态端P2接收所述固件的运行状态信号(低电平)。此时或门D1通过所述输出控制端P3向所述锁存器S的锁存控制端SI输出无效使能信号(高电平)。此时所述锁存器S将所述输入端P5接收的对应的逻辑块U3的输出电平直接输出至所述输出端P6,之后再经过输入输出I/O块U1输出所述输出电平。
在所述步骤S305,首先所述运行状态端P2接收所述固件的升级状态信号(高电平)。此时所述或门D1仍然通过所述输出控制端P3向所述锁存器S的锁存控制端SI输出无效使能信号(高电平),所述锁存器S将所述输入端P5接收的所述逻辑块U3的输出电平直接输出至所述输出端P6,之后再经过输入输出I/O块U1输出所述输出电平。之后所述锁存信号端P1接收所述上位机发送的锁存指示信号(低电平)。那么所述或门D1通过所述输出控制端P3向所述锁存器S的锁存控制端SI输出有效使能信号(低电平),所述锁存器S将接收到所述有效使能信号瞬间的所述输出端P6的输出电平通过所述反馈输入端0锁存,并将所述锁存的锁存输出端SP的电位保持在锁存的输出电平。所述输出端P6保持锁存的输出电平,之后再经过输入输出I/O块U1输出所述锁存的输出电平。所述锁存器S进行输出电平的锁存。
在所述步骤S306、S310,所述输出端P6保持锁存的输出电平,之后再经过输入输出I/O块U1输出所述锁存的输出电平。
在所述步骤S311,首先所述运行状态端P2接收所述固件的运行状态信号(低电平),之后所述锁存信号端P1接收所述上位机发送的解除锁存信号(高电平)。此时或门D1通过所述输出控制端P3向所述锁存器S的锁存控制端SI输出无效使能信号(高电平)。所述锁存器S将所述输入端P5接收的所述逻辑块U3的输出电平直接输出至所述输出端P6,之后再经过输入输出I/O块U1输出所述输出电平。所述锁存器S完成解除输出电平的锁存状态。
在所述步骤S312,所述锁存器S将所述输入端P5接收的所述逻辑块U3的输出电平直接输出至所述输出端P6,之后再经过输入输出I/O块U1输出所述的输出电平。
这样,就完成了对所述信号锁存电路对应的固件的所有升级操作。
本发明实施例提供的固件升级方法、电子设备、存储介质及信号锁存电路,通过对升级的固件锁存输出电平,对其它未升级的固件继续实现业务功能,降低了升级操作对ASIC的业务功能的影响,并且能够防止在固件升级时由于复位操作导致输出与业务无关的错误的信号扰乱其它固件的工作,解决了固件冷升级完成后需下电重启设备而导致正常运行的业务中断乃至数据丢失的这一局限性问题,从而实现了ASIC的热升级,有效保障了业务进行的持续性,提高了固件升级的便利性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种专用集成电路ASIC的固件升级方法,应用于上位机,其特征在于,包括:
从ASIC需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后通过向所述固件的信号锁存电路的控制模块发送锁存指示信号以控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后通过向所述固件的信号锁存电路的控制模块发送解除锁存信号以控制所述固件中的信号锁存电路解除输出电平的锁存状态;
在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级;
其中,所述信号锁存电路包括锁存模块、控制模块;
所述控制模块用于根据接收到的上位机的锁存指示信号控制所述锁存模块锁存固件的输出电平,根据接收到的所述上位机的解除锁存信号控制所述锁存模块解除输出电平的锁存状态;
所述锁存模块包括使能端、输入端、输出端和反馈端;其中所述使能端与所述控制模块连接,所述输入端与所述固件中对应逻辑块的输出端连接,所述输出端与所述固件的输入输出I/O块连接,所述反馈端与所述逻辑块的校验端连接;用于通过所述输入端接收所述逻辑块的输出电平;在通过所述使能端接收所述控制模块输出的有效使能信号后,锁存所述输出电平并通过所述输出端向所述输入输出I/O块输出锁存的所述输出电平,以及在通过所述使能端接收所述控制模块输出的无效使能信号后,解除输出电平的锁存状态并将所述输入端接收的输出电平通过所述输出端向所述输入输出I/O块输出;通过所述反馈端向所述逻辑块反馈所述输出端输出的输出电平。
2.如权利要求1所述的固件升级方法,其特征在于,所述从需要升级的固件中选择一个固件进行升级,包括:
确定需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件;
从所述ASIC需要升级的链路中选择一条链路;
从选择的链路中选择一个需要升级的固件进行升级;
所述在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级,包括:
在完成所述固件的升级后继续从所述链路中选择未升级的固件进行升级,直至所述链路的所有需要升级的固件完成升级;以及
在完成所述链路的升级后继续从需要升级的链路中选择未升级的链路进行升级,直至所有需要升级的链路完成升级。
3.如权利要求1所述的固件升级方法,其特征在于,所述从需要升级的固件中选择一个固件后,对所述固件进行升级前还包括:
将升级数据写入需要升级的固件对应的所述ASIC的只读存储器ROM;
停止应用层访问选择的固件;
对所述选择的固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,包括:
保存所述固件的寄存器值,之后控制所述固件的信号锁存电路锁存所述固件的输出电平;
对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的随机存取存储器RAM;
将保存的所述固件的寄存器值写入所述固件;
所述在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,包括:
将保存的所述固件的寄存器值写入所述固件后,控制所述信号锁存电路解除输出电平的锁存状态;
在对所述固件升级完成后,还包括:
恢复应用层访问所述固件。
4.如权利要求3所述的固件升级方法,其特征在于,将保存的所述固件的寄存器值写入所述固件之前,还包括:
检测到复位完成标志位,并根据读写所述固件的测试寄存器的结果,确定所述固件读写功能正常。
5.一种电子设备,其特征在于,包括:与ASIC连接的处理器和用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如下步骤:
从所述ASIC需要升级的固件中选择一个固件进行升级,并在对所述固件升级开始后通过向所述固件的信号锁存电路的控制模块发送锁存指示信号以控制所述固件中的信号锁存电路锁存所述固件的输出电平,在对所述固件升级完成后通过向所述固件的信号锁存电路的控制模块发送解除锁存信号以控制所述固件中的信号锁存电路解除输出电平的锁存状态;
在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级;
其中,所述信号锁存电路包括锁存模块、控制模块;
所述控制模块用于根据接收到的上位机的锁存指示信号控制所述锁存模块锁存固件的输出电平,根据接收到的所述上位机的解除锁存信号控制所述锁存模块解除输出电平的锁存状态;
所述锁存模块包括使能端、输入端、输出端和反馈端;其中所述使能端与所述控制模块连接,所述输入端与所述固件中对应逻辑块的输出端连接,所述输出端与所述固件的输入输出I/O块连接,所述反馈端与所述逻辑块的校验端连接;用于通过所述输入端接收所述逻辑块的输出电平;在通过所述使能端接收所述控制模块输出的有效使能信号后,锁存所述输出电平并通过所述输出端向所述输入输出I/O块输出锁存的所述输出电平,以及在通过所述使能端接收所述控制模块输出的无效使能信号后,解除输出电平的锁存状态并将所述输入端接收的输出电平通过所述输出端向所述输入输出I/O块输出;通过所述反馈端向所述逻辑块反馈所述输出端输出的输出电平。
6.如权利要求5所述的电子设备,其特征在于,所述处理器被配置为执行所述指令实现所述从需要升级的固件中选择一个固件进行升级,具体包括:
确定需要升级的固件对应的需要升级的链路,所述需要升级的链路包括与上位机升级引脚连接的多个固件;
从所述ASIC需要升级的链路中选择一条链路;
从选择的链路中选择一个需要升级的固件进行升级;
所述在完成所述固件的升级后继续从需要升级的固件中选择未升级的固件进行升级,直至所有需要升级的固件完成升级,具体包括:
在完成所述固件的升级后继续从所述链路中选择未升级的固件进行升级,直至所述链路的所有需要升级的固件完成升级;以及
在完成所述链路的升级后继续从需要升级的链路中选择未升级的链路进行升级,直至所有需要升级的链路完成升级。
7.如权利要求5所述的电子设备,其特征在于,所述处理器被配置为执行所述指令实现从需要升级的固件中选择一个固件后,对所述固件进行升级前还包括:
将升级数据写入需要升级的固件对应的所述ASIC的只读存储器ROM;
停止应用层访问选择的固件;
所述处理器被配置为执行所述指令实现对所述选择的固件进行升级,并在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
保存所述固件的寄存器值,之后控制所述固件的信号锁存电路锁存所述固件的输出电平;
对所述固件进行复位操作,以将所述升级数据从所述固件对应的ROM中加载至所述固件的随机存取存储器RAM;
将保存的所述固件的寄存器值写入所述固件;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
将保存的所述固件的寄存器值写入所述固件后,控制所述信号锁存电路解除输出电平的锁存状态;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后,还包括:
恢复应用层访问所述固件。
8.如权利要求7所述的电子设备,其特征在于,所述处理器被配置为执行所述指令实现将保存的所述固件的寄存器值写入所述固件之前,还用于:
检测到复位完成标志位,并根据读写所述固件的测试寄存器的结果,确定所述固件读写功能正常。
9.如权利要求5所述的电子设备,其特征在于,所述处理器被配置为执行所述指令实现在对所述固件升级开始后控制所述固件中的信号锁存电路锁存所述固件的输出电平,具体包括:
在对所述固件升级开始后向所述信号锁存电路的锁存信号端发送锁存指示信号,使所述信号锁存电路根据所述锁存指示信号,和所述信号锁存电路的运行状态端接收的升级状态信号,锁存所述固件的输出电平;
所述处理器被配置为执行所述指令实现在对所述固件升级完成后控制所述固件中的信号锁存电路解除输出电平的锁存状态,具体包括:
在对所述固件升级完成后向所述信号锁存电路的锁存信号端发送解除锁存信号,使所述信号锁存电路根据所述解除锁存信号,和所述信号锁存电路的运行状态端接收的运行状态信号,解除输出电平的锁存状态。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被用于实现如权利要求1-4任一项所述的固件升级方法。
11.一种信号锁存电路,其特征在于,包括锁存模块、控制模块,其中:
所述控制模块用于根据接收到的上位机的锁存指示信号控制所述锁存模块锁存固件的输出电平,根据接收到的所述上位机的解除锁存信号控制所述锁存模块解除输出电平的锁存状态;
所述锁存模块包括使能端、输入端、输出端和反馈端;其中所述使能端与所述控制模块连接,所述输入端与所述固件中对应逻辑块的输出端连接,所述输出端与所述固件的输入输出I/O块连接,所述反馈端与所述逻辑块的校验端连接;用于通过所述输入端接收所述逻辑块的输出电平;在通过所述使能端接收所述控制模块输出的有效使能信号后,锁存所述输出电平并通过所述输出端向所述输入输出I/O块输出锁存的所述输出电平,以及在通过所述使能端接收所述控制模块输出的无效使能信号后,解除输出电平的锁存状态并将所述输入端接收的输出电平通过所述输出端向所述输入输出I/O块输出;通过所述反馈端向所述逻辑块反馈所述输出端输出的输出电平;
其中,所述锁存指示信号是所述上位机对ASIC中需要升级的所述固件进行升级开始后发送的;所述解除锁存信号是所述上位机对所述固件进行升级完成后发送的。
12.如权利要求11所述的信号锁存电路,其特征在于,所述控制模块包括锁存信号端、运行状态端和输出控制端;其中所述控制模块的输出控制端与所述锁存模块连接;
所述控制模块具体用于:
通过所述锁存信号端接收所述上位机发送的锁存指示信号或解除锁存信号;以及通过运行状态端接收固件的运行状态信号或升级状态信号;并在接收所述锁存指示信号和升级状态信号后,通过所述输出控制端向所述锁存模块发送有效使能信号,使所述锁存模块锁存输出电平;在接收所述解除锁存信号和所述运行状态信号后,通过所述输出控制端向所述锁存模块发送无效使能信号,使所述锁存模块解除所述输出电平的锁存状态。
13.如权利要求11或12所述的信号锁存电路,其特征在于,所述控制模块还用于在接收所述锁存指示信号后控制连接的所述固件的逻辑块不对接收的输入信号输出响应,在接收所述解除锁存信号后控制所述逻辑块对其接收的输入信号输出响应。
14.如权利要求13所述的信号锁存电路,其特征在于,所述控制模块还包括运行控制端,所述运行控制端与所述逻辑块的响应控制端连接;
所述控制模块还用于在接收所述锁存指示信号后通过所述运行控制端输出禁止响应信号,使所述逻辑块不对接收的输入信号输出响应;在接收所述解除锁存信号后通过所述运行控制端输出允许响应信号,使所述逻辑块对接收的输入信号输出响应。
15.如权利要求14所述的信号锁存电路,其特征在于,所述运行控制端与锁存信号端连接;
所述禁止响应信号为所述锁存指示信号,所述允许响应信号为所述解除锁存信号。
16.如权利要求12所述的信号锁存电路,其特征在于,所述控制模块包括或门,其中:
所述或门的第一输入端与所述锁存信号端连接,所述或门的第二输入端与所述运行状态端连接,所述或门的输出端与所述输出控制端连接。
17.如权利要求12所述的信号锁存电路,其特征在于,所述控制模块包括或门、非门,其中:
所述非门的输入端与所述运行状态端连接;
所述或门的第一输入端与所述锁存信号端连接,所述或门的第二输入端与所述非门的输出端连接,所述或门的输出端与所述输出控制端连接。
18.如权利要求11所述的信号锁存电路,其特征在于,所述锁存模块包括锁存器,其中:
所述锁存器的锁存输入端与所述锁存模块的输入端连接;
所述锁存器的锁存输出端与所述锁存模块的输出端连接;
所述锁存器的锁存控制端与所述锁存模块的使能端连接;
所述锁存器的反馈输入端与所述锁存模块的输出端连接;
所述锁存器用于在接收所述使能端接收的有效使能信号后,通过所述反馈输入端反馈接收所述输出端输出的输出电平并锁存,并通过所述锁存输出端输出锁存的输出电平;及在所述使能端接收的无效使能信号后,解除输出电平的锁存状态并通过所述锁存输出端输出所述锁存输入端接收的输出电平。
19.如权利要求18所述的信号锁存电路,其特征在于,
所述锁存模块还包括第一滤波子模块,其中:
所述锁存输出端与所述第一滤波子模块的输入端连接,所述第一滤波子模块的输出端与所述输出端连接;所述第一滤波子模块用于控制所述锁存输出端至所述输出端单向导通;
和/或,所述锁存模块还包括第二滤波子模块,其中:
所述第二滤波子模块的输入端与所述输出端连接,所述第二滤波子模块的输出端与所述反馈端连接;所述第二滤波子模块用于控制所述输出端至所述反馈端单向导通。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031578.XA CN113821240B (zh) | 2021-09-03 | 2021-09-03 | 固件升级方法、电子设备、存储介质及信号锁存电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031578.XA CN113821240B (zh) | 2021-09-03 | 2021-09-03 | 固件升级方法、电子设备、存储介质及信号锁存电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821240A CN113821240A (zh) | 2021-12-21 |
CN113821240B true CN113821240B (zh) | 2023-11-17 |
Family
ID=78914011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111031578.XA Active CN113821240B (zh) | 2021-09-03 | 2021-09-03 | 固件升级方法、电子设备、存储介质及信号锁存电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821240B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794173B (zh) * | 2023-01-09 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 固态硬盘的在线升级方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015051647A1 (zh) * | 2013-10-10 | 2015-04-16 | 中兴通讯股份有限公司 | 一种固件的升级方法和系统、上位机和光模块 |
CN105468387A (zh) * | 2014-09-03 | 2016-04-06 | 华为技术有限公司 | 升级处理方法、装置和系统 |
CN110109694A (zh) * | 2019-04-28 | 2019-08-09 | 新华三技术有限公司 | 器件管脚控制方法和可编程逻辑器件 |
CN110383239A (zh) * | 2018-04-28 | 2019-10-25 | 深圳市大疆创新科技有限公司 | 无人机和电池的固件升级器、固件升级方法 |
CN110442365A (zh) * | 2019-07-26 | 2019-11-12 | 锐捷网络股份有限公司 | 可编程逻辑器件的升级方法及装置 |
CN110647340A (zh) * | 2019-09-19 | 2020-01-03 | 锐捷网络股份有限公司 | 复杂可编程逻辑器件cpld的升级方法和cpld |
CN112394663A (zh) * | 2020-11-12 | 2021-02-23 | 深圳市泰比特科技有限公司 | 一种共享电单车中控接口线升级方法及装置 |
TWI726502B (zh) * | 2019-11-26 | 2021-05-01 | 神雲科技股份有限公司 | 更新韌體不需斷電的伺服器及主機板模組 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094876B (zh) * | 2014-05-20 | 2019-02-12 | 华为技术有限公司 | Cpld的升级处理方法、装置和系统 |
-
2021
- 2021-09-03 CN CN202111031578.XA patent/CN113821240B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015051647A1 (zh) * | 2013-10-10 | 2015-04-16 | 中兴通讯股份有限公司 | 一种固件的升级方法和系统、上位机和光模块 |
CN105468387A (zh) * | 2014-09-03 | 2016-04-06 | 华为技术有限公司 | 升级处理方法、装置和系统 |
CN110383239A (zh) * | 2018-04-28 | 2019-10-25 | 深圳市大疆创新科技有限公司 | 无人机和电池的固件升级器、固件升级方法 |
CN110109694A (zh) * | 2019-04-28 | 2019-08-09 | 新华三技术有限公司 | 器件管脚控制方法和可编程逻辑器件 |
CN110442365A (zh) * | 2019-07-26 | 2019-11-12 | 锐捷网络股份有限公司 | 可编程逻辑器件的升级方法及装置 |
CN110647340A (zh) * | 2019-09-19 | 2020-01-03 | 锐捷网络股份有限公司 | 复杂可编程逻辑器件cpld的升级方法和cpld |
TWI726502B (zh) * | 2019-11-26 | 2021-05-01 | 神雲科技股份有限公司 | 更新韌體不需斷電的伺服器及主機板模組 |
CN112394663A (zh) * | 2020-11-12 | 2021-02-23 | 深圳市泰比特科技有限公司 | 一种共享电单车中控接口线升级方法及装置 |
Non-Patent Citations (1)
Title |
---|
STM32在复杂系统中实现固件自动升级的方法;宋宇宁;;单片机与嵌入式系统应用(第11期);第22-26页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821240A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652410B1 (en) | Automated modification of configuration settings of an integrated circuit | |
US20070074201A1 (en) | Method and system for updating software and computer readable recording medium storing the method | |
WO2011029385A1 (zh) | 在线加载逻辑器件的方法、系统和处理器 | |
US20180101304A1 (en) | Configuration control system and configuration control method | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
US7363544B2 (en) | Program debug method and apparatus | |
CN113821240B (zh) | 固件升级方法、电子设备、存储介质及信号锁存电路 | |
CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
CN113434162A (zh) | 远程在线更新fpga多版本程序的方法 | |
CN113127264A (zh) | 数据存储装置修复方法 | |
US7984323B2 (en) | Apparatus, system, and method for providing a backup configuration image to a programmable hardware device | |
JP2005500604A6 (ja) | 移動端末機におけるモデムとメモリとの間のインターフェース装置及び方法 | |
CN115061713A (zh) | 升级电子设备的方法及装置 | |
US7302562B1 (en) | Transmitting configuration data to a target programmable device after updating an intermediate programmable device | |
CN103890713A (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
CN112148339A (zh) | 一种双核芯片及其程序更新方法 | |
US9934045B1 (en) | Embedded system boot from a storage device | |
CN108196868B (zh) | Bios升级方法和电子设备 | |
CN111124622A (zh) | 一种多线程访问临界资源的方法、存储介质及智能终端 | |
CN114461142B (zh) | 一种读写Flash数据的方法、系统、装置及介质 | |
US6535943B1 (en) | Information processing device enabling floating interrupt to be pending and a method executing an interrupt condition change instruction | |
CN111857882A (zh) | 可扩展的ssd开卡固件加载方法、装置、计算机设备及存储介质 | |
US5689635A (en) | Microprocessor memory test circuit and method | |
US11604655B2 (en) | Sync point mechanism between master and slave nodes | |
CN113741928B (zh) | 一种基于i2c的逻辑器件的固件升级方法及系统 |
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 |