CN113641378A - 光模块程序升级方法、装置、设备及可读存储介质 - Google Patents
光模块程序升级方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113641378A CN113641378A CN202110789336.0A CN202110789336A CN113641378A CN 113641378 A CN113641378 A CN 113641378A CN 202110789336 A CN202110789336 A CN 202110789336A CN 113641378 A CN113641378 A CN 113641378A
- Authority
- CN
- China
- Prior art keywords
- program
- data
- optical module
- upgraded
- symbol table
- 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.)
- Granted
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000008014 freezing Effects 0.000 claims abstract description 7
- 238000007710 freezing Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 12
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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
Abstract
本发明提供一种光模块程序升级方法、装置、设备及可读存储介质,该方法包括:当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;暂停或关闭与所述待升级程序相关联的任务;将待升级程序的新的程序数据覆盖写入待升级程序所对应的地址区间,将新的符号表文件数据覆盖写入符号表文件所对应的地址区间;控制待升级程序退出保持状态,恢复光模块程序的操作系统调度,并重启任务。通过本实施例,对光模块程序中的子程序进行升级时,仅需将待升级程序的新的程序数据以及新的符号表文件数据覆盖写入对应的地址区间,无需重启控制器MCU以及对应的器件,从而实现升级期间光模块业务不中断。
Description
技术领域
本发明涉及光通信技术领域,尤其涉及一种光模块程序升级方法、装置、设备及可读存储介质。
背景技术
光模块包括控制器MCU、高速DSP、收端光器件、发端光器件、逻辑控制器、数字电源模块等器件。其中,控制器MCU是光模块的核心器件,负责其他器件的逻辑控制,控制器MCU程序其包含各种功能模块,如高低功耗、DSP固件驱动、DSP状态机控制、光器件固件驱动、光器件启动配置和监测、数字电源配置和监测、状态告警监测和上报、运行日志等。
对光模块程序升级即对控制器MCU程序中各功能模块进行升级。而现有的对光模块程序中的一个或多个功能模块进行升级,会触发控制器MCU重启,光模块中其他器件也要按需重启,会导致光模块业务中断,参照图1,图1为现有技术中光模块在线升级流程示意图。而在实际工程场景下,业务中断是要绝对避免的,但光模块程序的升级迭代又是必要的。因此,亟需一种方法能保证业务不中断且对光模块程序进行升级。
发明内容
本发明的主要目的在于提供一种光模块程序升级方法、装置、设备及可读存储介质,旨在解决现有技术中对光模块程序进行升级会导致业务中断的技术问题。
第一方面,本发明提供一种光模块程序升级方法,所述光模块程序升级方法包括:
接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
暂停或关闭与所述待升级程序相关联的任务;
将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
可选的,在所述控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务的步骤之后,还包括:
基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
可选的,所述基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用的步骤包括:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
可选的,在所述将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间的步骤之后,还包括:
记录光模块的状态信息;
在所述将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间的步骤之后,还包括:
基于所述状态信息,恢复线程的状态机信息。
可选的,所述状态信息包括:外设状态信息、操作系统信息、线程状态机信息、全局变量及控制字段信息。
第二方面,本发明还提供一种光模块程序升级装置,所述光模块程序升级装置包括:
接收模块,用于接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
第一处理模块,用于当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
第二处理模块,用于暂停或关闭与所述待升级程序相关联的任务;
写入模块,用于将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
第三处理模块,用于控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
可选的,所述光模块程序升级装置还包括调用模块,用于:
基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
可选的,所述调用模块,用于:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
第三方面,本发明还提供一种光模块程序升级设备,所述光模块程序升级设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的光模块程序升级程序,其中所述光模块程序升级程序被所述处理器执行时,实现如上所述的光模块程序升级方法的步骤。
第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有光模块程序升级程序,其中所述光模块程序升级程序被处理器执行时,实现如上所述的光模块程序升级方法的步骤。
本发明中,接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;暂停或关闭与所述待升级程序相关联的任务;将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。通过本实施例,对光模块程序中的子程序进行升级时,仅需将待升级程序的新的程序数据以及新的符号表文件数据覆盖写入对应的地址区间,无需重启控制器MCU以及对应的器件,从而实现升级期间光模块业务不中断。
附图说明
图1为现有技术中光模块在线升级流程示意图;
图2为本发明实施例方案中涉及的光模块程序升级设备的硬件结构示意图;
图3为本发明光模块程序升级方法一实施例的流程示意图;
图4为传统调度方式和符号表调度方式的对比示例图;
图5为本发明光模块程序升级方法一实施例中基于符号表调用函数或数据结构的示意图;
图6为本发明光模块程序升级方法另一实施例的流程示意图;
图7为一实施例中对DSP固件驱动程序进行升级的流程示意图;
图8为本发明光模块程序升级装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一方面,本发明实施例提供一种光模块程序升级设备。
参照图2,图2为本发明实施例方案中涉及的光模块程序升级设备的硬件结构示意图。本发明实施例中,光模块程序升级设备可以包括处理器1001(例如中央处理器CentralProcessing Unit,CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真WIreless-FIdelity,WI-FI接口);存储器1005可以是高速随机存取存储器(random access memory,RAM),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图2中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图2,图2中作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及光模块程序升级程序。其中,处理器1001可以调用存储器1005中存储的光模块程序升级程序,并执行本发明实施例提供的光模块程序升级方法。
第二方面,本发明实施例提供了一种光模块程序升级方法。
参照图3,图3为本发明光模块程序升级方法一实施例的流程示意图。如图3所示,光模块程序升级方法包括:
步骤S10,接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
本实施例中,光模块程序即控制器MCU程序,光模块程序包含多个子程序,例如DSP固件驱动程序、DSP状态机控制程序、光器件固件驱动程序、光器件启动配置和监测程序、数字电源配置和监测程序、状态告警监测和上报程序等等。以对DSP固件驱动程序进行升级为例,则接收的升级数据包中包含DSP固件驱动程序的新的程序数据以及新的符号表文件数据。其中,新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址,程序数据包括函数、数据结构等。
步骤S20,当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
本实施例中,在收到待升级程序的新的程序数据后,若待升级程序在执行任务,则等待任务执行完成后,待升级程序进入保持状态,在保持状态下,待升级程序不再响应任务指令,并冻结光模块程序的操作系统调度。例如,以待升级程序为DSP固件驱动程序为例,若DSP固件驱动程序在执行任务,则等待任务执行完成后,配置DSP HOLD寄存器,使DSP置于HOLD模式,此时DSP固件驱动程序不再响应任务指令,同时冻结光模块程序的操作系统调度。
步骤S30,暂停或关闭与所述待升级程序相关联的任务;
本实施例中,若与待升级程序有调用关系、依赖关系等相关联的任务在执行,则暂停或关闭这些任务。
步骤S40,将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
本实施例中,在程序编译阶段,便已确定了程序所对应的存储地址区间,在此基础上,可直接将新的程序数据覆盖写入待升级程序所对应的地址区间,即以新的程序数据替换了原先的程序数据。且,在程序编译阶段,通过提取函数名、函数地址、数据结构名、数据结构地址等信息,生成标准格式的符号表文件,然后将符号表文件写入符号表文件所对应的地址区间。后续,当需要对待升级程序的程序数据更新时,基于待升级程序的新的程序数据以及其他子程序的程序数据,生成新的符号表文件,并将新的符号表文件覆盖写入符号表文件所对应的地址区间,即以新的符号表文件数据替换原有的符号表文件数据。其中,“将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间”与“将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间”执行顺序不作限制,可以是先将新的程序数据覆盖写入,再将新的符号表文件数据覆盖写入;或是,先将新的符号表文件数据覆盖写入,再将新的程序数据覆盖写入;或是,同步进行新的符号表文件数据覆盖写入以及新的程序数据覆盖写入。
步骤S50,控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
本实施例中,基于步骤S40,程序数据更新以及符号表文件数据更新的动作已经执行完毕,则控制待升级程序退出保持状态,恢复光模块程序的操作系统调度,并重启步骤S30中暂停或关闭的任务。
本实施例中,接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;暂停或关闭与所述待升级程序相关联的任务;将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。通过本实施例,对光模块程序中的子程序进行升级时,仅需将待升级程序的新的程序数据以及新的符号表文件数据覆盖写入对应的地址区间,无需重启控制器MCU以及对应的器件,从而实现升级期间光模块业务不中断。
进一步地,一实施例中,在步骤S50之后,还包括:
步骤S60,基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
本实施例中,新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址,用于待升级程序基于新的符号表文件数据调用新的程序数据,同样用于其他子程序基于新的符号表文件数据调用其对应的程序数据。其中,程序数据包括函数、数据结构等。运用符号表技术,可以使光模块程序(即控制器MCU程序)的调度执行方式从传统的基于函数、数据结构地址进行调度转变为基于符号表进行调度。传统的基于地址的调度方式,函数和数据结构地址在光模块程序编译阶段就已经固化,光模块程序通过固定的地址去查找调用函数和数据结构。而基于符号表的调度方式,使光模块程序不再直接通过地址查找调用函数和数据结构,而是基于符号表查找函数名或数据结构名,间接确定其地址,从而实现函数和数据结构的调用。传统调度方式和符号表调度方式的对比示例图如图4所示。
进一步地,一实施例中,步骤S60包括:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
本实施例中,光模块程序请求调用指定程序数据时,例如指定函数、数据结构时,基于符号表查找指定函数的函数名、指定数据结构的数据结构名,确定指定函数、数据结构的存储地址,从而基于存储地址实现对指定函数、数据结构的调用。参照图5,图5为本发明光模块程序升级方法一实施例中基于符号表调用函数或数据结构的示意图。
进一步地,一实施例中,在步骤S20之后,还包括:
记录光模块的状态信息;
在步骤S40之后,还包括:
基于所述状态信息,恢复线程的状态机信息。
本实施例中,在步骤S20之后,还需要记录光模块的状态信息,并在符号表文件数据以及待升级程序的程序数据更新完成后,基于记录的状态信息,恢复线程的状态机信息。其中,状态信息包括:外设状态信息、操作系统信息、线程状态机信息、全局变量及控制字段信息。容易理解的是,状态信息所包含的具体内容可以根据实际需要进行扩增或缩减。
参照图6,图6为本发明光模块程序升级方法另一实施例的流程示意图。如图6所示,光模块程序升级方法涉及两个阶段:初始化阶段;热补丁阶段。
其中,初始化阶段包含:
1、符号表初始化:读取并校验符号表文件数据的完整性和版本是否匹配,然后解析符号表文件数据,获取函数名、函数地址、数据结构名、数据结构地址等有效信息,完成符号表管理部件的初始化;
2、模块软件初始化:光模块程序自身的初始化及运行,所有的函数调度和数据结构的引用均基于符号表管理部件进行,使模块初始化正常;
3、基于符号表的程序调度:基于符号表管理部件,启动系统调度,模块进入正常工作状态。
热补丁阶段包含:
1、收到在线升级指令:接收主机升级命令,获取升级信息,启动模块升级任务;
2、接收在线升级数据包:基于标准协议完成数据包的传输和校验,升级数据包包含新的目标程序数据及新的符号表文件数据;
3、目标程序进入保持状态,冻结系统调度。
4、保存当前状态:保存模块当前必要关键信息,如:外设当前状态、操作系统信息、线程状态机信息、必要的全局变量及控制字信息;
5、暂停或关闭与目标程序有关联的任务:暂停或关闭程序中与目标程序有调用关系、依赖关系等相关联的任务;
6、更新目标程序区域数据:根据步骤2接收到的升级数据,将升级数据覆盖写入目标程序所在地址区间,并进行回读校验,实现目标程序区域数据的更新;
7、重新初始化符号表:根据步骤2接收到的升级数据,将新的符号表文件数据写入符号表文件所在的地址区间,并进行回读校验,然后用新的符号表文件数据重新初始化符号表管理部件;
8、重启与目标程序有关联的任务:重新启动步骤5中暂停或关闭的与目标程序有关联的任务;
9、恢复线程状态机信息:根据步骤4保存的模块当前状态信息,如外设当前状态、操作系统信息、线程状态及信息、全局变量和控制字信息等,恢复线程的状态机信息;
10、恢复系统调度:退出保持阶段,恢复操作系统调度,热补丁完成。
参照图7,图7为一实施例中对DSP固件驱动程序进行升级的流程示意图。如图7所示,对DSP固件驱动程序进行升级的流程包括:
1、收到在线升级指令:接收主机升级命令,获取升级信息,启动模块升级任务;
2、接收在线升级数据包:基于标准协议完成数据包的传输和校验,升级数据包包含新的DSP固件驱动程序数据及新的符号表文件数据;
3、等待DSP任务进入就绪态;
4、配置DSP HOLD寄存器,使DSP进入HOLD模式;
5、保存DSP任务及关联任务的当前状态;
6、关闭DSP任务,暂停DSP关联任务;
7、更新DSP固件区域数据;
8、重新初始化符号表;
9、重启DSP任务,恢复DSP关联任务;
10、恢复线程状态机信息;
11、恢复系统调度。
第三方面,本发明实施例还提供一种光模块程序升级装置。
参照图8,图8为本发明光模块程序升级装置一实施例的功能模块示意图。如图8所示,光模块程序升级装置包括:
接收模块10,用于接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
第一处理模块20,用于当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
第二处理模块30,用于暂停或关闭与所述待升级程序相关联的任务;
写入模块40,用于将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
第三处理模块50,用于控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
进一步地,一实施例中,所述光模块程序升级装置还包括调用模块,用于:
基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
进一步地,一实施例中,调用模块,用于:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
进一步地,一实施例中,所述光模块程序升级装置还包括记录模块以及第四处理模块,记录模块,用于:
记录光模块的状态信息;
第四处理模块,用于:
基于所述状态信息,恢复线程的状态机信息。
进一步地,一实施例中,所述状态信息包括:外设状态信息、操作系统信息、线程状态机信息、全局变量及控制字段信息。
其中,上述光模块程序升级装置中各个模块的功能实现与上述光模块程序升级方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
第四方面,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有光模块程序升级程序,其中所述光模块程序升级程序被处理器执行时,实现如上述的光模块程序升级方法的步骤。
其中,光模块程序升级程序被执行时所实现的方法可参照本发明光模块程序升级方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种光模块程序升级方法,其特征在于,所述光模块程序升级方法包括:
接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
暂停或关闭与所述待升级程序相关联的任务;
将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
2.如权利要求1所述的光模块程序升级方法,其特征在于,在所述控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务的步骤之后,还包括:
基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
3.如权利要求2所述的光模块程序升级方法,其特征在于,所述基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用的步骤包括:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
4.如权利要求1所述的光模块程序升级方法,其特征在于,在所述将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间的步骤之后,还包括:
记录光模块的状态信息;
在所述将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间的步骤之后,还包括:
基于所述状态信息,恢复线程的状态机信息。
5.如权利要求4所述的光模块程序升级方法,其特征在于,所述状态信息包括:外设状态信息、操作系统信息、线程状态机信息、全局变量及控制字段信息。
6.一种光模块程序升级装置,其特征在于,所述光模块程序升级装置包括:
接收模块,用于接收升级数据包,所述升级数据包包括待升级程序的新的程序数据以及新的符号表文件数据,所述待升级程序为光模块程序包含的若干子程序中的至少一个子程序,所述新的符号表文件数据包括新的程序数据的数据名和存储地址以及其他子程序的程序数据的数据名和存储地址;
第一处理模块,用于当所述待升级程序进入保持状态,冻结光模块程序的操作系统调度;
第二处理模块,用于暂停或关闭与所述待升级程序相关联的任务;
写入模块,用于将所述新的程序数据覆盖写入所述待升级程序所对应的地址区间,将所述新的符号表文件数据覆盖写入符号表文件所对应的地址区间;
第三处理模块,用于控制所述待升级程序退出所述保持状态,恢复所述光模块程序的操作系统调度,并重启所述任务。
7.如权利要求6所述的光模块程序升级装置,其特征在于,所述光模块程序升级装置还包括调用模块,用于:
基于所述新的符号表文件数据,完成光模块程序对指定程序数据的调用。
8.如权利要求7所述的光模块程序升级装置,其特征在于,所述调用模块,用于:
光模块程序请求调用指定程序数据时,基于所述新的符号表文件数据,查找所述指定程序数据的存储地址,基于所述存储地址完成光模块程序对所述指定程序数据的调用。
9.一种光模块程序升级设备,其特征在于,所述光模块程序升级设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的光模块程序升级程序,其中所述光模块程序升级程序被所述处理器执行时,实现如权利要求1至5中任一项所述的光模块程序升级方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有光模块程序升级程序,其中所述光模块程序升级程序被处理器执行时,实现如权利要求1至5中任一项所述的光模块程序升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110789336.0A CN113641378B (zh) | 2021-07-13 | 2021-07-13 | 光模块程序升级方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110789336.0A CN113641378B (zh) | 2021-07-13 | 2021-07-13 | 光模块程序升级方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641378A true CN113641378A (zh) | 2021-11-12 |
CN113641378B CN113641378B (zh) | 2024-01-26 |
Family
ID=78417217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110789336.0A Active CN113641378B (zh) | 2021-07-13 | 2021-07-13 | 光模块程序升级方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641378B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136770A (zh) * | 2023-04-20 | 2023-05-19 | 烟台东方威思顿电气有限公司 | 基于模块的单片机程序升级方法 |
CN117435258A (zh) * | 2023-12-18 | 2024-01-23 | 美智纵横科技有限责任公司 | 系统加载方法及装置、存储介质、计算机程序产品和芯片 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722384A (zh) * | 2012-05-25 | 2012-10-10 | 深圳市共进电子股份有限公司 | 一种光模块固件在线升级的方法及升级系统 |
CN102855151A (zh) * | 2012-08-21 | 2013-01-02 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
CN103677870A (zh) * | 2012-09-10 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 系统升级方法及采用该方法升级的系统 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106095480A (zh) * | 2016-05-31 | 2016-11-09 | 青岛海信宽带多媒体技术有限公司 | 一种光模块固件升级的方法及装置 |
CN108108174A (zh) * | 2016-11-24 | 2018-06-01 | 青岛海信宽带多媒体技术有限公司 | 光模块及其固件升级的方法 |
CN109002310A (zh) * | 2018-08-07 | 2018-12-14 | 北京云迹科技有限公司 | 固件升级方法 |
CN109802861A (zh) * | 2019-02-12 | 2019-05-24 | 泰瑞创通讯(成都)有限公司 | 一种快速下载光模块固件的方法 |
US20190208244A1 (en) * | 2018-01-04 | 2019-07-04 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling the same |
CN110347412A (zh) * | 2019-06-27 | 2019-10-18 | 中国第一汽车股份有限公司 | 电子控制单元固件升级管理方法、装置、设备和存储介质 |
JP2019208158A (ja) * | 2018-05-30 | 2019-12-05 | 日本電信電話株式会社 | 光トランシーバ |
CN110609695A (zh) * | 2019-09-17 | 2019-12-24 | 青岛海信宽带多媒体技术有限公司 | 一种光模块的固件升级方法,系统及光模块 |
CN111008033A (zh) * | 2019-10-30 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于串口的通用dsp在线升级系统及升级方法 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
WO2020125839A1 (de) * | 2018-12-18 | 2020-06-25 | GRID INVENT gGmbH | Elektronisches element und elektrisch angesteuertes anzeigeelement |
CN112650520A (zh) * | 2020-12-31 | 2021-04-13 | 威胜集团有限公司 | 电表升级方法、系统、智能电表及存储介质 |
CN112667272A (zh) * | 2020-12-31 | 2021-04-16 | 威胜集团有限公司 | 电表升级方法、系统、智能电表及存储介质 |
-
2021
- 2021-07-13 CN CN202110789336.0A patent/CN113641378B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722384A (zh) * | 2012-05-25 | 2012-10-10 | 深圳市共进电子股份有限公司 | 一种光模块固件在线升级的方法及升级系统 |
CN102855151A (zh) * | 2012-08-21 | 2013-01-02 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
US20150154017A1 (en) * | 2012-08-21 | 2015-06-04 | Wuhan Telecommunication Devices Co., Ltd. | In-application upgrade method for optical module firmware not breaking service |
CN103677870A (zh) * | 2012-09-10 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 系统升级方法及采用该方法升级的系统 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN106095480A (zh) * | 2016-05-31 | 2016-11-09 | 青岛海信宽带多媒体技术有限公司 | 一种光模块固件升级的方法及装置 |
CN108108174A (zh) * | 2016-11-24 | 2018-06-01 | 青岛海信宽带多媒体技术有限公司 | 光模块及其固件升级的方法 |
US20190208244A1 (en) * | 2018-01-04 | 2019-07-04 | Samsung Electronics Co., Ltd. | Electronic apparatus and method for controlling the same |
JP2019208158A (ja) * | 2018-05-30 | 2019-12-05 | 日本電信電話株式会社 | 光トランシーバ |
CN109002310A (zh) * | 2018-08-07 | 2018-12-14 | 北京云迹科技有限公司 | 固件升级方法 |
WO2020125839A1 (de) * | 2018-12-18 | 2020-06-25 | GRID INVENT gGmbH | Elektronisches element und elektrisch angesteuertes anzeigeelement |
CN109802861A (zh) * | 2019-02-12 | 2019-05-24 | 泰瑞创通讯(成都)有限公司 | 一种快速下载光模块固件的方法 |
CN110347412A (zh) * | 2019-06-27 | 2019-10-18 | 中国第一汽车股份有限公司 | 电子控制单元固件升级管理方法、装置、设备和存储介质 |
CN110609695A (zh) * | 2019-09-17 | 2019-12-24 | 青岛海信宽带多媒体技术有限公司 | 一种光模块的固件升级方法,系统及光模块 |
CN111008033A (zh) * | 2019-10-30 | 2020-04-14 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于串口的通用dsp在线升级系统及升级方法 |
CN111309364A (zh) * | 2020-05-11 | 2020-06-19 | 深圳市科信通信技术股份有限公司 | 芯片程序的升级方法、装置及存储介质 |
CN112650520A (zh) * | 2020-12-31 | 2021-04-13 | 威胜集团有限公司 | 电表升级方法、系统、智能电表及存储介质 |
CN112667272A (zh) * | 2020-12-31 | 2021-04-16 | 威胜集团有限公司 | 电表升级方法、系统、智能电表及存储介质 |
Non-Patent Citations (1)
Title |
---|
苏友章;周剑扬;郭元章;: "基于通用MCU的智能SFP光模块设计", 福建电脑, no. 03 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116136770A (zh) * | 2023-04-20 | 2023-05-19 | 烟台东方威思顿电气有限公司 | 基于模块的单片机程序升级方法 |
CN116136770B (zh) * | 2023-04-20 | 2023-06-23 | 烟台东方威思顿电气有限公司 | 基于模块的单片机程序升级方法 |
CN117435258A (zh) * | 2023-12-18 | 2024-01-23 | 美智纵横科技有限责任公司 | 系统加载方法及装置、存储介质、计算机程序产品和芯片 |
CN117435258B (zh) * | 2023-12-18 | 2024-03-08 | 美智纵横科技有限责任公司 | 系统加载方法及装置、存储介质、计算机程序产品和芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN113641378B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8286154B2 (en) | Apparatus and method for live loading of version upgrades in a process control environment | |
CN100474247C (zh) | 在计算机服务器系统中更新固件的方法 | |
US8621452B2 (en) | Device driver rollback | |
US6668261B1 (en) | Method of upgrading a program using associated configuration data | |
US8489922B2 (en) | Networked recovery system | |
US9081639B2 (en) | System and method for remotely re-imaging a computer system | |
EP2652599B1 (en) | System reset | |
CN113641378B (zh) | 光模块程序升级方法、装置、设备及可读存储介质 | |
JP2008217530A (ja) | 情報処理装置および設定方法 | |
KR20130127465A (ko) | 고속 컴퓨터 시동 | |
US20110265072A1 (en) | Dynamic Installation of Files for Running Programs | |
CN103544151A (zh) | linux系统中数据处理的方法及系统 | |
JP2014041407A (ja) | 情報処理装置、起動プログラム、および起動方法 | |
KR102434126B1 (ko) | Plc 프로그램 처리 장치 | |
JP2005092708A (ja) | ソフトウェア更新システム及びソフトウェア更新方法並びにコンピュータプログラム | |
JPH10187454A (ja) | Bios書き換え方式 | |
JPH11134204A (ja) | スタック保護装置 | |
JP5157789B2 (ja) | プログラム更新方法及びプログラム更新装置 | |
CN113986358B (zh) | 裸金属实例装机方法、装置及设备 | |
CN115686582A (zh) | 一种电子设备的系统升级方法及装置 | |
JP2000293377A (ja) | 共存環境構築方法及び共存環境構築プログラムを記録した記録媒体 | |
CN114356659A (zh) | 重启方法及装置、终端设备及存储介质 | |
JP4535663B2 (ja) | ステートマシン制御方式およびステートマシン | |
JP2005064709A (ja) | 通信装置 | |
CN116643703A (zh) | 一种数据擦除方法及装置 |
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 |