存储器固件的升级方法、升级装置、电子设备及介质与流程

文档序号:34379364发布日期:2023-06-08 00:57阅读:30来源:国知局
存储器固件的升级方法、升级装置、电子设备及介质与流程

本发明涉及计算机领域,特别涉及存储器固件的升级方法、升级装置、电子设备及介质。


背景技术:

1、在现有的固件升级方法中,常常通过校验升级固件的完整性以及设置相应的标志位来记录固件升级的状态,以防止断电、数据传输错误等造成固件升级过程异常的情况发生。

2、但是,如果仅以校验固件的完整性来判断固件是否升级成功,则会出现升级了一个程序异常的固件,还是会出现程序跑飞的情况。


技术实现思路

1、鉴于上述问题,本发明提供了适用于存储器固件的升级方法、升级装置、电子设备及介质。

2、本发明的第一个方面提供了适用于存储器固件的升级方法,包括:

3、运行第一固件;

4、对目标事件进行检测;

5、在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值;

6、在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;

7、在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;

8、在上述第二固件运行成功的情况下,确定上述第二固件升级成功;

9、其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。

10、根据本发明的实施例,上述目标事件表征预设的物理按钮被按下。

11、根据本发明的实施例,上述第二固件包括校验头和固件主体,上述校验头包括上述固件主体的长度信息和上述第二循环冗余校验值,上述校验头存储于上述第二分区的预设存储位置;

12、上述利用上述第一固件计算第二固件的第一循环冗余校验值,包括:

13、利用上述第一固件读取上述长度信息;

14、根据上述第二分区的起始位置信息、上述预设存储位置和上述长度信息,确定用于存储上述固件主体的目标存储位置;

15、根据上述目标存储位置,读取上述固件主体;

16、根据上述固件主体的内容,计算上述第一循环冗余校验值。

17、根据本发明的实施例,上述第二固件的校验头是在将上述第二固件存储至上述第二分区之前计算得到。

18、根据本发明的实施例,上述方法还包括:

19、在确定上述第一循环冗余校验值不等于上述第二循环冗余校验值的情况下,继续运行上述第一固件。

20、根据本发明的实施例,上述基于上述触发指令触发上述目标事件包括:

21、基于上述触发指令,重新运行第一固件,并在重新运行上述第一固件的同时,触发上述目标事件;

22、在检测到上述目标事件被触发的情况下,继续运行上述第一固件。

23、根据本发明的实施例,在检测到上述目标事件被触发的情况下,继续运行上述第一固件包括:

24、在检测到上述目标事件被触发的情况下,获取上述目标事件的触发时长;

25、在上述触发时长大于或者等于预设时长的情况下,清除上述第二固件,继续运行上述第一固件;

26、在上述触发时长小于上述预设时长的情况下,直接运行上述第一固件。

27、本发明的第二个方面提供了一种适用于储存器固件的升级装置,包括:

28、第一运行模块,适用于运行第一固件;

29、检测模块,适用于对目标事件进行检测;

30、计算模块,适用于在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值,其中,上述第二固件包括预设的第二循环冗余校验值;

31、第二运行模块,适用于在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;

32、触发模块,适用于在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;

33、确定模块,适用于在上述第二固件运行成功的情况下,确定上述第二固件升级成功;

34、其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。

35、本发明的第三个方面提供了一种电子设备,包括:

36、一个或多个处理器;

37、存储装置,用于存储一个或多个程序,

38、其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的方法。

39、本发明的第四个方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。

40、根据本发明的实施例,第一固件预先烧录在所述存储器的第一分区,将第二固件存储在存储器的第二分区,利用第一固件计算第二固件的第一循环冗余校验值,能够检验存储至第二分区的第二固件是否完整。

41、在确认第二固件完整但是仍然运行失败的情况下,通过生成触发指令,能够基于触发指令触发目标事件,进而控制存储器运行第一固件从而确保存储器中程序的正常运行,解决了第二固件完整但是自身程序不正确导致的存储器程序无法正常使用的问题。



技术特征:

1.一种适用于存储器固件的升级方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述目标事件表征预设的物理按钮被按下。

3.根据权利要求1所述的方法,其特征在于,所述第二固件包括校验头和固件主体,所述校验头包括所述固件主体的长度信息和所述第二循环冗余校验值,所述校验头存储于所述第二分区的预设存储位置;

4.根据权利要求1所述的方法,其特征在于,所述第二固件的校验头是在将所述第二固件存储至所述第二分区之前计算得到。

5.根据权利要求1所述的方法,其特征在于,还包括:

6.根据权利要求1所述的方法,其特征在于,所述基于所述触发指令触发所述目标事件包括:

7.根据权利要求6所述的方法,其特征在于,在检测到所述目标事件被触发的情况下,继续运行所述第一固件包括:

8.一种适用于储存器固件的升级装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。


技术总结
一种存储器固件的升级方法、升级装置、电子设备及介质,应用于计算机领域。该方法包括:运行第一固件;对目标事件进行检测;在检测到上述目标事件没有被触发的情况下,利用上述第一固件计算第二固件的第一循环冗余校验值;在确定上述第一循环冗余校验值等于上述第二循环冗余校验值的情况下,运行上述第二固件;在上述第二固件运行失败的情况下,生成触发指令,以基于上述触发指令触发上述目标事件,上述触发上述目标事件适用于控制上述存储器运行上述第一固件;在上述第二固件运行成功的情况下,确定上述第二固件升级成功;其中,上述第一固件预先烧录在上述存储器的第一分区,上述第二固件存储在上述存储器的第二分区。

技术研发人员:朱敏,郭兆荣,王宇峰
受保护的技术使用者:无锡沐创集成电路设计有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1