光模块固件升级的方法、装置及光模块与流程

文档序号:12718934阅读:929来源:国知局
光模块固件升级的方法、装置及光模块与流程

本发明涉及光通信技术领域,尤其涉及光模块固件升级的方法、装置及光模块。



背景技术:

光收发一体模块,简称光模块(optical module),是光通讯领域的设备中的一种标准模块,用于光电转换。如图1所示,光模块10由光发射器101、光接收器102、微处理器103等组成。其中,光模块10的微控制器103微处理器103控制光发射器101把电信号转换成光信号,光发射器101将光信号传输至光纤。光模块10的光接收器102可以接收光纤传输的光信号,并在微控制器103微处理器103的控制下将接收的光信号转换成电信号。

微处理器103运行的程序存储在FLASH(闪存)缓存中,该运行的程序分为Bootloader(引导加载)程序及固件。其中,Bootloader程序是升级引导程序,在写入FLASH缓存之后不再改变,固件是光模块10的应用程序。随着光模块10功能的不断完善,固件需进行版本更新或者漏洞修复,即为固件需要进行升级。

目前传统光模块10固件升级的方法为:微处理器103接收到上位机发送的升级指令后,微处理器103从运行固件程序跳转到运行Bootloader程序,其中,微处理器103在运行Bootloader程序时,将新的固件数据覆盖FLASH缓存中原有的固件数据,当新的固件数据写入完毕后,微处理器103运行更新后的固件。

需要说明的是,固件在正常运行过程中,微处理器103将从上位机中获取的固件的控制信息存储在易失性存储区中,微处理器103在跳转到运行Bootloader程序后,固件停止运行,则存储固件的控制信息的易失性存储区被释放。在微处理器103运行Bootloader程序过程中,可能会将获取的数据信息存储至原存储固件的控制信息的易失性存储区中,即为将原固件存储在易失性存储区的控制信息覆盖。这样,微处理器103在完成固件更新后,无法获取原固件的控制信息。而固件的控制信息中包含有用户对光模块的设置信息,例如光模块的工作频率,光发射器101的开启与关闭,是否运行在低功耗模式等。在原固件的控制信息丢失后,微处理器103无法按照用户设置的方式运行更新后的固件,使得光模块10无法正常工作,导致通信业务出现短暂中断。



技术实现要素:

为克服相关技术中存在的问题,本发明提供一种光模块固件升级的方法、装置及光

模块。

根据本发明实施例的第一方面,提供一种光模块固件升级的方法,包括:运行固件;

接收固件的控制信息;将所述固件的控制信息存储至易失性存储区的第一区域;所述第一区域是易失性存储区中用于存储固件的控制信息的区域;由运行所述固件跳转至运行引导加载Bootloader程序,通过运行所述Bootloader程序,对所述固件升级,并将固件升级过程中产生的缓存信息存储至易失性存储区的第二区域;固件升级完成后,由运行所述Bootloader程序跳转至运行升级后的固件,并在运行所述升级后的固件的过程中,从所述第一区域中获取所述固件的控制信息。

根据本发明实施例的第二方面,提供一种光模块固件升级的装置,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口通信总线相连;所述通信接口,用于接收和发送信号;所述存储器,用于存储程序代码;所述处理器,用于读取所述存储器中存储的程序代码,并执行上述实施例所述的光模块固件升级的方法。

根据本发明实施例的第三方面,提供一种光模块,包括:光接收器,光发射器及微处理器;其中,所述微处理器包括如上述实施例所述的光模块固件升级的装置。

本发明的实施例提供的技术方案可以包括以下有益效果:运行固件;接收固件的控制信息;将固件的控制信息存储至易失性存储区的第一区域;由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对所述固件升级;并将固件升级过程中产生的缓存信息存储至易失性存储区的第二区域;固件升级完成后,由运行Bootloader程序跳转至运行升级后的固件,并在运行升级后的固件的过程中,从第一区域中获取固件的控制信息。这样一来,光模块固件升级的装置在接收到固件的控制信息,可以将固件的控制信息存储至易失性存储区的第一区域,在进行固件升级时,Bootloader程序将待存储数据存储至易失性存储区的第二区域,而不是第一区域,使得第一区域内存储的固件的控制信息不被覆盖。在运行升级后的固件的过程中,可以从第一区域中获取固件的控制信息,从而可以根据固件的控制信息运行光模块,降低了因光模块升级而导致通信业务出现中断的可能性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的一种光模块的结构示意图;

图2为现有技术中光网络系统的一种结构示意图;

图3为本发明实施例提供的一种光模块固件升级的方法的流程示意图;

图4为本发明实施例提供的另一种光模块固件升级的方法的流程示意图;

图5为本发明实施例提供的一种光模块固件升级的装置的结构示意图;

图6为本发明实施例提供的一种光模块的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

如图2所示,在光网络系统中,上位机20是控制和监控光模块10工作的设备。上位机20可以通过I2C(Inter-Integrated Circuit)总线控制和监控多个光模块10工作。光模块10是光收发一体模块,用于光电转换。光模块10中包含有光发射器101、光接收器102、微处理器103等,如图1所示。

微处理器103运行的程序存储在FLASH(闪存)缓存中,该运行的程序分为Bootloader(引导加载)程序及固件。在正常情况下,微处理器103运行的程序为固件。上位机20可以将固件的控制信息通过I2C总线传输至微处理器103中。其中,固件的控制信息包含有用户对光模块10的设置信息,例如用户设置关闭光发射器101,光模块10运行在低功耗模式,光模块10的启动密码等。

对于固件的控制信息,一些控制信息可以存储至FLASH缓存,即为非易失存储区。例如,对于光模块10的某一功能即为A功能,如果需要对启动光模块10的A功能的用户进行身份认证,此时用户可以设置启动密码,微处理器10可以获取到光模块10的A功能启动密码。光模块10的A功能启动密码用于对启动光模块的A功能的用户进行身份验证,在用户输入的密码与保存的光模块10的A功能启动密码一致时,才能启动光模块10的A功能。为了保证在每次运行光模块10时,均可对用户身份进行认证,需要微处理器10将光模块10的A功能启动密码保存至非易失存储区中,这样即使在光模块10掉电后,光模块10的A功能启动密码也不会丢失,从而可以在每次运行光模块10时,从非易失存储区中读取光模块10的A功能启动密码,利用读取的光模块10的A功能启动密码对用户身份进行认证。

而对于固件的另一些控制信息,为了保证光模块10的正常工作,无法将其保存至非易失性存储区中,而是需要将其保存至易失性存储区中。例如用户设置光发射器101关闭,也就是说,用户将光模块10中的光发射器101关闭,此时光模块10无法将电信号转换为光信号,传输至光纤中。但是光模块10的主要作用是实现光电转换,即为,光模块10可以将光信号转换为电信号,将电信号转换为光信号。在将光模块10中的光发射器101关闭时,光模块无法实现将电信号转换为光信号。如果将上述用户设置光发射器101关闭保存至非易失性存储区,在每次启动光模块10时,光模块10的光发射器101均被关闭,会导致每次启动光模块10后,光模块10的基本功能无法实现。并且,光模块10的日常运行中,其内光发射器101开启的需求远大于其内光发射器101关闭的需求,通常需在每次启动光模块10时,将光发射器101初始化为开启状态。因此,需要将用户设置光发射器101关闭的控制信息存储至易失性存储区。

又如,在启动光模块10的A功能时,如果需要进行身份验证,需要用户输入验证密码,此时微处理器103接收到控制信息中包含有用户输入的验证密码。如果将用户输入的验证密码存储至非易失存储区中,则每次光模块10的A功能启动时,均可以从非易失存储区中获取到验证密码,利用此验证密码进行身份验证,这样一来,无法实现对启动光模块10的A功能的用户进行身份验证,则设置光模块10的A功能启动密码就失去了意义。因此,需要将用户输入的验证密码存储至易失存储区中,每次光模块10启动后,如要启动光模块10的A功能,需要用户重新输入验证密码,从而可以实现对启动光模块10的A功能的用户进行身份验证的目的。由此可知,固件的一些控制信息只能存储至易失性存储区。

在微处理器103运行固件的过程中,会为此固件在易失性存储区中分配存储区域,用于存储数据。这样一来,微处理器103接收到固件的控制信息后,通过运行的固件将需存储至易失性存储区的控制信息存储至固件占用的存储区域中。并在运行固件的过程中,固件占用的存储区域不会被释放,微处理器103可以从固件占用的存储区域中获取到固件的控制信息。

在需要对光模块10内的固件进行升级时,上位机20通过I2C总线将升级指令发送至微处理器103。微处理器103接收到升级指令后,从运行固件跳转至运行Bootloader程序。在微处理器103跳转运行Bootloader程序时,由于微处理器103开始运行Bootloader程序,不再运行固件。即为,固件运行结束。由于易失性存储区是有限的,因此在固件运行结束时,固件占用的存储区域需释放给其他程序使用。也就是说,固件占用的存储区域被释放,即为存储有固件的控制信息的易失性存储区被释放。因此,微处理器103在运行Bootloader程序时,需为Bootloader程序在易失性存储区中分配存储区域,此时为Bootloader程序分配的存储区域可能就是固件使用的存储区域。这样在Bootloader程序进行数据存储时,可能会将易失性存储区中存储的固件的控制信息覆盖。

即为,在固件升级过程,上位机20利用I2C总线将新的固件分块发送至微处理器103。微处理器103接收到新的固件后,需将新的固件先存储至易失性存储区中,此时,将新的固件存储至易失性存储区时,可能会覆盖已存储的固件的控制信息,导致固件的控制信息丢失。微处理器103在接收完上位机20通过I2C总线发送的新的固件后,可以在易失性存储区中逐块的读取新的固件,并将其写入至原有固件的存储地址所指示的存储区中。当易失性存储区存储的新的固件全部写入至原有固件的存储地址所指示的存储区后,固件升级完成。此时,微处理器103从运行Bootloader程序跳转至运行新的固件。

由于在升级过程中,上位机20通过I2C总线发送升级指令及新的固件,不再发送固件的控制信息,因此,现有的上述升级过程中,在完成固件升级的过程中会带来存储区域中存储的固件的控制信息丢失的问题,导致微处理器103在运行升级后的固件过程中,无法获取固件的控制信息,而固件的控制信息中包含有用户对光模块运行的相关设置信息,微处理器103无法按照用户的设置信息来控制光发射器101及光接收器102的工作,导致光模块无法正常工作,进而造成通信业务的中断。

为了解决上述问题,在本发明实施例提供了一种光模块固件升级的方案,在改方案中将易失性存储区划分为第一区域及第二区域,且所述第一区域是易失性存储区中用于存储固件的控制信息的区域。在接收到固件的控制信息时,将固件的控制信息存储至第一区域。在固件升级过程中,Bootloader程序将待存储数据存储至易失性存储区的第二区域,不会占用易失性存储区的第一区域。在固件升级完成后,运行升级后的固件时,可以从易失性存储区的第一区域中获取固件的控制信息。这样一来,本发明实施例中的固件的控制信息不会在固件升级的过程中丢失,在运行升级后的固件时,可以在易失性存储区的第一区域获取到固件的控制信息,从而可以在根据固件的控制信息获取用户的设置信息,根据用户的设置运行光模块,降低了因光模块升级而导致通信业务出现中断的可能性。

如图3所示,本发明实施例提供了一种光模块固件升级的方法,包括:

步骤301、运行固件。

具体的,光模块固件升级的装置在未接收到升级指令时,处于正常工作状态,此时运行非易失性存储区中的固件。

步骤302、接收固件的控制信息。

具体的,上位机将用户对光模块的相关设置信息等作为固件的控制信息发送至光模块固件升级的装置,光模块固件升级的装置接收上位机发送的固件的控制信息。

步骤303、将固件的控制信息存储至易失性存储区的第一区域。

其中,第一区域是易失性存储区中用于存储固件的控制信息的区域。

具体的,光模块固件升级的装置接收到固件的控制信息后,通过运行固件将固件的控制信息写入至分配给固件的易失性存储区的第一区域。

步骤304、由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级;并在固件升级过程中,将待存储数据存储至易失性存储区的第二区域。

其中,第二区域与第一区域是易失性存储区中不同的存储区域。

需要说明的是,易失性存储区包括第一区域及第二区域。第二区域可以是光模块固件升级的装置运行Bootloader程序时,将易失性存储区分配给Bootloader程序使用的存储区域。

具体的,在需要对光模块的固件进行升级时,上位机可以向光模块固件升级的装置发送升级指令。光模块固件升级的装置接收到升级指令后,可以获知光模块的固件需要升级,此时,光模块固件升级的装置可以从运行固件跳转至运行Bootloader程序。即为,光模块固件升级的装置停止运行固件,获取Bootloader程序的存储地址,根据此地址,获取Bootloader程序,进而运行Bootloader程序。由于Bootloader程序是升级引导程序,因此光模块固件升级的装置在运行Bootloader程序后,可以对固件进行相应的升级。在固件升级的过程中,如果光模块固件升级的装置运行Bootloader程序产生了缓存信息,则可以将固件升级过程中产生的缓存信息存储至Bootloader程序占用的易失性存储区的第二区域。

需要说明的是,由于非易失存储区中存储了固件和Bootloader程序,光模块固件升级的装置可以在非易失性存储区中预设一个存储区用于预先存储Bootloader程序的中断向量表。这样,在需要由运行固件跳转至运行Bootloader程序时,可以将光模块固件升级的装置的当前中断向量表切换至Bootloader程序的中断向量表,得到Bootloader程序的存储地址,程序指针跳转指向Bootloader程序,实现由运行固件跳转至运行Bootloader程序。

进一步的,光模块固件升级的装置运行Bootloader程序对固件升级,即为光模块固件升级的装置接收到新的固件,通过运行Bootloader程序将新的固件写入至非易失存储区,并将升级完成后,运行新的固件。而在光模块固件升级的装置将新的固件写入至非易失存储区时,可以将新的固件写入至非易失存储区的存储升级前的固件的存储区域,即为将新的固件覆盖非易失存储区的存储的原有的固件,实现固件的升级。或者,将非易失存储区中存储固件的存储区域划分为两个区域,在光模块固件升级的装置将新的固件写入至非易失存储区时,可以将新的固件写入至非易失存储区的第一区域,而升级前的固件存储在非易失存储区的第二区域,即为新的固件在写入至非易失存储区时,并不覆盖原有的固件,而是写入其他的存储区域,实现固件的升级。具体过程如下:

由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级包括:由运行固件跳转至运行Bootloader程序,接收新的固件。通过运行Bootloader程序,将新的固件写入至非易失性存储区中存储固件的存储区。

也就是说,在固件升级过程中,上位机需将新的固件分块发送至光模块固件升级的装置,此时,光模块固件升级的装置接收到新的固件后,可以将新的固件直接写入至非易失性存储区的存储固件的存储区,即为新的固件将非易失性存储区中存储的固件覆盖,实现固件的升级。

或者,由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级包括:由运行固件跳转至运行Bootloader程序,接收新的固件。通过运行Bootloader程序,将新的固件写入至非易失性存储区的第一区域。

其中,非易失性存储区包括第一区域和第二区域。非易失性存储区的第一区域是用于存储升级后的固件的区域。非易失性存储区的第二区域是用于存储升级前的固件的区域。

也就是说,将非易失性存储区划分为存储Bootloader程序的存储区域及存储固件的存储区域,而将存储固件的存储区域又可划分为第一区域和第二区域。升级前的固件存储在非易失性存储区的第二区域。光模块固件升级的装置接收到新的固件后,可以将新的固件直接写入至非易失性存储区的第一区域内,并不覆盖原有的固件。

需要说明的是,在固件升级过程中,上位机需将新的固件分块发送至光模块固件升级的装置,如果光模块固件升级的装置需要在全部接收了新的固件的全部数据后,在再写入将新的固件写入至非易失性存储区时,可以将每次接收的每块新的固件,暂存至易失性存储区中的第二区域。此时,光模块固件升级的装置接收到上位机发的一块新的固件后,可以通过运行Bootloader程序将接收的一块新的固件写入至易失性存储区中的第二区域,直至将新的固件的全部数据均写入至易失性存储区中的第二区域,在将易失性存储区中的第二区域内的新的固件,写入至非易失性存储区中存储原有的固件的存储区。在将新的固件的全部数据均写入至非易失性存储区后,即完成了固件的升级。

步骤305、固件升级完成后,由运行Bootloader程序跳转至运行升级后的固件,并在运行升级后的固件的过程中,从第一区域中获取固件的控制信息。

具体的,光模块固件升级的装置在固件升级完成后,从运行Bootloader程序跳转至运行升级后的固件,即为从运行Bootloader程序跳转至运行新的固件。也就是说,光模块固件升级的装置结束运行Bootloader程序,开始运行新的固件,此时,光模块固件升级的装置需要获取新的固件的存储地址,进而根据新的固件的存储地址直接跳转运行新的固件。由于在运行Bootloader程序时,Bootloader程序占用的易失性存储区是第二区域,不是第一区域,则第一区域内存储的固件的控制信息未被覆盖。因此在运行升级的固件中,如果需要固件的控制信息,则可以从第一区域中获取到固件的控制信息。

这样一来,本发明实施例中的固件的控制信息不会在固件升级的过程中丢失,在运行升级后的固件时,可以在易失性存储区的第一区域获取到固件的控制信息,从而可以在根据固件的控制信息运行光模块,降低了因光模块升级而导致通信业务出现中断的可能性。

图4为本发明实施例提供的一种光模块固件升级的方法的流程示意图。如图4所示,该方法包括:

步骤401、运行固件。

具体的,可参考步骤301,在此不再赘述。

步骤402、接收固件的控制信息。

具体的,可参考步骤302,在此不再赘述。

需要说明的是,在本发明实施例中,可以针对Bootloader及固件将易失性存储区划分为不同的存储区域,即为第一区域及第二区域。这样一来,在运行固件时,将运行固件时需存储的数据直接存储至易失性存储区的第一区域中,并可以从此第一区域读取已存储的数据。在运行Bootloader程序时,将运行Bootloader程序时需存储的数据直接存储至易失性存储区的第二区域中,并可以从此第二区域读取已存储的数据。从而可以使光模块固件升级的装置在运行固件进行数据存储时,不会造成Bootloader程序存储的数据丢失。同理,光模块固件升级的装置在运行Bootloader程序进行数据存储时,也不会造成固件存储的数据丢失。

也可以在易失性存储区中专门划分一个存储区域即为第一区域,用于在固件升级的过程中存储固件的控制信息。而光模块固件升级的装置在运行固件及Bootloader程序时,如需要存储数据时,只能将数据存储至易失性存储区的第二区域。在运行固件及Bootloader程序时,如果需要读取已存储的数据,也只能从第二区域中读取。

下面根据易失性存储区域划分的规则不同,下面执行执行的步骤不同。在将易失性存储区域针对Bootloader及固件划分为不同的存储区域时,执行步骤403a-405a。在将易失性存储区域中专门划分一个存储区域即为第一区域,用于在固件升级的过程中存储固件的控制信息时,执行步骤403b-406b。

步骤403a、将固件的控制信息存储至易失性存储区的第一区域。

其中,第一区域是易失性存储区中用于存储固件的控制信息的区域。

具有的,将易失性存储区域针对Bootloader及固件划分出第一区域及第二区域。将第一区域分配至固件,用于存储运行固件的过程中产生的缓存信息。这样一来,光模块固件升级的装置在接收到固件的控制信息时,通过运行的固件,可以将固件的控制信息写入至固件占用的易失性存储区的存储区域,即为第一区域,使得易失性存储区的第一区域存储固件的控制信息。

步骤403b、将固件的控制信息存储至易失性存储区的第二区域。

具体的,光模块固件升级的装置在运行固件时,为固件分配了易失性存储区的第二区域用于存储其运行时产生的缓存信息。此时,光模块固件升级的装置可以将接收的固件的控制信息通过运行的固件,将固件的控制信息写入至固件占用的易失性存储区的存储区域,即为第二区域,使得易失性存储区的第二区域存储固件的控制信息。

步骤404a、接收到升级指令时,由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级,并将固件升级过程中产生的缓存信息存储至易失性存储区的第二区域。

具体的,在需要对光模块固件升级的装置中的固件进行升级时,上位机可以向光模块固件升级的装置发送升级指令。此时光模块固件升级的装置接收到升级指令后,可以获知需要对固件进行升级。光模块固件升级的装置可以由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级。

第二区域可以是用于存储Bootloader程序的相关数据的区域。也就是说,在本发明实施例中,针对Bootloader及固件将易失性存储区划分为不同的存储区域,即为第一区域及第二区域。这样一来,在运行固件时,将运行固件时需存储的数据直接存储至易失性存储区的第一区域中,并可以从此第一区域读取已存储的数据。在运行Bootloader程序时,将运行Bootloader程序时需存储的数据直接存储至易失性存储区的第二区域中,并可以从此第二区域读取已存储的数据。从而可以使光模块固件升级的装置在运行固件进行数据存储时,不会造成Bootloader程序存储的数据丢失。同理,光模块固件升级的装置在运行Bootloader程序进行数据存储时,也不会造成固件存储的数据丢失。

其中,光模块固件升级的装置可以由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级的具体执行过程,可以参数步骤304,在此不再赘述。

步骤404b、接收升级指令,从易失性存储区的第二区域内读取固件的控制信息,并写入至易失性存储区的第一区域。

具体的,光模块固件升级的装置接收到升级指令后,需要对固件进行升级,而在固件升级的过程中,固件运行结束,此时固件占用的易失性存储区的第二区域会被释放。为了,保证第二区域内存储的固件的控制信息不被覆盖,光模块固件升级的装置可以将固件的控制信息先存储至专门的存储区,即为第一区域。在固件升级的过程中,Bootloader程序仅使用易失性存储区的第二区域进行相关数据的存储,而不会使用第一区域,从而第一区域存储的固件的控制信息不会丢失。在升级完成后,在将固件的控制信息重新存入第二区域。因此,光模块固件升级的装置通过运行固件从易失性存储区的第二区域内读取固件的控制信息,并写入至易失性存储区的第一区域。

进一步的,接收升级指令,从易失性存储区的第二区域内读取所述固件的控制信息,并写入至易失性存储区的第一区域包括:接收升级指令,确定易失性存储区的第一区域中是否存储有固件的控制信息;如果易失性存储区的第一区域中没有存储固件的控制信息,则从易失性存储区的第二区域内读取固件的控制信息,并写入至易失性存储区的第一区域。

即为,如果光模块固件升级的装置在接收到升级指令时,需要将固件的控制信息存储至第一区域,而在光模块运行过程中,可能已经进行过固件升级,将固件的控制信息存储到了第一区域中。这时,无需再将固件的控制信息重新存储至第一区域。因此,在接收到升级指令后,需要先检测易失性存储区的第一区域中是否存储了固件的控制信息,如果没有存储固件的控制信息,则为了保证固件的控制信息在固件升级的过程中不丢失,可以从第二区域内读取固件的控制信息,并写入至易失性存储区的第一区域中。

如果易失性存储区的第一区域已经存储了固件的控制信息,则光模块固件升级的装置可以不再将第二区域内存储的固件的控制信息写入至易失性存储区的第一区域中。当然,为了保证固件的控制信息的时效性,也可以将第二区域内存储的固件的控制信息写入至易失性存储区的第一区域中。

步骤405a、固件升级完成后,由运行Bootloader程序跳转至运行升级后的固件,并在运行升级后的固件的过程中,从第一区域中获取固件的控制信息。

具体的,可参考步骤305,在此不再赘述。

步骤405b、由运行固件跳转至运行Bootloader程序,通过运行Bootloader程序,对固件升级,并将固件升级过程中产生的缓存信息存储至易失性存储区的第二区域。

具体的,可参考步骤304,在此不再赘述。

步骤406b、固件升级完成后,由运行Bootloader程序跳转至运行升级后的固件,并在运行升级后的固件的过程中,从第一区域中获取所述固件的控制信息。

具体的,在运行升级后的固件的过程中,从第一区域中获取所述固件的控制信息包括:在运行升级后的固件的过程中,从易失性存储区的第一区域内读取固件的控制信息,并写入至易失性存储区的第二区域;如果需要固件的控制信息,则从易失性存储区的第二区域内读取固件的控制信息。

即为,光模块固件升级的装置在固件升级完成后,可以从运行Bootloader程序跳转至运行新的固件,即为运行升级后的固件。由于为升级后的固件分配的易失性存储区为第二区域,因此并在运行新的固件过程中,需从易失性存储区的第一区域内读取固件的控制信息,并写入至易失性存储区的第二区域;如果需要固件的控制信息,则光模块固件升级的装置从易失性存储区的第二区域内读取固件的控制信息。

这样一来,本发明实施例中的固件的控制信息不会在固件升级的过程中丢失,在运行升级后的固件时,可以在易失性存储区的第一区域获取到固件的控制信息,从而可以在根据固件的控制信息运行光模块,降低了因光模块升级而导致通信业务出现中断的可能性。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

参考图5所示,为本发明实施例提供的一种光模块固件升级的装置的结构示意图,该装置为光模块的一部分。如图5所示,该装置500包括:一个处理器(processor)501、内存(memory)502、电力线路503和通信线路504。

内存502可包括高速随机存取存储器(high-speed random access memory)、磁盘、静态随机存取存储器(SPAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、闪存或非挥发性内存。内存502可存储用于固件升级的程序编码,也就是说可包括光模块固件升级的装置500的动作所需的软件模块、指令集架构或其之外的多种数据。此时,处理器501等其他控制器与内存502的存取可通过处理器501进行控制。

电力线路503可向终端设备的电路元件的全部或部分供给电力。例如,电力线路503可包括如电力管理系统、电池或交流(AC)之一个以上的电源、充电系统、电源故障检测电路(power failure detection circuit)、电力变换器或逆变器、电力状态标记符或用于电力生成、管理、分配的任意其他电路元件。

通信线路504可利用至少一个接口与上位机进行通信。

处理器501通过施行存储在内存502中的软件模块或指令集架构可运行光模块固件升级的装置500的多种功能且处理数据。也就是说,处理器501通过运行基本的算术、逻辑以及计算机系统的输入/输出演算,可构成为处理计算机程序的命令。

处理器501构成为用于运行上述实施例中的光模块固件升级的方法。

光模块固件升级的装置在接收到升级指令后,通过运行Bootloader程序对固件进行升级,并在固件升级的过程中,Bootloader程序将接收的新的固件缓存至易失性存储区的第一区域,而易失性存储区的第二区域存储了存储固件的控制信息。在光模块固件升级的装置升级完固件,并运行新的固件时,可以在易失性存储区的第二区域获取到固件的控制信息,从而可以根据固件的控制信息获取用户的设置信息,根据用户的设置运行光模块,降低了因光模块升级而导致通信业务出现中断的可能性。

另外,参加图6所示,为本发明实施例提供的一种光模块的结构示意图。如图6所示,该光模块包括:光接收器601,光发射器602及微处理器603。其中,光接收器601与微处理器603连接,用于接收光纤传输的光信号,并将光信号转换为电信号。光发射器602与微处理器603连接,用于将电信号转换为光信号,并传输中光纤。微处理器603包括如图5所示的光模块固件升级的装置500,光模块固件升级的装置500的内存502中存储有如上述图3,图4所示的方法实施例对应的程序,从而由处理器501执行该程序。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域技术人员在考虑说明书及实践这里发明的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1