CN107291497B - 多固件升级方法、系统及可读存储介质 - Google Patents
多固件升级方法、系统及可读存储介质 Download PDFInfo
- Publication number
- CN107291497B CN107291497B CN201710430313.4A CN201710430313A CN107291497B CN 107291497 B CN107291497 B CN 107291497B CN 201710430313 A CN201710430313 A CN 201710430313A CN 107291497 B CN107291497 B CN 107291497B
- Authority
- CN
- China
- Prior art keywords
- firmware
- information
- terminal
- bin
- upgraded
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种多固件升级方法,当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。本发明还对应公开了一种多固件升级系统和可读存储介质。通过将多个待升级固件信息打包成对应bin升级文件,使终端的多个固件升级更加便捷高效。
Description
技术领域
本发明涉及网络技术领域,尤其涉及多固件升级方法、系统及可读存储介质。
背景技术
现有的终端需要软件(固件)支持,并且,这些软件(固件)也可能根据不同的业务需求,随时需要进行升级。而随着不同终端在各行各业的使用越来越广泛,终端的软件(固件)的升级也越来越频繁。
终端例如,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(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、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)(FW ID)编号,比如:MCU(0)、BT(1)、DSP(2)、Wireless TX(3)、Wireless RX(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)(FW ID)编号,比如:MCU(0)、BT(1)、DSP(2)、Wireless TX(3)、Wireless RX(4)、HDMI(5)等;②.升级bin升级文件目录信息描述:公共头信息占32个字节,各Firmware头占32字节,若打包了n个Firmware,则头信息共占(n+1)*32字节。
bin升级文件的文件目录格式如图9所示。
在bin升级文件中文件目录信息当中,有16个字节的Product Info用来表示该bin升级文件对应终端的信息,还包含4字节得Firmware数量(Count),4字节的升级文件版本信息(Version),4字节的bin升级文件大小(Size)和4字节的校验和(Checksum,取32位二进制数总和的补码加1);各固件的头信息则包括4字节的固件的标识信息(ID)(FW ID),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)(FW ID)编号,比如:MCU(0)、BT(1)、DSP(2)、Wireless TX(3)、Wireless RX(4)、HDMI(5)等,并对应获取待升级固件的版本信息,大小信息,校验信息和其他信息)。
终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。
终端将所述设备信息和固件信息导入终端的结构体数组中,使终端根据导入结构体数组中的终端的设备信息,首先确定终端的设备信息是否正确,在终端的设备信息正确时,再对应确定终端中包含的多个待升级的固件信息是否正确,是否可以对待升级固件信息升级,即,终端遍历结构体数组中所有结构体变量中,对多个固件进行升级。
在本实施例中多固件升级系统中:服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;当终端检测到多固件升级的指令时,终端获取服务器发送的bin升级文件;终端对bin升级文件进行解析,终端获取bin升级文件中的设备信息和固件信息;终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级。少量的bin升级文件即可完成多所有固件的升级,其打包方法简单、实用,拆包升级过程快捷、方便,能有效节省MCU资源并提高开发效率。以此同时本方法可用于包含多个可编程固件的电子产品。通过将多个固件信息打包成少量bin升级文件,提高了终端多个固件的升级效率,使多固件信息升级更加便捷。
此外,在本发明多固件升级系统的另一实施例中,所述多固件升级系统包括通信连接的服务器和终端;其中:
当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息。
在服务器检测到对终端的多个固件进行升级的指令时(多固件升级的指令:可由用户触发,也可以是由终端发送至服务器),服务器首先确定需要升级终端的设备信息(设备信息可以包括:设备的名称、设备的生产批次。设备标识、设备版本等其他信息)和终端中所有待升级固件的固件信息(固件信息:包括固件的标识信息、固件的大小、固件对应的存储地址、固件的版本信息、固件的检验信息等)。
服务器将设备信息与固件信息生成bin升级文件并发送至终端;
服务器将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目。将依次排列的多个待升级固件信息与文件目录合并生成bin升级文件,当终端对多个固件进行升级时,终端可以获取服务器生成的bin升级文件,对bin升级文件进行解析,最终对多个固件进行升级。
终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。
终端获取服务器发送的bin升级文件,解析bin升级文件中的固件信息,对多个待升级固件进行升级。
在本实施例中当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息;服务器将设备信息与固件信息生成bin升级文件并发送至终端;终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。通过服务器将终端的多个待升级固件信息打包成bin升级文件,在终端固件升级时,终端可获取对应的bin升级文件对多个固件进行升级,加快了固件升级的效率。
本发明还提供一种可读存储介质。
本发明可读存储介质上存储有多固件升级程序,所述多固件升级程序被处理器执行时实现如上述多固件升级方法的步骤。
其中,多固件升级程序被执行时所实现的方法可参照本发明多固件升级方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种多固件升级方法,其特征在于,所述多固件升级方法应用于终端;
所述多固件的升级方法包括以下步骤:
当检测到多固件升级的指令时,获取服务器发送的bin升级文件,其中服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;
对bin升级文件进行解析,获取bin升级文件中的设备信息和固件信息;
将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级;
所述将所述设备信息和固件信息导入终端的结构体数组中的步骤包括:
将bin升级文件中的设备信息与终端中存储的设备信息进行比对,判断设备bin升级文件中信息是否正确;
若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组;
所述若设备信息正确,则根据bin升级文件中的文件目录信息将固件信息导入结构体数组的步骤包括:
根据bin升级文件中的文件目录信息,确定所有待升级固件的固件数量和固件标识;
根据固件标识将对应固件数量的固件信息导入对应结构体,并将全部结构体组成结构体数组。
2.如权利要求1所述的多固件升级方法,其特征在于,所述将所述设备信息和固件信息导入终端的结构体数组中的步骤之后包括:
根据固件标识遍历结构体数组,并根据结构体中的固件信息判断是否能对固件进行升级;
若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级。
3.如权利要求2所述的多固件升级方法,其特征在于,所述若能对固件进行升级,则读取结构体中对应的固件信息并将固件进行升级的步骤包括:
若能对固件进行升级,则根据固件信息中的校验信息对固件进行校验,以根据校验信息判断是否能进行固件升级;
若能进行固件升级,则执行升级程序将固件进行升级。
4.一种多固件升级方法,其特征在于,所述多固件升级方法应用于服务器;
所述多固件升级方法包括以下步骤:
当检测到多固件升级的指令时,确定终端的设备信息和终端中所有待升级固件的固件信息;
将设备信息与固件信息生成bin升级文件并发送至终端,以供终端对所有待升级固件进行升级;
所述固件信息包含标识信息,所述将设备信息与固件信息生成bin升级文件的步骤包括:
将固件信息按照标识信息依次排列,并将设备信息与标识信息输入预置模板作为文件目录;
将依次排列的固件信息与文件目录合并生成对应bin升级文件。
5.一种多固件升级系统,其特征在于,所述多固件升级系统包括通信连接的服务器和终端;其中:
服务器根据终端的设备信息和终端中所有待升级固件的固件信息生成bin升级文件;
当终端检测到多固件升级的指令时,终端获取服务器发送的bin升级文件;
终端对bin升级文件进行解析,终端获取bin升级文件中的设备信息和固件信息;
终端将所述设备信息和固件信息导入终端的结构体数组中,以对终端中所有待升级固件进行升级;
其中,终端将所述设备信息和固件信息导入终端的结构体数组中,包括:
根据bin升级文件中的文件目录信息,确定所有待升级固件的固件数量和固件标识;
根据固件标识将对应固件数量的固件信息导入对应结构体,并将全部结构体组成结构体数组。
6.如权利要求5所述的多固件升级系统,其特征在于,所述多固件升级系统包括通信连接的服务器和终端;其中:
当服务器检测到多固件升级的指令时,服务器确定终端的设备信息和终端中所有待升级固件的固件信息;
服务器将设备信息与固件信息生成bin升级文件并发送至终端;
终端获取服务器发送的bin升级文件,并对所有待升级固件进行升级。
7.一种可读存储介质,其特征在于,所述可读存储介质上存储有多固件升级程序,所述多固件升级程序被处理器执行时实现如权利要求1至3中任一项或者如权利要求4所述的多固件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710430313.4A CN107291497B (zh) | 2017-06-08 | 2017-06-08 | 多固件升级方法、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710430313.4A CN107291497B (zh) | 2017-06-08 | 2017-06-08 | 多固件升级方法、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291497A CN107291497A (zh) | 2017-10-24 |
CN107291497B true CN107291497B (zh) | 2021-02-05 |
Family
ID=60096266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710430313.4A Active CN107291497B (zh) | 2017-06-08 | 2017-06-08 | 多固件升级方法、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291497B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108176B (zh) * | 2017-12-15 | 2021-05-28 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于Android系统的多余度目标机软件升级方法 |
CN110119280A (zh) * | 2018-02-06 | 2019-08-13 | 深圳市帝迈生物技术有限公司 | 多固件升级的方法及装置 |
CN108920163A (zh) * | 2018-06-29 | 2018-11-30 | 郑州云海信息技术有限公司 | 服务器固件升级方法及装置 |
CN109284122A (zh) * | 2018-08-14 | 2019-01-29 | 深圳德技医疗器械有限公司 | 一种基于存储介质的固件自动升级方法及其存储介质 |
CN109271191B (zh) * | 2018-09-30 | 2023-01-06 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN109522039A (zh) * | 2018-11-30 | 2019-03-26 | 江苏徐工信息技术股份有限公司 | 基于大数据平台的工程机械gps终端固件批量升级方法 |
CN109656597A (zh) * | 2018-12-19 | 2019-04-19 | 广东美的暖通设备有限公司 | 固件升级方法、装置及计算机可读存储介质 |
CN109710293B (zh) * | 2018-12-28 | 2022-07-22 | 迈普通信技术股份有限公司 | 文件的处理方法、装置、电子设备及存储介质 |
CN110225139B (zh) * | 2019-06-28 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种服务器固件升级包处理方法及装置 |
CN110377317A (zh) * | 2019-07-25 | 2019-10-25 | 新奥(中国)燃气投资有限公司 | 一种网关设备升级方法及装置 |
CN112394966A (zh) * | 2019-08-19 | 2021-02-23 | 云丁网络技术(北京)有限公司 | 设备升级方法、装置、计算机可读介质及设备 |
CN111045710B (zh) * | 2019-11-22 | 2022-11-22 | 苏州浪潮智能科技有限公司 | 一种基于IPMI命令的SAS-Expander固件升级的方法、设备及介质 |
CN111142919B (zh) * | 2019-12-27 | 2024-02-06 | 西安为恒储能技术有限公司 | 一种适用于多组mcu单元程序同时升级的方法 |
CN111273931B (zh) * | 2020-01-20 | 2023-05-26 | 宁波吉利汽车研究开发有限公司 | 一种车载行车电脑并行升级方法及装置 |
CN111352641B (zh) * | 2020-02-26 | 2024-02-13 | 深圳忆联信息系统有限公司 | 借助批处理的自动打包方法、装置、计算机设备及存储介质 |
CN118233532A (zh) * | 2020-03-06 | 2024-06-21 | Oppo广东移动通信有限公司 | 数据通信方法及装置 |
CN112597503A (zh) * | 2020-12-21 | 2021-04-02 | 浙江中控技术股份有限公司 | 一种基于中断向量的固件检测方法与装置 |
CN112579130B (zh) * | 2020-12-28 | 2024-06-04 | 河南城拜检测技术有限公司 | 一种交互式的iap升级方法 |
CN113064611B (zh) * | 2021-03-16 | 2024-02-02 | 太仓市同维电子有限公司 | 针对无线设备实现数据分析软件升级的方法及其更新方法 |
CN113515747B (zh) * | 2021-05-17 | 2024-02-09 | 深圳市友华通信技术有限公司 | 设备升级方法、装置、设备及存储介质 |
CN114500280B (zh) * | 2022-01-06 | 2023-12-26 | 新华三信息技术有限公司 | 一种固件升级方法、装置以及计算机可读存储介质 |
CN116909608A (zh) * | 2023-09-12 | 2023-10-20 | 深圳市首航新能源股份有限公司 | 电池产品的功能更新方法及装置、电池产品与储能系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103327403A (zh) * | 2013-05-29 | 2013-09-25 | 河南有线电视网络集团有限公司 | 机顶盒升级方法、装置和系统 |
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
CN104133715A (zh) * | 2014-08-13 | 2014-11-05 | 杭州华三通信技术有限公司 | 一种以太网供电设备固件升级方法和装置 |
-
2017
- 2017-06-08 CN CN201710430313.4A patent/CN107291497B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
CN103327403A (zh) * | 2013-05-29 | 2013-09-25 | 河南有线电视网络集团有限公司 | 机顶盒升级方法、装置和系统 |
CN104133715A (zh) * | 2014-08-13 | 2014-11-05 | 杭州华三通信技术有限公司 | 一种以太网供电设备固件升级方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107291497A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291497B (zh) | 多固件升级方法、系统及可读存储介质 | |
EP3540594A1 (en) | Packaging method, device, and terminal employing plugin format, and storage medium | |
CN107888978B (zh) | Key码烧录方法、装置及计算机可读存储介质 | |
CN108111555B (zh) | 用于控制安装包下载过程的方法及系统 | |
CN108121556B (zh) | eMMC兼容升级方法、智能终端以及可读存储介质 | |
CN106648685B (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN110035181B (zh) | 一种快应用卡片主题设置方法及终端 | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
CN112527386B (zh) | 应用程序发布方法及装置 | |
CN113885935A (zh) | 资源打包方法、装置、电子设备及计算机可读存储介质 | |
KR20210029621A (ko) | 전자 장치에서 어플리케이션 업데이트 시 런타임 성능 개선 방법 및 장치 | |
CN104111844A (zh) | 在移动终端内安装应用程序的方法及系统 | |
CN107817949A (zh) | 磁盘阵列的挂载方法、Android设备和存储介质 | |
CN114640727A (zh) | 协议解析方法、装置及计算机可读存储介质 | |
CN107707602B (zh) | 数据通信处理终端、方法及计算机可读存储介质 | |
CN109558186A (zh) | 一种页面显示方法和装置 | |
CN110032390B (zh) | 一种实现多机型共升级包的方法、存储介质及智能终端 | |
CN108132787B (zh) | Agv触摸界面的设计方法、装置及计算机可读存储介质 | |
EP2966565A1 (en) | Method for automatically converting android application to tizen installable package | |
CN113934618A (zh) | 接口测试用例生成方法、装置、生成器及可读存储介质 | |
CN107229746B (zh) | 终端及多派生项目的数据处理方法和存储介质 | |
CN109032651B (zh) | 应用更新方法、智能终端及计算机可读存储介质 | |
US9189633B2 (en) | Download management method and device based on android browser | |
CN108958664B (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 | ||
CP03 | Change of name, title or address |
Address after: 516006 community 37, Zhongkai high tech Zone, Huizhou, Guangdong Patentee after: Tongli Technology Co.,Ltd. Address before: 516006 Zhongkai high tech Zone 37, Huizhou, Guangdong Patentee before: TONLY ELECTRONICS HOLDINGS Ltd. |
|
CP03 | Change of name, title or address |