一种基于CMIS4.0的固件升级方法及装置与流程

文档序号:24983865发布日期:2021-05-07 23:00阅读:845来源:国知局
一种基于CMIS4.0的固件升级方法及装置与流程

本发明涉及光模块技术领域,特别是涉及一种基于cmis4.0的固件升级方法、一种基于cmis4.0的固件升级装置以及一种基于cmis4.0的固件升级系统。



背景技术:

2019年3月8日,多源协议(multisourceagreement,msa)发布最新版针对包含双密度的四通道热插拔光模块(quadsmallform-factorpluggabledoubledensity,qsfp-dd)与四通道热插拔光模块(quadsmallform-factorpluggable,qsfp)在内的可热插拔光模块,通常简称为光模块的通用管理接口规范(commonmanagementinterfacespecificationrev4.0,cmis4.0)。cmis提出光模块需支持数据命令块(commanddatablock,cdb)实现主机对光模块进行信息通信。在cmis4.0中特别提出了,可以实现使用cdb对光模块进行firmwareupgrade,即固件升级。在固件升级中,固件程序可选择需对固件程序进行加密处理,即在可升级文件前插入最大可达112字节的启动命令负载(startcommandpayload)。

在现有技术中,对光模块的固件进行升级时,通常需要更换该固件存储空间内存储的全部代码。而在实际情况中,请参考图1,图1为光模块固件空间分配示意图。参见图1,光模块中的固件程序代码空间分为4个空间:bootloader(引导装载)代码空间,应用程序代码空间,config(配置)数据空间以及固件升级转存代码空间。其中bootloader代码空间,应用程序代码空间,config数据空间中存储的信息均是在工作时所需要的。而在更新过程中,最终要实现的效果就是通过cdb将固件升级转存代码空间的数据搬移到需要的地址空间,最终实现固件升级。但是每次在升级过程中,通常并不需要对固件程序代码空间中的全部代码进行更新,而更新全部代码会使得更新时间较长,更新效率较低。所以如何提供一种更新效率较高的光模块固件升级方法是本领域技术人员急需解决的问题。



技术实现要素:

本发明的目的是提供一种基于cmis4.0的固件升级方法,具有较高的更新效率;本发明还提供了一种基于cmis4.0的固件升级装置以及一种基于cmis4.0的固件升级系统,具有较高的更新效率。

为解决上述技术问题,本发明提供一种基于cmis4.0的固件升级方法,应用于上位机,包括:

获取对应目标光模块的固件升级文件;

提取所述固件升级文件中的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

将所述启动命令负载字节发送至目标光模块,以使所述目标光模块解析所述启动命令负载字节;

当所述目标光模块解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段。

可选的,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

可选的,所述全局信息段还包括固件项目号以及升级密码信息;

所述将所述启动命令负载字节发送至目标光模块,以使所述目标光模块解析所述启动命令负载字节包括:

将所述启动命令负载字节发送至目标光模块,以使所述目标光模块根据所述固件项目号以及所述升级密码信息确定所述固件升级文件与所述目标光模块是否对应;

所述当所述目标光模块解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段包括:

当所述固件升级文件与所述目标光模块相互对应时,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段。

可选的,所述启动命令负载字节的长度不大于112字节。

本发明还提供了一种基于cmis4.0的固件升级装置,应用于上位机,包括:

获取模块:用于获取对应目标光模块的固件升级文件;

提取模块:用于提取所述固件升级文件中的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

字节发送模块:用于将所述启动命令负载字节发送至目标光模块,以使所述目标光模块解析所述启动命令负载字节;

内容发送模块:用于当所述目标光模块解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段。

本发明还提供了一种基于cmis4.0的固件升级方法,应用于目标光模块,包括:

获取由上位机从固件升级文件中提取的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

解析所述启动命令负载字节;

当解析成功之后,通过上位机获取所述固件升级文件的剩余内容;

根据所述启动命令负载字节以及所述固件升级文件的剩余内容更新所述目标字段。

可选的,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

本发明还提供了一种基于cmis4.0的固件升级装置,应用于目标光模块,包括:

字节获取模块:用于获取由上位机从固件升级文件中提取的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

字节解析模块:用于解析所述启动命令负载字节;

剩余内容模块:用于当解析成功之后,通过上位机获取所述固件升级文件的剩余内容;

更新模块:用于根据所述启动命令负载字节以及所述固件升级文件的剩余内容更新所述目标字段。

本发明还提供了一种基于cmis4.0的固件升级系统,包括上位机和目标光模块,所述上位机与所述目标光模块之间通信连接;

所述上位机用于:

获取对应目标光模块的固件升级文件;

提取所述固件升级文件中的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

将所述启动命令负载字节发送至所述目标光模块;

当所述目标光模块解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块;

所述目标光模块用于:

获取由上位机从固件升级文件中提取的启动命令负载字节;

解析所述启动命令负载字节;

当解析成功之后,通过上位机获取所述固件升级文件的剩余内容;

根据所述启动命令负载字节以及所述固件升级文件的剩余内容更新所述目标字段。

可选的,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

本发明所提供的一种基于cmis4.0的固件升级方法,应用于上位机,包括:获取对应目标光模块的固件升级文件;提取固件升级文件中的启动命令负载字节;启动命令负载字节包括全局信息段,boot段,config段和app段,全局信息段记载需要进行升级的目标字段;当目标字段包括boot字段时,boot段记载boot字段的总体信息;当目标字段包括config字段时,config段记载config字段的总体信息;当目标字段包括app字段时,app段记载app字段的总体信息;将启动命令负载字节发送至目标光模块,以使目标光模块解析启动命令负载字节;当目标光模块解析成功后,将固件升级文件的剩余内容发送至目标光模块,以使目标光模块根据启动命令负载字节更新目标字段。

通过在启动命令负载中添加全局信息段,boot段,config段和app段,其中全局信息段包括本次具体需要更新的代码区域,而对应的boot段,config段和app段中记载了本次更新字段的总体信息。从而使得光模块在更新时,具体可以依据该启动命令负载中的本次更新字段的总体信息针对性更新对应代码区域的代码,从而避免更新不必要的代码,从而提升固件更新效率。

本发明还提供了一种基于cmis4.0的固件升级装置以及一种基于cmis4.0的固件升级系统,同样具有上述有益效果,在此不再进行赘述。

附图说明

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

图1为光模块固件空间分配示意图;

图2为本发明实施例所提供的一种基于cmis4.0的固件升级方法的流程图;

图3为固件升级文件的结构示意图;

图4为本发明实施例所提供的一种具体的基于cmis4.0的固件升级方法的流程图;

图5为本发明实施例所提供的一种基于cmis4.0的固件升级装置的结构框图;

图6为本发明实施例所提供的另一种基于cmis4.0的固件升级方法的流程图;

图7为本发明实施例所提供的一种基于cmis4.0的固件升级装置的结构框图;

图8为本发明实施例所提供的一种基于cmis4.0的固件升级系统的结构框图。

具体实施方式

本发明的核心是提供一种基于cmis4.0的固件升级方法。在现有技术中,对光模块的固件进行升级时,通常需要更换该固件存储空间内存储的全部代码。但是每次在升级过程中,通常并不需要对固件程序代码空间中的全部代码进行更新,而更新全部代码会使得更新时间较长,更新效率较低。

而本发明所提供的一种基于cmis4.0的固件升级方法,应用于上位机,包括:获取对应目标光模块的固件升级文件;提取固件升级文件中的启动命令负载字节;启动命令负载字节包括全局信息段,boot段,config段和app段,全局信息段记载需要进行升级的目标字段;当目标字段包括boot字段时,boot段记载boot字段的总体信息;当目标字段包括config字段时,config段记载config字段的总体信息;当目标字段包括app字段时,app段记载app字段的总体信息;将启动命令负载字节发送至目标光模块,以使目标光模块解析启动命令负载字节;当目标光模块解析成功后,将固件升级文件的剩余内容发送至目标光模块,以使目标光模块根据启动命令负载字节更新目标字段。

通过在启动命令负载中添加全局信息段,boot段,config段和app段,其中全局信息段包括本次具体需要更新的代码区域,而对应的boot段,config段和app段中记载了本次更新字段的总体信息。从而使得光模块在更新时,具体可以依据该启动命令负载中的本次更新字段的总体信息针对性更新对应代码区域的代码,从而避免更新不必要的代码,从而提升固件更新效率。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图2以及图3,图2为本发明实施例所提供的一种基于cmis4.0的固件升级方法的流程图;图3为固件升级文件的结构示意图。

本发明实施例所提供的一种基于cmis4.0的固件升级方法具体应用于上位机,而上位机需要与目标光模块,即待升级光模块通信连接。

参见图2,基于cmis4.0的固件升级方法包括:

s101:获取对应目标光模块的固件升级文件。

在本发明实施例中,上位机首先会获取到对应目标光模块的固件升级文件,从而进行对目标光模块固件的升级。

s102:提取固件升级文件中的启动命令负载字节。

在本发明实施例中,所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息。

参见图3,通常情况下,上述启动命令负载字节通常位于固件升级文件的起始位置,即本步骤通常具体为:从固件升级文件中的开头提取启动命令负载字节。上述启动命令负载字节包括的全局信息段需要记载此次需要进行升级的目标字段,该目标字段可以包括boot字段,config字段以及app字段中的任意一个、任意两个或全包括均可,视具体情况而定。

上述固件升级文件中通常需要设置有需更新的boot段代码、需更新的config数据、需更新的app段代码。当然,上述内容需要具体对应上述启动命令负载中所记载的内容,例如若本次只需要更新boot段代码,则只会在固件升级文件中设置启动命令负载以及需更新的boot段代码。

上述boot字段对应光模块固件程序代码空间中的bootloader代码空间、config字段对应config数据空间、app字段对应应用程序代码空间。而上述各个字段的总体信息用于表征对应代码在升级过程中的总体情况,其具体内容将在下述发明实施例中做详细介绍。

s103:将启动命令负载字节发送至目标光模块,以使目标光模块解析启动命令负载字节。

在本步骤中,上位机会将s102中提取的启动命令负载字节发送至目标光模块,而目标光模块会对上述启动命令负载字节进行解析,目标光模块通常需要在本步骤中确定启动命令负载字节所对应的固件升级文件是否为其自身升级所需的文件。有关本步骤的具体内容将在下述发明实施例中做详细介绍,在此不再进行赘述。

s104:当目标光模块解析成功后,将固件升级文件的剩余内容发送至目标光模块,以使目标光模块根据启动命令负载字节更新目标字段。

当目标光模块解析成功后,通常会以指令的形式告知上位机,此时上位机会根据该指令将固件升级文件的剩余内容发送至目标光模块,从而实现将完整的固件升级文件发送至目标光模块,使得目标光模块具体可以根据固件升级文件,尤其是根据启动命令负载字节更新目标字段。

本发明实施例所提供的一种基于cmis4.0的固件升级方法,应用于上位机,包括:获取对应目标光模块的固件升级文件;提取固件升级文件中的启动命令负载字节;启动命令负载字节包括全局信息段,boot段,config段和app段,全局信息段记载需要进行升级的目标字段;当目标字段包括boot字段时,boot段记载boot字段的总体信息;当目标字段包括config字段时,config段记载config字段的总体信息;当目标字段包括app字段时,app段记载app字段的总体信息;将启动命令负载字节发送至目标光模块,以使目标光模块解析启动命令负载字节;当目标光模块解析成功后,将固件升级文件的剩余内容发送至目标光模块,以使目标光模块根据启动命令负载字节更新目标字段。

通过在启动命令负载中添加全局信息段,boot段,config段和app段,其中全局信息段包括本次具体需要更新的代码区域,而对应的boot段,config段和app段中记载了本次更新字段的总体信息。从而使得光模块在更新时,具体可以依据该启动命令负载中的本次更新字段的总体信息针对性更新对应代码区域的代码,从而避免更新不必要的代码,从而提升固件更新效率。

有关本发明所提供的一种基于cmis4.0的固件升级方法的具体内容将在下述发明实施例中做详细介绍。

请参考图4,图4为本发明实施例所提供的一种具体的基于cmis4.0的固件升级方法的流程图。

本发明实施例所提供的一种基于cmis4.0的固件升级方法具体应用于上位机。参见图4,在本发明实施例中,基于cmis4.0的固件升级方法包括:

s201:获取对应目标光模块的固件升级文件。

s202:提取固件升级文件中的启动命令负载字节。

在本发明实施例中,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址。

在下述步骤中,当需要更新目标光模块固件中的bootloader代码时,具体可以依据上述boot段所包括的具体内容指向bootloader代码空间,并从固件升级文件中提取对应的代码进行更新。通常情况下,boot段中还需要包括boot段保留信息,以便后续进行扩展。

在本发明实施例中,所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址。

在下述步骤中,当需要更新目标光模块固件中的config数据时,具体可以依据上述config段所包括的具体内容指向config数据空间,并从固件升级文件中提取对应的代码进行更新。通常情况下config段中还需要包括config段保留信息,以便后续进行扩展。

在本发明实施例中,所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

在下述步骤中,当需要更新目标光模块固件中的应用程序代码时,具体可以依据上述app段所包括的具体内容指向应用程序代码空间,并从固件升级文件中提取对应的代码进行更新。通常情况下app段还需要包括app段保留信息,以便后续进行扩展。

具体的,上述全局信息段可以具体包括有升级指示信息,该升级指示信息具体可以用于记载需要进行升级的目标字段。该升级指示信息的具体内容可以参考下表1:

表1.升级指示信息表

当然,上述升级指示信息的具体内容可以根据实际情况自行设定,在此不做具体限定。

进一步的,在本发明实施例中,上述全局信息段还包括固件项目号以及升级密码信息。其中固件项目号用来区分需要升级的固件所代表的项目,该号码唯一,用来更新正确的固件。升级密码指示每次升级需要输入固定密码,再次确保本次更新的固件为正确的可更新的固件。有关固件项目号以及升级密码信息的具体内容可以根据实际情况自行设定,在此不做具体限定。通常情况下全局信息段还需要包括全局保留信息,以便后续进行扩展。进一步的,启动命令负载字节中还可以设置有保留段信息,以便后续对启动命令负载字节进行扩展。

上述s201至s202的具体内容以在上述s101至s102中做详细介绍,在此不再进行赘述。

s203:将启动命令负载字节发送至目标光模块,以使目标光模块根据固件项目号以及升级密码信息确定固件升级文件与目标光模块是否对应。

在本步骤中,目标光模块具体会根据启动命令负载字节中的固件项目号以及升级密码信息对固件升级文件进行校验,判断该固件升级文件是否与自身相对应。当校验成功时,通常会向上位机发送对应的指令,以便会执行下述步骤。

s204:当固件升级文件与目标光模块相互对应时,将固件升级文件的剩余内容发送至目标光模块,以使目标光模块根据启动命令负载字节更新目标字段。

在本步骤中,当s203中校验成功之后,上位机会将固件升级文件的剩余内容发送至目标光模块,上位机通常会将该固件升级文件的剩余内容分多次发送至目标光模块,每次发送的数据通常不会大于2048bytes。而目标光模块在接收到固件升级文件的剩余内容之后,会依据升级指示信息、以及其对应的boot段和/或config段和/或app段所记载的总体信息,实现定向的对升级指示信息所对应的目标字段进行更新。

具体的,在本发明实施例中,所述启动命令负载字节的长度通常不大于112字节。而对该启动命令负载字节中的各部分内容所占字节在本发明实施例中通常如下表2进行划分:

表2.启动命令负载字节排布表

当然,对于启动命令负载字节各个部分分配的具体长度可以根据实际情况进行设置,在此不做具体限定。

本发明实施例所提供的一种基于cmis4.0的固件升级方法,通过在启动命令负载中添加全局信息段,boot段,config段和app段,其中全局信息段包括本次具体需要更新的代码区域,而对应的boot段,config段和app段中记载了本次更新字段的总体信息。从而使得光模块在更新时,具体可以依据该启动命令负载中的本次更新字段的总体信息针对性更新对应代码区域的代码,从而避免更新不必要的代码,从而提升固件更新效率。

下面对本发明实施例所提供的一种基于cmis4.0的固件升级装置进行介绍,下文描述的基于cmis4.0的固件升级装置与上文描述的基于cmis4.0的固件升级方法可相互对应参照。

本发明实施例所提供的一种基于cmis4.0的固件升级装置具体安装于上位机,而上位机需要与目标光模块通信连接。

请参考图5,图5为本发明实施例所提供的一种基于cmis4.0的固件升级装置的结构框图。

参见图5,在本发明实施例中,基于cmis4.0的固件升级装置可以包括:

获取模块100:用于获取对应目标光模块的固件升级文件。

提取模块200:用于提取所述固件升级文件中的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息。

字节发送模块300:用于将所述启动命令负载字节发送至目标光模块,以使所述目标光模块解析所述启动命令负载字节。

内容发送模块400:用于当所述目标光模块解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段。

作为优选的,在本发明实施例中,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

作为优选的,在本发明实施例中,所述全局信息段还包括固件项目号以及升级密码信息;

所述字节发送模块300具体用于:

将所述启动命令负载字节发送至目标光模块,以使所述目标光模块根据所述固件项目号以及升级密码信息确定所述固件升级文件与所述目标光模块是否对应。

内容发送模块400具体用于:

当所述固件升级文件与所述目标光模块相互对应时,将所述固件升级文件的剩余内容发送至所述目标光模块,以使所述目标光模块根据所述启动命令负载字节更新所述目标字段。

作为优选的,在本发明实施例中,所述启动命令负载字节的长度不大于112字节。

本实施例的基于cmis4.0的固件升级装置用于实现前述的基于cmis4.0的固件升级方法,因此基于cmis4.0的固件升级装置中的具体实施方式可见前文中基于cmis4.0的固件升级方法的实施例部分,例如,获取模块100,提取模块200,字节发送模块300,内容发送模块400,分别用于实现上述基于cmis4.0的固件升级方法中步骤s101至s104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

请参考图6,图6为本发明实施例所提供的另一种基于cmis4.0的固件升级方法的流程图。

本发明实施例所提供的一种基于cmis4.0的固件升级方法具体应用目标光模块,而目标光模块需要与上位机通信连接。

参见图6,基于cmis4.0的固件升级方法包括:

s301:获取由上位机从固件升级文件中提取的启动命令负载字节。

在本发明实施例中,所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息。

具体的,在本发明实施例中,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

具体的,在本发明实施例中,所述全局信息段还包括固件项目号以及升级密码信息。有关启动命令负载字节的具体内容已在上述发明实施例中做详细介绍,在此不再进行赘述。

在本步骤中,目标光模块会获取到启动命令负载字节,以便执行后续步骤。

s302:解析启动命令负载字节。

在本步骤中,目标光模块会对上述启动命令负载字节进行解析,通常需要在本步骤中确定启动命令负载字节所对应的固件升级文件是否为其自身升级所需的文件。具体的,在本步骤中目标光模块可以根据固件项目号以及升级密码信息确定固件升级文件与目标光模块是否对应。之后当固件升级文件与目标光模块相互对应之后,才会执行下述步骤。

s303:当解析成功之后,通过上位机获取固件升级文件的剩余内容。

在本步骤中,当目标光模块解析成功后,通常会以指令的形式告知上位机,此时上位机会根据该指令将固件升级文件的剩余内容发送至目标光模块,从而实现将完整的固件升级文件发送至目标光模块。

具体的,当全局信息段还包括固件项目号以及升级密码信息时,本步骤通常具体为:当固件升级文件与目标光模块相互对应时,通过上位机获取固件升级文件的剩余内容。

s304:根据启动命令负载字节以及固件升级文件的剩余内容更新所述目标字段。

在本步骤中,目标光模块具体可以根据固件升级文件,尤其是根据启动命令负载字节更新目标字段。具体的,在本步骤中目标光模块会依据升级指示信息、以及其对应的boot段和/或config段和/或app段所记载的总体信息,实现定向的对升级指示信息所对应的目标字段进行更新。

本发明实施例所提供的一种基于cmis4.0的固件升级方法,通过在启动命令负载中添加全局信息段,boot段,config段和app段,其中全局信息段包括本次具体需要更新的代码区域,而对应的boot段,config段和app段中记载了本次更新字段的总体信息。从而使得光模块在更新时,具体可以依据该启动命令负载中的本次更新字段的总体信息针对性更新对应代码区域的代码,从而避免更新不必要的代码,从而提升固件更新效率。

下面对本发明实施例所提供的一种基于cmis4.0的固件升级装置进行介绍,下文描述的基于cmis4.0的固件升级装置与上文描述的基于cmis4.0的固件升级方法可相互对应参照。

本发明实施例所提供的一种基于cmis4.0的固件升级装置具体安装于目标光模块,而目标光模块需要与上位机通信连接。

请参考图7,图7为本发明实施例所提供的一种基于cmis4.0的固件升级装置的结构框图。

参见图7,在本发明实施例中,基于cmis4.0的固件升级装置可以包括:

字节获取模块500:用于获取由上位机从固件升级文件中提取的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息。

字节解析模块600:用于解析所述启动命令负载字节。

剩余内容模块700:用于当解析成功之后,通过上位机获取所述固件升级文件的剩余内容。

更新模块800:用于根据所述启动命令负载字节以及所述固件升级文件的剩余内容更新所述目标字段。

作为优选的,在本发明实施例中,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

作为优选的,在本发明实施例中,所述全局信息段还包括固件项目号以及升级密码信息;

所述字节解析模块600具体用于:

根据所述固件项目号以及升级密码信息确定所述固件升级文件与所述目标光模块是否对应。

所述剩余内容模块700具体用于:

当所述固件升级文件与所述目标光模块相互对应之后,通过上位机获取所述固件升级文件的剩余内容。

作为优选的,在本发明实施例中,所述启动命令负载字节的长度不大于112字节。

本实施例的基于cmis4.0的固件升级装置用于实现前述的基于cmis4.0的固件升级方法,因此基于cmis4.0的固件升级装置中的具体实施方式可见前文中基于cmis4.0的固件升级方法的实施例部分,例如,字节获取模块500,字节解析模块600,剩余内容模块700,更新模块800,分别用于实现上述基于cmis4.0的固件升级方法中步骤s301至s304,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

下面对本发明实施例所提供的一种基于cmis4.0的固件升级系统进行介绍,下文描述的基于cmis4.0的固件升级系统与上文描述的基于cmis4.0的固件升级方法以及基于cmis4.0的固件升级装置可相互对应参照。

请参考图8,图8为本发明实施例所提供的一种基于cmis4.0的固件升级系统的结构框图。

参见图8,在本发明实施例中,基于cmis4.0的固件升级系统,包括上位机11和目标光模块12,所述上位机11与所述目标光模块12之间通信连接;

所述上位机11用于:

获取对应目标光模块12的固件升级文件;

提取所述固件升级文件中的启动命令负载字节;所述启动命令负载字节包括全局信息段,boot段,config段和app段,所述全局信息段记载需要进行升级的目标字段;当所述目标字段包括boot字段时,所述boot段记载boot字段的总体信息;当所述目标字段包括config字段时,所述config段记载config字段的总体信息;当所述目标字段包括app字段时,所述app段记载app字段的总体信息;

将所述启动命令负载字节发送至所述目标光模块12;

当所述目标光模块12解析成功后,将所述固件升级文件的剩余内容发送至所述目标光模块12;

所述目标光模块12用于:

获取由上位机11从固件升级文件中提取的启动命令负载字节;

解析所述启动命令负载字节;

当解析成功之后,通过上位机11获取所述固件升级文件的剩余内容;

根据所述启动命令负载字节以及所述固件升级文件的剩余内容更新所述目标字段。

作为优选的,在本发明实施例中,所述boot段包括bootloader代码所占字节长度,bootloader代码全部内容的校验和,bootloader代码在升级文件的偏移地址,以及bootloader代码在芯片内应该存放的偏移地址;

所述config段包括config数据所占字节长度,config数据全部内容的校验和,config数据在升级文件的偏移地址,以及config数据在芯片内应该存放的偏移地址;

所述app段包括app代码所占字节长度,app代码全部内容的校验和,app代码在升级文件的偏移地址,以及app代码在芯片内应该存放的偏移地址。

作为优选的,在本发明实施例中,所述全局信息段还包括固件项目号以及升级密码信息;

所述目标光模块具体用于:

根据所述固件项目号以及升级密码信息确定所述固件升级文件与所述目标光模块是否对应

当所述固件升级文件与所述目标光模块相互对应之后,通过上位机获取所述固件升级文件的剩余内容。

作为优选的,在本发明实施例中,所述启动命令负载字节的长度不大于112字节。

本实施例的基于cmis4.0的固件升级系统用于实现前述的基于cmis4.0的固件升级方法,因此基于cmis4.0的固件升级系统中的具体实施方式可见前文中基于cmis4.0的固件升级方法的实施例部分,其中上位机11与目标光模块12所具体执行的步骤已在上述发明实施例中进行介绍,在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种基于cmis4.0的固件升级方法、一种基于cmis4.0的固件升级装置以及一种基于cmis4.0的固件升级系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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