固件维护方法及电子设备与流程
厨房设备使用与维护方法 #生活技巧# #维修技能#
1.本技术涉及计算机技术领域,尤其涉及一种固件维护方法及电子设备。
背景技术:
2.固件被广泛地应用在电子设备中,通过电子设备的开发厂商所设计的固件建立软件与硬件之间的协同运作而达成欲设计的功能。电子设备通常包含处理器,处理器的启动依赖于其固件,固件通常存储在外接的存储器中。
3.固件有时因为修补缺陷、增加功能特性等原因而需要维护,处理器需通过外部接口获得新版本的启动固件,再通过与闪存的接口总线进行维护。在此过程中,万一出现断电、系统异常、软件缺陷等原因导致维护失败,处理器将不能工作。因此,有厂商基于备份启动固件的考量提出应用两片闪存与闪存片选的选择开关的方案,使得某一片闪存存储的启动固件维护失败时,用户可通过设置开关使得处理器选择从另一片闪存加载并执行启动固件,再重新对升级失败的闪存进行固件维护。
4.然而,在上述固件维护过程中,如果发生异常情况而导致固件维护中断、固件维护失败或固件损坏时,处理器将因固件不够完整而无法工作,使得工程师必须打开电子设备的外壳,手动干预设置开关以重新进行固件维护,或利用辅助工具将完整的固件写入到存储器中,因此,现有固件维护方法存在维护性差、维修成本高及增加电子设备的宕机时间的问题。
5.因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
技术实现要素:
6.本技术实施例提供一种固件维护方法及电子设备,其能够现有固件维护方法存在维护性差、维修成本高及增加电子设备的宕机时间的问题。
7.为了解决上述技术问题,本技术是这样实现的:
8.本技术提供了一种固件维护方法,应用于连接主机的电子设备,电子设备包括处理器、存储器和逻辑器件,逻辑器件包括选择器、存储器控制模块和接口控制器。固件维护方法包括:接口控制器接收并判断主机发送的接口数据与默认特征值相同时,接口控制器将主机连接存储器控制模块;选择器基于主机发送至存储器控制模块的切换命令将存储器连接存储器控制模块;存储器控制模块通过接口控制器获取主机发送的操作命令和固件数据,以基于操作命令将固件数据写入到存储器,并在写入固件数据完成后,通过接口控制器向主机返回状态数据;以及接口控制器接收主机基于状态数据所发送的重启命令后,重启逻辑器件和处理器,使选择器将存储器连接处理器,从而处理器加载存储器中的固件数据。
9.本技术提供了一种电子设备,连接主机且包括:处理器、存储器和逻辑器件,逻辑器件包括选择器、存储器控制模块和接口控制器,选择器被配置为将存储器连接处理器或存储器控制模块,接口控制器被配置为连接处理器或存储器控制模块。其中,接口控制器接
收并判断主机发送的接口数据与默认特征值相同时,接口控制器将主机连接存储器控制模块;选择器基于主机发送至存储器控制模块的切换命令将存储器连接存储器控制模块;存储器控制模块通过接口控制器获取主机发送的操作命令和固件数据,以基于操作命令将固件数据写入到存储器,并在写入固件数据完成后,通过接口控制器向主机返回状态数据;接口控制器接收主机基于状态数据所发送的重启命令后,重启逻辑器件和处理器,使选择器将存储器连接处理器,从而处理器加载存储器中的固件数据。
10.在本技术实施例中,当主机欲对电子设备进行固件维护时,发送默认特征值至接口控制器;接口控制器监测到默认特征值后,接口控制器将主机连接存储器控制模块(即主机发送的接口数据不再发送到处理器);选择器基于主机发送至存储器控制模块的切换命令将存储器连接存储器控制模块;接着,主机通过存储器控制模块将固件数据写入到存储器,并于写入完成后发送重启命令至接口控制器,以重启逻辑器件和处理器,从而处理器加载并执行存储器中的固件数据,完成电子设备的固件维护。因此,本技术实施例的固件维护方法及电子设备中,不需要额外增加存储器(即不需要两个存储器)和维护成本而可节省成本;只需要连接主机和接口控制器及应用主机上的相应软件即可实现电子设备的固件维护,而具有操作便捷的优势;固件维护失败时,操作人员可以远程操作,不需手动干预或借助工具,而节省时间、人力和物力。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明被配置为解释本技术,并不构成对本技术的不当限定。在附图中:
12.图1为依据本技术的连接主机的电子设备处于正常模式的一实施例示意图;
13.图2为依据本技术的连接主机的电子设备处于维护模式的一实施例示意图;
14.图3为依据本技术的连接主机的电子设备处于维护模式的另一实施例示意图;以及
15.图4为依据本技术的固件维护方法的一实施例流程图。
具体实施方式
16.以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
17.必须了解的是,使用在本说明书中的“包含”、“包括”等词,是被配置为表示存在特定的技术特征、数值、方法步骤、作业处理及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件,或以上的任意组合。
18.必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。
19.请参阅图1和图2,图1为依据本技术的连接主机的电子设备处于正常模式的一实施例示意图,图2为依据本技术的连接主机的电子设备处于维护模式的一实施例示意图。如图1和图2所示,电子设备100包括:处理器110、存储器120和逻辑器件130,逻辑器件130包括
选择器132、存储器控制模块134和接口控制器136,选择器132被配置为将存储器120连接处理器110或存储器控制模块134,接口控制器136被配置为将主机40连接处理器110或存储器控制模块134。在一些实施例中,逻辑器件130可为但不限于可编程逻辑器件;所述可编程逻辑器件可为但不限于复杂可编程逻辑器件(complex programming logic device,cpld)或现场可编程门阵列(field programmable gate array,fpga)。
20.具体地,电子设备100处于正常模式时,选择器132将存储器120连接处理器110,接口控制器136将主机40连接处理器110;电子设备100上电重启后,处理器110可加载并执行存储器120中的固件数据而启动,且于启动后可通过接口控制器136接收并处理来自主机40的接口数据。电子设备100处于维护模式时,选择器132将存储器120连接存储器控制模块134,接口控制器136将主机40连接存储器控制模块134;主机40可以通过逻辑器件130中的存储器控制模块134对电子设备100进行固件维护,相关说明容后详述。需注意的是,图1和图2中,实线连线表示有信号或数据在其上传输,虚线连线表示没有信号或数据在其上传输;也就是说,本技术所述的各器件之间的连接表示有信号或数据在所述器件之间传输。
21.其中,所述正常模式为默认模式;主机40可为但不限于升级设备,例如:本地或远程与电子设备100连接的计算机装置;电子设备100可为但不限于服务器、交换机或嵌入式系统;处理器110可为但不限于中央处理器或嵌入式处理器;存储器120可为但不限于串行外设接口(serial peripheral interface,spi)闪存或并行接口闪存。
22.在本实施例中,接口控制器136接收并判断主机40发送的接口数据与默认特征值相同时,接口控制器136将主机40连接存储器控制模块134;选择器132基于主机40发送至存储器控制模块134的切换命令将存储器120连接存储器控制模块134(即电子设备100由正常模式切换为维护模式)。接口控制器136监测从主机40发送的接口数据,并将接口数据与默认特征值进行比较;在一些实施例中,接口控制器136是持续地监测从主机40发送的接口数据。当主机40欲对电子设备100进行固件维护时,发送默认特征值至接口控制器136,使得接口控制器136监测到默认特征值后,接口控制器136将主机40连接存储器控制模块134(即主机40发送的接口数据不再发送到处理器110);主机40通过接口控制器136发送切换命令至存储器控制模块134,使得选择器132基于所述切换命令将存储器120连接存储器控制模块134。其中,默认特征值是逻辑器件130编码时指定,可以设置为0xdeadbeef,但本实施例并非用以限定本技术。在一实施例中,接口控制器136可包括只读寄存器1362,只读寄存器1362用于存储所述默认特征值。
23.在本实施例中,电子设备100处于维护模式时,存储器控制模块134通过接口控制器136获取主机40发送的操作命令和固件数据,以基于操作命令将固件数据写入到存储器120,并在写入固件数据完成后,通过接口控制器136向主机40返回状态数据。换句话说,主机40通过存储器控制模块134将其发送的固件数据写入到存储器120,并在写入固件数据完成后,获取状态数据。其中,操作命令可包括但不限于读命令、写命令和擦除命令。
24.在本实施例中,接口控制器136接收主机40基于状态数据所发送的重启命令后,重启逻辑器件130和处理器110,使选择器132将存储器120连接处理器110,接口控制器136将主机40连接处理器110,从而处理器110加载并执行存储器120中的固件数据(即电子设备100由维护模式切换为正常模式)。换句话说,主机40获取状态数据后,发送重启命令给接口控制器136,使得逻辑器件130自身重启以外,逻辑器件130还让处理器110重启。
25.请参阅图3,其为依据本技术的连接主机的电子设备处于维护模式的另一实施例示意图。如图3所示,存储器控制模块134还可包括存储器控制器50、命令寄存器60和数据寄存器70;命令寄存器60可被配置为存储主机40所发送的操作命令;数据寄存器70可被配置为存储主机40所发送的固件数据;存储器控制器50可被配置为基于命令寄存器60所存储的操作命令访问存储器120,并将数据寄存器70所存储的固件数据写入到存储器120中。另外,命令寄存器60还可被配置为存储主机40所发送的切换命令,使得选择器132基于所述切换命令将存储器120连接存储器控制模块134。
26.在一实施例中,接口控制器136被配置为根据主机40通过串口42的接口数据所包括的识别码判断接口数据属于操作命令或固件数据;将属于操作命令的两个连续的接口数据重新组合,以获取操作命令,并写到命令寄存器60中;将属于固件数据的两个连续的接口数据重新组合,以获取固件数据,并写到数据寄存器70中。其中,串口42可为但不限于原先可直接连接处理器110的外部接口。
27.也就是说,主机40通过串口42发送的接口数据适用通用异步收发传输器(universal asynchronous receiver transmitter,uart)格式,以字节为单位进行传输,不能区分哪个接口数据属于操作命令、哪个接口数据属于固件数据,所以,当主机40传送一个操作命令时,例如0x89,就把它拆成2个字节,每个字节的前半部分是识别码,因为操作命令的识别码是0x10,所以0x89就变成0x18和0x19;当主机40传送一段固件数据时,例如0x87,就把它拆成2个字节,因为固件数据的识别码是0x20,所以0x87就变成0x28和0x27;这样,接口控制器136就可以区分接收到的接口数据属于操作命令还是属于固件数据。
28.举例而言,存储器120为串行外设接口闪存时,因为其发送的所有命令(例如:擦除扇区的命令、读取状态的命令等)与数据(例如:起始地址、偏移地址、内容等)都是一个字节长度,为了方便接口控制器136判断主机40传输的字节(即接口数据)属于操作命令还是固件数据,设计通过识别码来判断字节的类型(例如:字节包括的识别码为0x10时,所述字节属于操作命令;字节包括的识别码为0x20时,所述字节属于固件数据);因此,主机40会将其欲发送的接口数据拆分为两个字节,每一个字节的前半部分是接口数据的类型的识别码,字节的后半部分是真实的内容,使得接口控制器136收到接口数据拆分的两个字节后,会把两个字节重新组合,并依据字节的类型写到命令寄存器60或数据寄存器70中(即字节属于操作命令写到命令寄存器60中,字节属于固件数据写到数据寄存器70中)。
29.在一实施例中,存储器控制模块134还可包括状态寄存器80;存储器控制器50还可被配置为在写入所述固件数据完成后,基于命令寄存器60所存储的操作命令读取存储器120中的状态位,并写到状态寄存器80中;以及基于状态寄存器80所存储的数据通过接口控制器136向主机40发送状态数据。因此,主机40收到状态数据后可知所述固件数据写入完成,从而发送重启命令至接口控制器136。
30.在一实施例中,存储器控制模块134还可包括重启寄存器90,重启寄存器90连接处理器110;接口控制器136被配置为接收所述重启命令后,设置重启寄存器90,进而重启逻辑器件130和处理器110。具体地,当主机40发送的接口数据所包括的识别码属于重启命令(例如:0x30)时,接口控制器136可判断接收到的接口数据是重启命令,然后设置重启寄存器90,以使逻辑器件130通过重启寄存器90重启处理器110,接着,逻辑器件130自身重启。
31.在一实施例中,存储器120为串行外设接口闪存时,存储器控制器50为串行外设接
口控制器。在另一实施例中,存储器120为并行接口闪存时,存储器控制器50为并行接口控制器。
32.请参阅图1、图2和图4,图4为依据本技术的固件维护方法的一实施例流程图。所述固件维护方法可应用于电子设备100且包括:接口控制器136接收并判断主机40发送的接口数据与默认特征值相同时,接口控制器136将主机40连接存储器控制模块134(步骤210);选择器132基于主机40发送至存储器控制模块134的切换命令将存储器120连接存储器控制模块134(步骤220);存储器控制模块134通过接口控制器136获取主机40发送的操作命令和固件数据,以基于操作命令将固件数据写入到存储器120,并在写入固件数据完成后,通过接口控制器136向主机40返回状态数据(步骤230);以及接口控制器136接收主机40基于状态数据所发送的重启命令后,重启逻辑器件130和处理器110,使选择器132将存储器120连接处理器110,从而处理器110加载存储器120中的固件数据(步骤240)。
33.因此,通过步骤210至步骤240即可实现电子设备100的固件维护,而具有操作便捷的优势;且固件维护失败时,操作人员可以远程操作,不需借助工具,而节省时间、人力和物力。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
34.在一实施例中,所述固件维护方法还可包括:接口控制器136监测从主机40发送的接口数据,并将接口数据与其包括的只读寄存器1362所存储的默认特征值进行比较。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
35.请参阅图3和图4,步骤230所述存储器控制模块134通过接口控制器136获取主机40发送的操作命令和固件数据,以基于操作命令将固件数据写入到存储器120,可包括:命令寄存器60接收并存储主机40所发送的操作命令;数据寄存器70接收并存储主机40所发送的固件数据;存储器控制器50基于命令寄存器60所存储的操作命令访问存储器120,并将数据寄存器70所存储的固件数据写入到存储器120中。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
36.请参阅图3和图4,步骤230所述存储器控制模块134通过接口控制器136获取主机40发送的操作命令和固件数据,可包括:接口控制器136根据主机40通过串口42发送的接口数据所包括的识别码判断接口数据属于操作命令或固件数据;接口控制器136将属于操作命令的两个连续的接口数据重新组合,以获取操作命令,并写到命令寄存器60中;以及接口控制器136将属于固件数据的两个连续的接口数据重新组合,以获取固件数据,并写到数据寄存器70中。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
37.请参阅图3和图4,步骤230所述存储器控制模块134在写入固件数据完成后,通过接口控制器136向主机40返回状态数据,可包括:在写入固件数据完成后,存储器控制模块134基于操作命令读取存储器120中的状态位,并写到存储器控制模块134包括的状态寄存器80中;以及存储器控制模块134基于状态寄存器80所存储的数据通过接口控制器136向主机40发送状态数据。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
38.请参阅图3和图4,步骤240所述接口控制器136接收主机40基于状态数据所发送的重启命令后,重启逻辑器件130和处理器110,可包括:接口控制器136接收重启命令后,设置逻辑器件130包括的重启寄存器90,进而重启逻辑器件130和处理器110。详细说明可参阅上述实施例相关说明内容,在此不另赘述。
39.综上所述,本技术的固件维护方法及电子设备可通过接口控制器的设置,监测主
机是否欲对电子设备进行固件维护(即是否发送默认特征值);当接口控制器接收到默认特征值后,接口控制器将主机连接存储器控制模块;选择器基于主机发送至存储器控制模块的切换命令将存储器连接存储器控制模块(即电子设备进入维护模式);接着,主机通过存储器控制模块将固件数据写入到存储器,并于写入完成后发送重启命令至接口控制器,以重启可编程逻辑器件和处理器,从而处理器加载并执行存储器中的固件数据(即电子设备返回正常模式)。因此,本技术实施例的固件维护方法及电子设备中,因不需要额外增加存储器(即不需要两个存储器)和维护成本而可节省成本;因只需要连接主机和接口控制器及应用主机上的相应软件即可实现电子设备的固件维护,而具有操作便捷的优势;因固件维护失败时,操作人员可以远程操作,不需借助工具,而节省时间、人力和物力。
40.虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非被配置为限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。
网址:固件维护方法及电子设备与流程 https://www.yuejiaxmz.com/news/view/1224979
相关内容
电子设备的固件升级方法、装置、设备及存储介质与流程一种电子设备的维护管理系统及维护管理方法与流程
升级固件的方法、电子设备和存储介质与流程
一种电子设备的控制方法及电子设备与流程
电子设备以及电子设备的使用方法与流程
电子设备及使用方法与流程
家用电器的维护方法及装置、电子设备与流程
电子设备及其操作方法与流程
电脑硬件设备维护方法
电子设备及操作所述电子设备的方法与流程