CN116225490B - 存储器固件的升级方法、升级装置、电子设备及介质 - Google Patents
存储器固件的升级方法、升级装置、电子设备及介质 Download PDFInfo
- Publication number
- CN116225490B CN116225490B CN202310067066.1A CN202310067066A CN116225490B CN 116225490 B CN116225490 B CN 116225490B CN 202310067066 A CN202310067066 A CN 202310067066A CN 116225490 B CN116225490 B CN 116225490B
- Authority
- CN
- China
- Prior art keywords
- firmware
- target event
- memory
- cyclic redundancy
- redundancy check
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 39
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 55
- 238000005192 partition Methods 0.000 claims abstract description 41
- 230000001960 triggered effect Effects 0.000 claims abstract description 24
- 238000001514 detection method Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011532 electronic conductor Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000000758 substrate Substances 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
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储器固件的升级方法、升级装置、电子设备及介质,应用于计算机领域。该方法包括:运行第一固件;对目标事件进行检测;在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值;在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;在上述第二固件运行成功的情况下,确定上述第二固件升级成功;其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。
Description
技术领域
本发明涉及计算机领域,特别涉及存储器固件的升级方法、升级装置、电子设备及介质。
背景技术
在现有的固件升级方法中,常常通过校验升级固件的完整性以及设置相应的标志位来记录固件升级的状态,以防止断电、数据传输错误等造成固件升级过程异常的情况发生。
但是,如果仅以校验固件的完整性来判断固件是否升级成功,则会出现升级了一个程序异常的固件,还是会出现程序跑飞的情况。
发明内容
鉴于上述问题,本发明提供了适用于存储器固件的升级方法、升级装置、电子设备及介质。
本发明的第一个方面提供了适用于存储器固件的升级方法,包括:
运行第一固件;
对目标事件进行检测;
在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值;
在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;
在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;
在上述第二固件运行成功的情况下,确定上述第二固件升级成功;
其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。
根据本发明的实施例,上述目标事件表征预设的物理按钮被按下。
根据本发明的实施例,上述第二固件包括校验头和固件主体,上述校验头包括上述固件主体的长度信息和上述第二循环冗余校验值,上述校验头存储于上述第二分区的预设存储位置;
上述利用上述第一固件计算第二固件的第一循环冗余校验值,包括:
利用上述第一固件读取上述长度信息;
根据上述第二分区的起始位置信息、上述预设存储位置和上述长度信息,确定用于存储上述固件主体的目标存储位置;
根据上述目标存储位置,读取上述固件主体;
根据上述固件主体的内容,计算上述第一循环冗余校验值。
根据本发明的实施例,上述第二固件的校验头是在将上述第二固件存储至上述第二分区之前计算得到。
根据本发明的实施例,上述方法还包括:
在确定上述第一循环冗余校验值不等于上述第二循环冗余校验值的情况下,继续运行上述第一固件。
根据本发明的实施例,上述基于上述触发指令触发上述目标事件包括:
基于上述触发指令,重新运行第一固件,并在重新运行上述第一固件的同时,触发上述目标事件;
在检测到上述目标事件被触发的情况下,继续运行上述第一固件。
根据本发明的实施例,在检测到上述目标事件被触发的情况下,继续运行上述第一固件包括:
在检测到上述目标事件被触发的情况下,获取上述目标事件的触发时长;
在上述触发时长大于或者等于预设时长的情况下,清除上述第二固件,继续运行上述第一固件;
在上述触发时长小于上述预设时长的情况下,直接运行上述第一固件。
本发明的第二个方面提供了一种适用于储存器固件的升级装置,包括:
第一运行模块,适用于运行第一固件;
检测模块,适用于对目标事件进行检测;
计算模块,适用于在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值;
第二运行模块,适用于在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;
触发模块,适用于在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;
确定模块,适用于在上述第二固件运行成功的情况下,确定上述第二固件升级成功;
其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。
本发明的第三个方面提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的方法。
本发明的第四个方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
根据本发明的实施例,第一固件预先烧录在所述存储器的第一分区,将第二固件存储在存储器的第二分区,利用第一固件计算第二固件的第一循环冗余校验值,能够检验存储至第二分区的第二固件是否完整。
在确认第二固件完整但是仍然运行失败的情况下,通过生成触发指令,能够基于触发指令触发目标事件,进而控制存储器运行第一固件从而确保存储器中程序的正常运行,解决了第二固件完整但是自身程序不正确导致的存储器程序无法正常使用的问题。
附图说明
图1示出了根据本发明实施例提供的适用于存储器固件的升级方法的流程图。
图2示出了根据本发明实施例提供的一种第一固件和第二固件的存储位置示意图。
图3示出了根据本发明另一实施例提供的适用于存储器固件的升级方法的流程图。
图4示出了根据本发明再一实施例提供的适用于存储器固件的升级方法的流程图。
图5示出了根据本发明实施例提供的适用于实现存储器固件的升级方法的电子设备的方框图。
图6示出了根据本发明实施例提供的适用于实现存储器固件的升级方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本发明的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、发明和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本发明的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
在实现本发明的过程中发现,在一些特殊的应用场景下,例如客户二次开发,技术人员临时修改固件等等情况下,使得待升级固件的程序本身可能存在不正确的风险。因此,在待升级固件的程序本身有问题时,即使成功校验了该固件的完整性,程序依然不能正常运行,因此,需要针对这类情况进行处理,以保证程序的正常运行。
本发明的实施例提供了一种存储器固件的升级方法、升级装置、电子设备及介质,该方法包括:
运行第一固件;
对目标事件进行检测;
在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值;
在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;
在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;
在上述第二固件运行成功的情况下,确定上述第二固件升级成功;
其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。
在确认第二固件完整但是仍然运行失败的情况下,通过生成触发指令,能够基于触发指令触发目标事件,进而控制存储器运行第一固件从而确保存储器中程序的正常运行,解决了第二固件完整但是自身程序不正确导致的存储器程序无法正常使用的问题。
以下将通过图1~图4对本发明实施例的升级方法进行详细描述。
图1示出了根据本发明实施例提供的适用于存储器固件的升级方法的流程图。
如图1所示,适用于存储器固件的升级方法包括操作S110~操作S160。
在操作S110,运行第一固件。
在操作S120,对目标事件进行检测。
在操作S130,在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值。
在操作S140,在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件。
在操作S150,在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件。
在操作S160,在上述第二固件运行成功的情况下,确定上述第二固件升级成功。
其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。
根据本发明的实施例,以密码卡为例,该密码卡可以为PCIE密码卡,即密码卡正常使用时会通过PCIE与上位机相连,该存储器可以为设置在密码卡上的存储器,该存储器可以为闪存(即Flash存储器)。Flash在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash EEPROM Memory,是存储芯片的一种,通过特定的程序可以修改里面的数据。Flash存储器结合了只读存储器(ROM)和随机存储器(RAM)的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。除密码卡之外,该存储器还可以设置在其他类型的PCIE卡上。
根据本发明的实施例,固件可以是写入可擦写只读存储器或电可擦可编程只读存储器中的程序。固件可以担任着一个系统最基础最底层工作的软件。而在硬件设备中,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。固件是指设备内部保存的设备“驱动程序”。
根据本发明的实施例,常见使用场景中,第一固件和第二固件的用途和使用方式不同。第一固件是在芯片直接烧录好,是不能被任意修改的,第二固件可以由用户自行升级,即第二固件可以由用户进行自定义。这样,第一固件可以保证固件通常不会出错。
根据本发明的实施例,第一固件可以自存储器的第一地址开始烧录,第二固件可以自存储器的第二地址开始烧录,在存储器的第一固件的代码中以及第二固件的代码中定义一个全局变量,第一固件的代码或者第二固件的代码编译时,编译器会自动为全局变量分配一个地址,根据第一固件中的全局变量的地址和第二固件中全局变量的地址来判断密码卡此时存储器是在运行第一固件还是第二固件。具体而言,第一地址可以为存储器的0地址,第二地址可以为存储器的0xf0000地址,全局变量例如可以为const全局变量-update_flag_string,第一固件可以自存储器的0地址开始烧录,第二固件可以自存储器的0xf0000地址开始烧录。在存储器的固件代码中定义一个const全局变量-update_flag_string,固件代码编译时,编译器会自动为update_flag_string变量分配一个地址,第一固件中的update_flag_string变量的地址是小于0xf0000的,第二固件的中update_flag_string变量的地址是大于0xf000的,因此update_flag_string变量可以用于判断密码卡此时是在运行第一固件还是第二固件。
根据本发明的实施例,循环冗余校验(英语:Cyclic redundancy check,通称“CRC”)是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。数据传输或者存储之前将生成的数字(循环冗余校验值,CRC值)计算出来并且附加到数据后面,然后接收方通过利用循环冗余校验值进行检验,进而确定数据传输或者储存是否发生变化。
根据本发明的实施例,在操作S150中的触发指令可以是一个指示信号,这个指示信号可以通过信号灯或者警报器的形式展示,例如,在信号灯为红色或者警报器报警或表征第二固件运行失败的信号灯的状态为亮的情况下,可以表示第二固件运行失败。用户在根据信号灯或者警报器确定第二固件运行失败的情况下,可以触发目标事件。触发指令还可以是用于直接触发目标事件的指令。
根据本发明的实施例,目标事件表征预设的物理按钮被按下。
根据本发明的实施例,物理按钮可以为bypass按钮,密码卡上电的时候,会默认从存储器的0地址运行第一固件,第一固件中会将bypass按钮对应的GPIO配置成输入模式,GPIO是指存储器的输入输出引脚,bypass按钮为存储器的某一个GPIO引脚接上一个实体按键,将GPIO配置成输入模式,按下bypass按钮时会引起GPIO的电平变化,在GPIO电平为低的情况下表示bypass按钮没有按下,反之,在GPIO电平为高的情况下表示bypass按钮已经被按下,因此,因此存储器可以通过判断电平的高低感知bypass按钮是否被按下。当存储器判断则bypass按钮没有被按下,然后判断密码卡此时是否运行在第一固件,当第一固件正在运行时,对第二固件的CRC进行校验,检验成功的情况下,修改函数指针(PC指针)到第二固件的地址,即0xf0000地址,可实现跳转到第二固件。
根据本发明的实施例,上述第二固件包括校验头和固件主体,上述校验头包括上述固件主体的长度信息和上述第二循环冗余校验值,上述校验头存储于上述第二分区的预设存储位置。
上述利用上述第一固件计算第二固件的第一循环冗余校验值,包括:利用上述第一固件读取上述固件主体的长度信息;根据上述第二分区的起始位置信息、上述第二分区的预设存储位置和上述固件主体的长度信息,确定用于存储上述固件主体的目标存储位置;根据上述目标存储位置,读取上述固件主体;根据上述固件主体的内容,计算上述第一循环冗余校验值。
根据本发明的实施例,预设存储位置可以位于第二分区的头部、尾部或其他位置处。
根据本发明的实施例,在预设存储位置位于第二分区的头部时,目标存储位置的起始位置由第二分区的起始位置与预设存储位置的长度信息来确定;目标存储位置的终止位置由第二分区的起始位置、预设存储位置的长度以及固件主体的长度信息来确定。
根据本发明的实施例,在预设存储位置位于第二分区的尾部时,目标存储位置的起始位置由第二分区的起始位置确定;目标存储位置的终止位置由第二分区的起始位置与固件主体的长度信息确定。
根据本发明的实施例,在预设存储位置位于第二分区的中部时,目标存储位置的前部分内容由第二分区的起始位置和预设存储位置的起始位置的前一位置确定;目标存储位置的后部分内容由预设存储位置的终止位置的后一位置、第二固件的长度、预设存储位置的起始位置以及第二分区的起始位置确定。
图2示出了根据本发明实施例提供的一种第一固件和第二固件的存储位置示意图。
如图2所示,预设存储位置为第二分区的头部。第一固件自存储器的0地址开始烧录,第二固件自存储器的0xf0000地址开始烧录,其中第二固件2的头部有8byte的校验头,校验头由4byte长度信息和4byte CRC信息组成。对固件2进行CRC校验时,第一固件首先读取校验头中的第二固件的长度信息,根据第二固件的长度信息对存储器地址“0xf0000+0x8”至地址“0xf0000+0x8+第二固件的长度”中的相关内容进行CRC计算,计算出来的结果和校验头中存储的CRC信息进行比对,比对一致则认为CRC校验成功。
根据本发明的实施例,上述第二固件的校验头是在将上述第二固件存储至上述第二分区之前计算得到。
图3示出了根据本发明另一实施例提供的适用于存储器固件的升级方法的流程图。
如图3所示,在确定上述第一循环冗余校验值不等于上述第二循环冗余校验值的情况下,继续运行上述第一固件。
根据本发明的实施例,当确定上述第一循环冗余校验值不等于上述第二循环冗余校验值的情况下时,跳过执行第二固件而继续运行第一固件可以保证密码卡不会执行被篡改的固件,防止内部资源和状态被破解。
根据本发明的实施例,上述基于上述触发指令触发上述目标事件包括:
基于上述触发指令,重新运行第一固件,并在重新运行上述第一固件的同时,触发上述目标事件;在检测到上述目标事件被触发的情况下,继续运行上述第一固件。
根据本发明的实施例,触发指令还可以为重启指令,该重启指令用于重新运行第一固件。
图4示出了根据本发明再一实施例提供的适用于存储器固件的升级方法的流程图。
如图4所示,在检测到上述目标事件被触发的情况下,继续运行上述第一固件包括:在检测到上述目标事件被触发的情况下,获取上述目标事件的触发时长;在上述触发时长大于或者等于预设时长的情况下,清除上述第二固件,继续运行上述第一固件;在上述触发时长小于上述预设时长的情况下,直接运行上述第一固件。
根据本发明的实施例,该预设时长例如可以为10秒。上述步骤具体可以为,在检测到物理按钮被按下的时间大于或者等于10秒时,清除第二固件,并继续运行第一固件,在检测到物理按钮被按下的时间小于10秒时,直接继续运行第一固件。
图5示出了根据本发明实施例提供的适用于存储器固件的升级装置的方框图。
如图5所示,该升级装置500包括第一运行模块510、检测模块520、计算模块530、第二运行模块540、触发模块550和确定模块560。
第一运行模块510适用于运行第一固件。检测模块520适用于对目标事件进行检测。计算模块530适用于在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值。第二运行模块540适用于在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件。触发模块550适用于在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件。确定模块560适用于在上述第二固件运行成功的情况下,确定上述第二固件升级成功。
其中,所述第一固件预先烧录在所述存储器的第一分区,所述第二固件存储在所述存储器的第二分区。
根据本发明的实施例,上述第二运行模块540还适用于在确定上述第一循环冗余校验值不等于上述第二循环冗余校验值的情况下,继续运行上述第一固件。
根据本发明的实施例,上述装置还包括第三运行模块,适用于基于上述触发指令,重新运行第一固件。
根据本发明的实施例,上述装置还包括:获取模块、清除模块和第四运行模块。获取模块适用于在检测到上述目标事件被触发的情况下,获取上述目标事件的触发时长。清除模块适用于在上述触发时长大于或者等于预设时长的情况下,清除上述第二固件,继续运行上述第一固件。第四运行模块适用于在上述触发时长小于上述预设时长的情况下,直接运行上述第一固件。
第一运行模块510、检测模块520、计算模块530、第二运行模块540、触发模块550和确定模块560中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一运行模块510、检测模块520、计算模块530、第二运行模块540、触发模块550和确定模块560的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一运行模块510、检测模块520、计算模块530、第二运行模块540、触发模块550和确定模块560中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示出了根据本发明实施例提供的适用于实现存储器固件的升级方法的电子设备的方框图。
如图6所示,根据本发明实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分508加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,上述程序也可以存储在除ROM 602和RAM603以外的一个或多个存储器中。处理器601也可以通过执行存储在上述一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
根据本发明的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种适用于存储器固件的升级方法,其特征在于,包括:
运行第一固件;
对目标事件进行检测;
在检测到所述目标事件没有被触发的情况下,利用所述第一固件计算第二固件的第一循环冗余校验值,其中,所述第二固件包括预设的第二循环冗余校验值;
在确定所述第一循环冗余校验值等于所述第二循环冗余校验值的情况下,运行所述第二固件;
在所述第二固件运行失败的情况下,生成触发指令,以基于所述触发指令触发所述目标事件,所述触发所述目标事件适用于控制所述存储器运行所述第一固件;
在所述第二固件运行成功的情况下,确定所述第二固件升级成功;
其中,所述第一固件预先烧录在所述存储器的第一分区,所述第二固件存储在所述存储器的第二分区;
其中,所述目标事件表征预设的物理按钮被按下,所述物理按钮为bypass按钮,bypass按钮为与所述存储器的一个输入输出引脚连接的一个实体按键,将bypass按钮连接的输入输出引脚配置成输入模式,在输入输出引脚电平为高的情况下表示bypass按钮已经被按下;
所述基于所述触发指令触发所述目标事件包括:
基于所述触发指令,重新运行第一固件,其中,所述目标事件是在新运行所述第一固件的同时触发的;
在检测到所述目标事件被触发的情况下,继续运行所述第一固件;
在检测到所述目标事件被触发的情况下,继续运行所述第一固件包括:
在检测到所述目标事件被触发的情况下,获取所述目标事件的触发时长;
在所述触发时长大于或者等于预设时长的情况下,清除所述第二固件,继续运行所述第一固件;
在所述触发时长小于所述预设时长的情况下,直接运行所述第一固件。
2.根据权利要求1所述的方法,其特征在于,所述第二固件包括校验头和固件主体,所述校验头包括所述固件主体的长度信息和所述第二循环冗余校验值,所述校验头存储于所述第二分区的预设存储位置;
所述利用所述第一固件计算第二固件的第一循环冗余校验值,包括:
利用所述第一固件读取所述固件主体的长度信息;
根据所述第二分区的起始位置信息、所述第二分区的预设存储位置和所述固件主体的长度信息,确定用于存储所述固件主体的目标存储位置;
根据所述目标存储位置,读取所述固件主体;
根据所述固件主体的内容,计算所述第一循环冗余校验值。
3.根据权利要求1所述的方法,其特征在于,所述第二固件的校验头是在将所述第二固件存储至所述第二分区之前计算得到。
4.根据权利要求1所述的方法,其特征在于,还包括:
在确定所述第一循环冗余校验值不等于所述第二循环冗余校验值的情况下,继续运行所述第一固件。
5.一种适用于存储器固件的升级装置,其特征在于,包括:
第一运行模块,适用于运行第一固件;
检测模块,适用于对目标事件进行检测;
计算模块,适用于在检测到所述目标事件没有被触发的情况下,利用所述第一固件计算第二固件的第一循环冗余校验值,其中,所述第二固件包括预设的第二循环冗余校验值;
第二运行模块,适用于在确定所述第一循环冗余校验值等于所述第二循环冗余校验值的情况下,运行所述第二固件;
触发模块,适用于在所述第二固件运行失败的情况下,生成触发指令,以基于所述触发指令触发所述目标事件,所述触发所述目标事件适用于控制所述存储器运行所述第一固件;
确定模块,适用于在所述第二固件运行成功的情况下,确定所述第二固件升级成功;
第三运行模块,适用于基于上述触发指令,重新运行第一固件;其中,所述目标事件是在新运行所述第一固件的同时触发的;以及在检测到所述目标事件被触发的情况下,继续运行所述第一固件;
获取模块,适用于在检测到所述目标事件被触发的情况下,获取所述目标事件的触发时长;
清除模块,适用于在所述触发时长大于或者等于预设时长的情况下,清除所述第二固件,继续运行上述第一固件;
第四运行模块适用于在上述触发时长小于所述预设时长的情况下,直接运行所述第一固件;
其中,所述第一固件预先烧录在所述存储器的第一分区,所述第二固件存储在所述存储器的第二分区;
其中,所述目标事件表征预设的物理按钮被按下,所述物理按钮为bypass按钮,bypass按钮为与所述存储器的一个输入输出引脚连接的一个实体按键,将bypass按钮连接的输入输出引脚配置成输入模式,在输入输出引脚电平为高的情况下表示bypass按钮已经被按下。
6.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067066.1A CN116225490B (zh) | 2023-01-30 | 2023-01-30 | 存储器固件的升级方法、升级装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067066.1A CN116225490B (zh) | 2023-01-30 | 2023-01-30 | 存储器固件的升级方法、升级装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116225490A CN116225490A (zh) | 2023-06-06 |
CN116225490B true CN116225490B (zh) | 2023-12-22 |
Family
ID=86588532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310067066.1A Active CN116225490B (zh) | 2023-01-30 | 2023-01-30 | 存储器固件的升级方法、升级装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225490B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811436A (zh) * | 2011-06-03 | 2012-12-05 | 联想(北京)有限公司 | 一种固件更新方法及装置 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN109144532A (zh) * | 2017-06-13 | 2019-01-04 | 中兴通讯股份有限公司 | 升级方法及装置 |
CN109189451A (zh) * | 2018-10-25 | 2019-01-11 | 京信通信系统(中国)有限公司 | 一种固件升级方法及装置 |
CN110083374A (zh) * | 2019-03-25 | 2019-08-02 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
US10831419B1 (en) * | 2020-01-21 | 2020-11-10 | Kyocera Document Solutions Inc. | Firmware upgrade system for printing devices having a component |
CN112559419A (zh) * | 2020-12-21 | 2021-03-26 | 厦门市美亚柏科信息股份有限公司 | 一种pcie存储模块的固件升级保护方法、装置 |
CN113986296A (zh) * | 2021-11-03 | 2022-01-28 | 深圳Tcl新技术有限公司 | 一种固件升级方法、装置、电子设备和存储介质 |
US11281453B1 (en) * | 2021-01-06 | 2022-03-22 | Pensando Systems, Inc. | Methods and systems for a hitless rollback mechanism during software upgrade of a network appliance |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9886264B2 (en) * | 2014-12-09 | 2018-02-06 | Xiaomi Inc. | Method and device for upgrading firmware |
-
2023
- 2023-01-30 CN CN202310067066.1A patent/CN116225490B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102811436A (zh) * | 2011-06-03 | 2012-12-05 | 联想(北京)有限公司 | 一种固件更新方法及装置 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106951253A (zh) * | 2017-03-21 | 2017-07-14 | 广州慧睿思通信息科技有限公司 | 一种嵌入式固件在线升级方法 |
CN109144532A (zh) * | 2017-06-13 | 2019-01-04 | 中兴通讯股份有限公司 | 升级方法及装置 |
CN109189451A (zh) * | 2018-10-25 | 2019-01-11 | 京信通信系统(中国)有限公司 | 一种固件升级方法及装置 |
CN110083374A (zh) * | 2019-03-25 | 2019-08-02 | 深圳猛犸电动科技有限公司 | 一种升级回滚方法、系统及终端设备 |
US10831419B1 (en) * | 2020-01-21 | 2020-11-10 | Kyocera Document Solutions Inc. | Firmware upgrade system for printing devices having a component |
CN112559419A (zh) * | 2020-12-21 | 2021-03-26 | 厦门市美亚柏科信息股份有限公司 | 一种pcie存储模块的固件升级保护方法、装置 |
US11281453B1 (en) * | 2021-01-06 | 2022-03-22 | Pensando Systems, Inc. | Methods and systems for a hitless rollback mechanism during software upgrade of a network appliance |
CN113986296A (zh) * | 2021-11-03 | 2022-01-28 | 深圳Tcl新技术有限公司 | 一种固件升级方法、装置、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
基于RISC-V处理器的固件更新系统设计;郭俊 等;《计算机工程与应用》;第58卷(第04期);298-303 * |
基于并行打印接口数据采集和数据回写系统研制;李骐;《中国优秀硕士学位论文全文数据库 (工程科技Ⅱ辑)》;C033-159 * |
Also Published As
Publication number | Publication date |
---|---|
CN116225490A (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US20060064576A1 (en) | Boot systems and methods | |
US20130125244A1 (en) | Platform integrity verification system and information processing device | |
CN106020865A (zh) | 一种系统升级方法和装置 | |
JPH06242957A (ja) | プログラム実行制御装置 | |
CN110457907B (zh) | 一种固件程序检测方法和装置 | |
US7308547B2 (en) | Apparatus and method for control of write filter | |
US20140013428A1 (en) | Apparatus and method for managing operation of a mobile device | |
US9448888B2 (en) | Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank | |
US20030188146A1 (en) | Method of ordered execution of firmware modules in a pre-memory execution environment | |
CN111158945B (zh) | 内核故障处理方法、装置、网络安全设备和可读存储介质 | |
CN115408730A (zh) | 数据处理方法、芯片、电子设备及存储介质 | |
US8996866B2 (en) | Unobtrusive assurance of authentic user intent | |
US7590834B2 (en) | Method and apparatus for tracking boot history | |
CN111857882B (zh) | 可扩展的ssd开卡固件加载方法、装置、计算机设备及存储介质 | |
CN116225490B (zh) | 存储器固件的升级方法、升级装置、电子设备及介质 | |
CN116991487A (zh) | 基于数据压缩的可信平台控制系统及可信固件恢复方法 | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
CN109977669B (zh) | 病毒识别方法、装置和计算机设备 | |
CN114579971A (zh) | 一种安全控制模组的启动方法及相关装置 | |
CN112052112A (zh) | 基于NOR Flash存储的位翻转错误检测方法、装置及存储介质 | |
CN111190627A (zh) | 系统升级方法及装置 | |
CN111522686A (zh) | 一种非易失性数据的读写方法及装置 | |
US20240201890A1 (en) | Data processing method and apparatus | |
US11836048B2 (en) | Information processing apparatus |
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 |