多固件升级方法、系统及可读存储介质与流程

文档序号:12034386阅读:281来源:国知局
多固件升级方法、系统及可读存储介质与流程

本发明涉及网络技术领域,尤其涉及多固件升级方法、系统及可读存储介质。



背景技术:

现有的终端需要软件(固件)支持,并且,这些软件(固件)也可能根据不同的业务需求,随时需要进行升级。而随着不同终端在各行各业的使用越来越广泛,终端的软件(固件)的升级也越来越频繁。

终端例如,soundbar产品都带有多种可编程固件,比如mcu、bt、dsp以及wireless等等。现在对固件升级通常都需要让多个固件支持usb升级功能,常用的方法是将多个固件进行打包压缩,然后在升级程序中再对其解压后逐个升级,或者是在u盘中放置多个升级固件,由程序根据固件名来逐个读入并进行升级。上述方法的缺点是要在mcu上设计复杂的程序来分解或读取不同设备的升级固件,不但耗费mcu资源,也会使得升级过程变慢,而且固件升级操作麻烦。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种多固件升级方法、系统及可读存储介质,旨在提高多固件的升级效率。

为实现上述目的,本发明提供一种多固件升级方法,所述多固件升级方法应用于终端;

所述多固件的升级方法包括以下步骤:

当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;

对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;

将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。

可选地,所述将所述设备信息和固件信息导入终端的结构体数组中的步骤包括:

将bin升级文件中的设备信息与终端中存储的设备信息进行比对,判断设备bin升级文件中信息是否正确;

若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组。

可选地,所述若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组的步骤包括:

根据bin升级文件中的文件目录信息,确定所有待升级固件的固件数量和固件标识;

根据固件标识将对应固件数量的固件信息导入对应结构体,并将全部结构体组成结构体数组。

可选地,所述将所述设备信息和固件信息导入终端的结构体数组中的步骤之后包括:

根据固件标识遍历结构体数组,并根据结构体中的固件信息判断是否能对固件进行升级;

若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级。

可选地,所述若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级的步骤包括:

若能对固件进行升级,则根据固件信息中的校验信息对固件进行校验,以根据校验信息判断是否能进行固件升级;

若能进行固件升级,则执行升级程序将固件进行升级。

为实现上述目的,本发明提供一种多固件升级方法,所述多固件升级方法应用于服务器;

所述多固件升级方法包括以下步骤:

当检测到多固件升级的指令时,确定终端的设备信息和终端中所有待升级固件的固件信息;

将设备信息与固件信息生成bin升级文件并发送至终端,以供终端对所有待升级固件进行升级。

可选地,所述固件信息包含标识信息,所述将设备信息与固件信息生成bin升级文件的步骤包括:

将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目录;

将依次排列的固件信息与文件目录合并生成对应bin升级文件。

此外,为实现上述目的,本发明还提供一种多固件升级系统,所述多固件升级系统包括通信连接的服务器和终端;其中:

服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;

当终端检测到多固件升级的指令时,终端获取服务器发送的bin升级文件;

终端对bin升级文件进行解析,终端获取bin升级文件中的设备信息和固件信息;

终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。

可选地,所述多固件升级系统包括通信连接的服务器和终端;其中:

当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息;

服务器将设备信息与固件信息生成bin升级文件并发送至终端;

终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。

此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有多固件升级程序,所述多固件升级程序被处理器执行时实现上述的多固件升级方法的步骤。

本发明提供所述多固件升级方法应用于终端;所述多固件的升级方法包括以下步骤:当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。本发明终端获取服务器发送的由多个待升级固件的固件信息生成的bin升级文件,并将bin升级文件的信息导入终端结构体数组中,基于结构体数组中的固件信息,对应将多个固件进行升级,将多个固件(firmware)打包成bin升级文件并拆包升级的方法。需要以固定的格式将多个固件(firmware)进行打包,然后在升级时再按此格式解析打包好的bin升级文件,最后依次对各固件进行升级。此方法只需少量bin升级文件即可完成多所有设备的升级,其打包方法简单、实用,拆包升级过程快捷、方便,能有效节省mcu(微程序控制器)资源并提高开发效率。本方法可用于包含多个可编程设备的电子产品。通过将多个固件信息打包成少量bin升级文件,提高了终端多个固件的升级效率,使多固件信息升级更加便捷。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明实施例服务器和终端具体场景示意图;

图3为本发明多固件升级方法第一实施例的流程示意图;

图4为图3中步骤s30的细化流程示意图;

图5为本发明多固件升级方法第二实施例的流程示意图;

图6为本发明多固件升级方法第三实施例的流程示意图;

图7为本发明多固件升级方法中bin升级文件解析示意图;

图8为本发明多固件升级方法中多固件升级流程示意图;

图9为本发明多固件升级方法中bin升级文件的文件目录示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

固件(firmware)就是写入erom(可擦写只读存储器)或eeprom(电可擦可编程只读存储器)中的程序。固件是指设备内部保存的设备"驱动程序",通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。固件担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。

bin升级文件即二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表明它是binary格式。比如虚拟光驱文件常用".bin"作为后缀,但并不意味着所有bin升级文件都是虚拟光驱文件。二进制文件,其用途依系统或应用而定。

本发明是一种将多个固件(firmware)打包成bin升级文件并拆包升级的方法。(本发明中可以根据待升级固件的数量确定生成bin升级文件的数量,具体地,若待升级固件数量较多,在遍历结构体数组时可能存在程序运行缓慢的情况,因而需要保证合适的资源分布,即,若存在10个待升级固件,若直接将10个待升级固件打包生成一个bin升级文件,则可能在解析的时候会慢,因而可根据固件标识对应地生成两个bin升级文件)需要以固定的格式将多个固件(firmware)进行打包,然后在升级时再按此格式解析打包好的bin升级文件,正确拆包后依次对各设备进行升级。本发明是一种对同一产品中多个设备进行升级的方法,升级时只需提供对应的bin升级文件,能有效节省mcu资源并提高开发效率。

本发明中的多固件利用多固件升级系统包括:服务器和终端,服务器完成各固件(firmware)打包,终端完成bin升级文件的解析和升级。

1).服务器将多个固件(firmware)进行打包,打包方法是将所需打包的firmware按其各自的id编号以递增的顺序合并在一起,并插入头信息合并成对应bin升级文件。

2).终端升级时读取文件目录,判断是否需要升级,然后根据固件数量count读取各固件的文件目录,并将解析出来的各固件信息依照固件的标识信息(id)存入各自的结构体变量中,所有结构体变量组成结构体数组。解析流程图如图7。

3).终端遍历所有固件的结构体变量,根据各固件的结构体变量中的信息确定该固件是否需要升级,若需要升级则读取其固件并校验,然后执行该设备的升级程序,若无需升级则跳过此设备。多设备升级方法流程图如图8.

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是pc,也可以是智能手机、平板电脑、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面3)播放器、便携计算机等具有显示功能的可移动式终端设备。

如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,终端还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多固件升级程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;所述多固件升级方法应用于终端,而处理器1001可以用于调用存储器1005中存储的多固件升级程序,并执行以下操作:

当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;

对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;

将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。

进一步地,处理器1001可以调用存储器1005中存储的多固件升级程序,还执行以下操作:

所述将所述设备信息和固件信息导入终端的结构体数组中的步骤包括:

将bin升级文件中的设备信息与终端中存储的设备信息进行比对,判断设备bin升级文件中信息是否正确;

若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组。

进一步地,处理器1001可以调用存储器1005中存储的多固件升级程序,还执行以下操作:

所述若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组的步骤包括:

根据bin升级文件中的文件目录信息,确定所有待升级固件的固件数量和固件标识;

根据固件标识将对应固件数量的固件信息导入对应结构体,并将全部结构体组成结构体数组。

进一步地,处理器1001可以调用存储器1005中存储的多固件升级程序,还执行以下操作:

所述将所述设备信息和固件信息导入终端的结构体数组中的步骤之后包括:

根据固件标识遍历结构体数组,并根据结构体中的固件信息判断是否能对固件进行升级;

若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级。

进一步地,处理器1001可以调用存储器1005中存储的多固件升级程序,还执行以下操作:

所述若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级的步骤包括:

若能对固件进行升级,则根据固件信息中的校验信息对固件进行校验,以根据校验信息判断是否能进行固件升级;

若能进行固件升级,则执行升级程序将固件进行升级。

参考图2,本发明实施例服务器和终端连接具体场景示意图,本发明中的服务器可以是pc,也可以是智能手机、平板电脑、便携计算机等具有显示功能的可移动式终端设备。

如图2所示,该服务器可以包括:处理器2001,例如cpu,存储器2002,而处理器2001可以用于调用存储器2002中存储的多固件升级程序,并执行以下操作:

当检测到多固件升级的指令时,确定终端的设备信息和终端中所有待升级固件的固件信息;

将设备信息与固件信息生成bin升级文件并发送至终端,以供终端对所有待升级固件进行升级。

进一步地,处理器2001可以调用存储器2002中存储的多固件升级程序,还执行以下操作:

所述固件信息包含标识信息,所述将设备信息与固件信息生成bin升级文件的步骤包括:

将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目录;

将依次排列的固件信息与文件目录合并生成对应bin升级文件。

参照图3,本发明多固件升级方法第一实施例中,所述多固件升级方法包括:

步骤s10,当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件。

终端(终端可叫做产品端或者设备端)在终端检测到多个固件升级指令时,终端获取服务器根据终端的设备信息(设备信息包括设备名称、设备标识、设备版本号等信息)和终端中所有待升级固件的固件信息(固件信息包含固件的标识信息,固件的描述信息、固件的版本信息、固件的校验信息、固件的大小信息、固件的存储位置信息)生成对应的bin升级文件,(bin其中文意思即是:二进制里面存放的一般是可执行的二进制文件bin有多种含义,包括虚拟光驱格式bin,用于科研计算的数据格式为bin格式。另外ftp在传送文件时分为asc和bin两种格式,只有文字文件,例如html文件,使用asc,其他的通常使用bin格式,例如,图像文件、压缩文件、可执行文件等等),即,bin升级文件的数目可以根据固件的大小和固件的数量确定,即bin升级文件的数目若待升级固件数量为10个,bin升级文件的数量可以是2个、3个等,以将获取到bin升级文件进行解析。

步骤s20,对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息。

终端将获取到的bin升级进行解析,即,终端将获取到的对应的bin升级文件进行解析,确定bin升级文件中的终端的设备信息和终端中包含的多个待升级的固件信息,bin升级文件中包含一个文件目录,文件目录中包含升级的终端的设备信息和多个待升级固件信息(bin升级文件中包含终端的设备信息和终端中包含的待升级的多个固件信息,终端可以是:soundbar产品(这里的终端的设备信息是soundbar产品的产品名称等),待升级的固件信息可以是都带有多种可编程固件(firmware),比如,mcu、bt、dsp以及wireless等;终端解析bin升级文件确定各固件的标识信息(id)(fwid)编号,比如:mcu(0)、bt(1)、dsp(2)、wirelesstx(3)、wirelessrx(4)、hdmi(5)等,并对应获取待升级固件的版本信息,大小信息,校验信息和其他信息)。

步骤s30,将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。

需要补充说明的是在终端上定义一个结构体数组,将待升级的多个固件信息对应的保存至结构体数组中的结构体中,即,结构体可以是指有定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元,为了能在程序中使用结构类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据,可以采取以下3种方法定义结构体类型变量:(1)先声明结构体类型再定义变量名、(2)在声明类型的同时定义变量、(3)直接定义结构类型变量,在机构体进行数据导入时需要和其它类型变量一样,对结构体变量可以在定义时指定初始值;结构体变量是指一个结构体变量中可以存放一组数据(如固件的版本号,大小,校验信息等数据)。如果有10个固件的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数据值型数组不同之处在于每个数组元素都一个结构体类型的数据,它们分别包括各个成员(分量)项。定义结构体数组和定义结构体变量的方法相仿,只需说明其为数组即可,与其它类型数组一样,对结构体数组可以初始化,即先声明结构体类型,然后定义数组为该结构体类型,在定义数组时初始化。

具体地,将所述设备信息和固件信息导入终端的结构体数组中,使终端根据导入结构体数组中的终端的设备信息,首先确定终端的设备信息是否正确,在终端的设备信息正确时,再对应确定终端中包含的多个待升级的固件信息是否正确,是否可以对待升级固件信息升级,即,终端遍历结构体数组中所有结构体变量中,对多个固件进行升级。

在本实施例中当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。本发明终端利用服务器将多个固件(firmware)打包成对应bin升级文件,终端获取bin升级文件并拆包升级的方法。需要以固定的格式将多个固件(firmware)进行打包,然后在升级时再按此格式解析打包好的bin升级文件,最后依次对各设备进行升级。此方法只需少量的bin升级文件即可完成多所有固件的升级,其打包方法简单、实用,拆包升级过程快捷、方便,能有效节省mcu资源并提高开发效率。以此同时本方法可用于包含多个可编程固件的电子产品。通过将多个固件信息打包成少量bin升级文件,提高了终端多个固件的升级效率,使多固件信息升级更加便捷。

参照图4,在本多固件升级方法的实施例中步骤s30包括:

步骤s31,将bin升级文件中的设备信息与终端中存储的设备信息进行比对,判断设备bin升级文件中信息是否正确。

终端将bin升级文件进行解析,根据bin升级文件中的文件目录信息,确定待升级的固件数量和固件标识,即,bin升级文件中包含文件目录和对应的多个固件的详细信息,终端首先获取bin升级文件中的终端的设备信息与对待升级的多个固件信息。终端将bin升级文件中的设备信息与终端中存储的设备信息进行比对,即,终端在对多个待升级固件升级前,首先确定多个固件对应的终端的设备信息是否正确(即,确定bin升级文件中的设备信息与终端的设备信息是否相同,对应的版本信息,终端设备的名称编号是否一致),根据bin升级文件的文件目录确定设备信息是否正确。

步骤s32,若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组。

在终端确定bin升级文件中的终端的设备信息正确时,根据bin升级文件中的文件目录信息(文件目录信息包括固件数量、固件标识、固件版本号、固件校验码和固件信息存放的起始位置等),终端可首先确定待升级的固件数目,并将待升级的固件数据赋值到结构体数组中,如图7所示,终端读取bin升级文件的文件目录信息,判断是否需要升级,然后根据固件数量count读取各固件的头信息,并将解析出来的各固件信息依照固件的标识信息(id)存入各自的结构体变量中,所有结构体变量组成结构体数组。最终实现将多个待升级固件信息导入对应结构体,并将全部结构体组成结构体数组。

在本实施例中将bin升级文件中的设备信息与终端中存储的设备信息进行比对,判断设备bin升级文件中信息是否正确;若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组。通过对bin升级文件的解析将bin升级文件中的固件信息导入至终端的结构体数组中,以实现高效地对终端的多个固件进行升级。

参照图5,在本发明多固件升级方法的第二实施例中,所述多固件升级方法还包括:

步骤s40,根据固件标识遍历结构体数组,并根据结构体中的固件信息判断是否能对固件进行升级。

终端根据固件标识遍历结构体数组,终端获取对应的结构体中的待升级固件信息(这里的固件信息可以是固件的版本信息、固件的校验信息等),判断是否能对待升级的固件进行升级,即,若现有的终端固件的版本较高,则不能对待升级固件进行升级。

步骤s50,若能对固件进行升级,则根据固件信息中的校验信息对固件进行校验,以根据校验信息判断是否能进行固件升级。

若能对待升级固件进行升级,则对该固件进行校验,即,在确定终端的设备信息正确后,并通过固件的版本信息确定固件的版本可以进行升级后,进一步确定固件的其他详细信息是否正确,对固件信息进行校验。

步骤s60,若能进行固件升级,则执行升级程序将固件进行升级。

终端判断校验信息是否正确,在固件的校验信息正确时(终端确定校验信息是为了确定导入结构体的固件信息正确,防止其他固件信息错误导致不能进行固件升级的情况),则终端读取结构体待升级固件信息并将固件进行升级。具体地,如图8所示,遍历所有固件的结构体变量,根据各固件的结构体变量中的信息确定该固件是否需要升级,若需要升级则读取其固件并校验,然后执行该固件的升级程序,若无需升级则跳过此固件。

在本实施例中根据固件标识遍历结构体数组,并根据结构体中的固件信息判断是否能对固件进行升级;若能对固件进行升级,则根据固件信息中的校验信息对固件进行校验,以根据校验信息判断是否能进行固件升级;若能进行固件升级,则执行升级程序将固件进行升级。通过遍历结构体数组中的固件信息对结构体中的多个固件进行升级,加快了多固件升级的效率。

参照图6,本发明多固件升级方法第三实施例中,所述多固件升级方法包括:

步骤s70,当检测到多固件升级的指令时,确定终端的设备信息和终端中所有待升级固件的固件信息。

在服务器检测到对终端的多个固件进行升级的指令时(多固件升级的指令:可由用户触发,也可以是由终端发送至服务器),服务器首先确定需要升级终端的设备信息(设备信息可以包括:设备的名称、设备的生产批次。设备标识、设备版本等其他信息)和终端中所有待升级固件的固件信息(固件信息:包括固件的标识信息、固件的大小、固件对应的存储地址、固件的版本信息、固件的检验信息等)。

步骤s80,将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目录。

服务器需要将终端多个待升级固件的固件信息进行升级,服务器根据固件的大小信息,待升级固件的数量,确定生成bin升级文件的个数(结合bin升级文件的解析导入速度,例如10个待升级固件,若将10个待升级固件生成一个bin升级文件,生成文件和解析文件进行升级的总时间为90秒;若将10个待升级固件生成两个bin升级文件,生成文件和解析文件进行升级的总时间为80秒;若将10个待升级固件生成三个bin升级文件,生成文件和解析文件进行升级的总时间为60秒;若将10个待升级固件生成四个bin升级文件,生成文件和解析文件进行升级的总时间为70秒,若将10个待升级固件生成五个bin升级文件,生成文件和解析文件进行升级的总时间为80秒等,则可以对应生成3个bin升级文件)具体地,将多个固件(firmware)进行打包生成bin升级文件的步骤,打包方法是将所需打包的firmware按其各自的id编号以递增的顺序合并在一起,并插入头信息合并成一个bin升级文件。

打包格式如下:①.确定各固件的标识信息(id)(fwid)编号,比如:mcu(0)、bt(1)、dsp(2)、wirelesstx(3)、wirelessrx(4)、hdmi(5)等;②.升级bin升级文件目录信息描述:公共头信息占32个字节,各firmware头占32字节,若打包了n个firmware,则头信息共占(n+1)*32字节。

bin升级文件的文件目录格式如图9所示。

在bin升级文件中文件目录信息当中,有16个字节的productinfo用来表示该bin升级文件对应终端的信息,还包含4字节得firmware数量(count),4字节的升级文件版本信息(version),4字节的bin升级文件大小(size)和4字节的校验和(checksum,取32位二进制数总和的补码加1);各固件的头信息则包括4字节的固件的标识信息(id)(fwid),4字节的固件版本号,4字节的固件大小,4字节的校验和及4字节的起始地址,各固件头32字节对齐,剩余12字节可用于拓展保存各固件的私有信息。③.各固件依次排列合并,起始地址按16字节对齐,不足之处补零。

步骤s90,将依次排列的固件信息与文件目录合并生成对应bin升级文件。

服务器将依次排列的多个待升级固件信息与文件目录合并生成bin升级文件,当终端对多个固件进行升级时,终端可以获取服务器生成的bin升级文件,对bin升级文件进行解析,最终对多个固件进行升级。

在本实施例中当当检测到多固件升级的指令时,确定终端的设备信息和终端中所有待升级固件的固件信息,将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目录;将依次排列的固件信息与文件目录合并生成对应bin升级文件;将依次排列的多个待升级固件信息与文件目录合并生成bin升级文件。通过服务器将终端的多个待升级固件信息打包成bin升级文件,在终端固件升级时,终端可获取对应的bin升级文件对多个固件进行升级,加快了固件升级的效率。

此外,在本发明多固件升级系统的一实施例中,所述多固件升级系统包括通信连接的服务器和终端;其中:

服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件。

在服务器首先确定需要升级终端的设备信息(设备信息可以包括:设备的名称、设备的生产批次。设备标识、设备版本等其他信息)和终端中所有待升级固件的固件信息(固件信息:包括固件的标识信息、固件的大小、固件对应的存储地址、固件的版本信息、固件的检验信息等)。

当终端检测到多固件升级的指令时,终端获取服务器发送的bin升级文件。

终端(终端可叫做产品端或者设备端)在终端检测到多个固件升级指令时,终端获取服务器根据终端的设备信息(设备信息包括设备名称、设备标识、设备版本号等信息)和终端中所有待升级固件的固件信息(固件信息包含固件的标识信息,固件的描述信息、固件的版本信息、固件的校验信息、固件的大小信息、固件的存储位置信息)生成对应的bin升级文件,(bin其中文意思即是:二进制里面存放的一般是可执行的二进制文件bin有多种含义,包括虚拟光驱格式bin,用于科研计算的数据格式为bin格式。另外ftp在传送文件时分为asc和bin两种格式,只有文字文件,例如html文件,使用asc,其他的通常使用bin格式,例如,图像文件、压缩文件、可执行文件等等),即,bin升级文件的数目可以根据固件的大小和固件的数量确定,即bin升级文件的数目若待升级固件数量为10个,bin升级文件的数量可以是2个、3个等,以将获取到bin升级文件进行解析。

终端对bin升级文件进行解析,终端获取bin升级文件中的设备信息和固件信息。

终端将获取到的bin升级进行解析,即,终端将获取到的对应的bin升级文件进行解析,确定bin升级文件中的终端的设备信息和终端中包含的多个待升级的固件信息,bin升级文件中包含一个文件目录,文件目录中包含升级的终端的设备信息和多个待升级固件信息(bin升级文件中包含终端的设备信息和终端中包含的待升级的多个固件信息,终端可以是:soundbar产品(这里的终端的设备信息是soundbar产品的产品名称等),待升级的固件信息可以是都带有多种可编程固件(firmware),比如,mcu、bt、dsp以及wireless等;终端解析bin升级文件确定各固件的标识信息(id)(fwid)编号,比如:mcu(0)、bt(1)、dsp(2)、wirelesstx(3)、wirelessrx(4)、hdmi(5)等,并对应获取待升级固件的版本信息,大小信息,校验信息和其他信息)。

终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。

终端将所述设备信息和固件信息导入终端的结构体数组中,使终端根据导入结构体数组中的终端的设备信息,首先确定终端的设备信息是否正确,在终端的设备信息正确时,再对应确定终端中包含的多个待升级的固件信息是否正确,是否可以对待升级固件信息升级,即,终端遍历结构体数组中所有结构体变量中,对多个固件进行升级。

在本实施例中多固件升级系统中:服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;当终端检测到多固件升级的指令时,终端获取服务器发送的bin升级文件;终端对bin升级文件进行解析,终端获取bin升级文件中的设备信息和固件信息;终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。少量的bin升级文件即可完成多所有固件的升级,其打包方法简单、实用,拆包升级过程快捷、方便,能有效节省mcu资源并提高开发效率。以此同时本方法可用于包含多个可编程固件的电子产品。通过将多个固件信息打包成少量bin升级文件,提高了终端多个固件的升级效率,使多固件信息升级更加便捷。

此外,在本发明多固件升级系统的另一实施例中,所述多固件升级系统包括通信连接的服务器和终端;其中:

当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息。

在服务器检测到对终端的多个固件进行升级的指令时(多固件升级的指令:可由用户触发,也可以是由终端发送至服务器),服务器首先确定需要升级终端的设备信息(设备信息可以包括:设备的名称、设备的生产批次。设备标识、设备版本等其他信息)和终端中所有待升级固件的固件信息(固件信息:包括固件的标识信息、固件的大小、固件对应的存储地址、固件的版本信息、固件的检验信息等)。

服务器将设备信息与固件信息生成bin升级文件并发送至终端;

服务器将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目。将依次排列的多个待升级固件信息与文件目录合并生成bin升级文件,当终端对多个固件进行升级时,终端可以获取服务器生成的bin升级文件,对bin升级文件进行解析,最终对多个固件进行升级。

终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。

终端获取服务器发送的bin升级文件,解析bin升级文件中的固件信息,对多个待升级固件进行升级。

在本实施例中当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息;服务器将设备信息与固件信息生成bin升级文件并发送至终端;终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。通过服务器将终端的多个待升级固件信息打包成bin升级文件,在终端固件升级时,终端可获取对应的bin升级文件对多个固件进行升级,加快了固件升级的效率。

本发明还提供一种可读存储介质。

本发明可读存储介质上存储有多固件升级程序,所述多固件升级程序被处理器执行时实现如上述多固件升级方法的步骤。

其中,多固件升级程序被执行时所实现的方法可参照本发明多固件升级方法的各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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