CN111722852A - 固件的烧录方法、设备及计算机可读存储介质 - Google Patents

固件的烧录方法、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111722852A
CN111722852A CN202010523241.XA CN202010523241A CN111722852A CN 111722852 A CN111722852 A CN 111722852A CN 202010523241 A CN202010523241 A CN 202010523241A CN 111722852 A CN111722852 A CN 111722852A
Authority
CN
China
Prior art keywords
burning
file
firmware
flash
decompressed
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
Application number
CN202010523241.XA
Other languages
English (en)
Other versions
CN111722852B (zh
Inventor
李林
钟洪耀
王江南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Qianfenyi Intelligent Technology Co Ltd
Original Assignee
Shenzhen Qianfenyi Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Qianfenyi Intelligent Technology Co Ltd filed Critical Shenzhen Qianfenyi Intelligent Technology Co Ltd
Priority to CN202010523241.XA priority Critical patent/CN111722852B/zh
Priority claimed from CN202010523241.XA external-priority patent/CN111722852B/zh
Publication of CN111722852A publication Critical patent/CN111722852A/zh
Application granted granted Critical
Publication of CN111722852B publication Critical patent/CN111722852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种固件的烧录方法、设备及计算机可读存储介质,该方法的步骤包括:将待烧录固件对应的flash固件按照预设固件大小进行拆分,得到flash固件对应的flash子固件;对flash子固件进行压缩,得到各个flash子固件对应的压缩文件,将压缩文件进行打包,得到烧录文件,并将烧录文件传输至下位机中,以供下位机将烧录文件进行解压,并将解压后的烧录文件烧录至flash中。本发明实现通过将待烧录固件对应的flash固件进行预设固件大小拆分,将拆分后的flash子固件进行压缩,然后将压缩文件进行打包,得到烧录文件,再将烧录文件传输至下位机中,以供下位机将烧录文件进行解压,并将解压后的烧录文件烧录至flash中,从而提高了固件的烧录效率。

Description

固件的烧录方法、设备及计算机可读存储介质
技术领域
本发明涉及芯片烧录技术领域,尤其涉及一种固件的烧录方法、装置、设备及计算机可读存储介质。
背景技术
目前固件烧录的方法主要是基于TouchGFX(GUI框架)开发的,由于GUI(GraphicalUser Interface,图形用户界面)固件占用内存大,在固件烧录时,消耗的时间比较长,从而降低了固件烧录的效率,由此可知,现有固件烧录方法的烧录效率低。
发明内容
本发明的主要目的在于提供一种固件的烧录方法、设备及计算机可读存储介质,旨在解决现有固件烧录方法的烧录效率低的技术问题。
为实现上述目的,本发明提供一种固件的烧录方法,所述固件的烧录方法应用于上位机,所述固件的烧录方法包括以下步骤:
将待烧录固件对应的闪存flash固件按照预设固件大小进行拆分,得到所述flash固件对应的flash子固件;
对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件,将所述压缩文件进行打包,得到烧录文件,并将所述烧录文件传输至下位机中,以供所述下位机将所述烧录文件进行解压,并将解压后的烧录文件烧录至flash中。
可选地,所述对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件,将所述压缩文件进行打包,得到烧录文件的步骤包括:
根据固件冗余度对各个所述flash子固件进行压缩,对应得到各个所述flash子固件的压缩文件;
获取文件包头标识,将所述文件包头标识和所述压缩文件进行打包,得到所述烧录文件。
为实现上述目的,本发明提供一种固件的烧录方法,所述固件的烧录方法应用于下位机,所述固件的烧录方法包括以下步骤:
侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件,所述烧录文件是通过所述上位机进行拆分、压缩和打包所得到;
将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将所述解压文件依次烧录至flash。
可选地,所述将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将所述解压文件依次烧录至flash的步骤包括:
检测所述烧录文件是否为完整状态;
若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件,并将所述解压文件依次烧录至flash。
可选地,所述检测所述烧录文件是否为完整状态的步骤包括:
获取所述烧录文件传输前的第一检验码和传输后的第二检验码,并检测所述第一检验码和所述第二检验码是否相同;
若检测到所述第一检验码和所述第二检验码不相同,则确定所述烧录文件为缺陷状态;
若检测到所述第一检验码和所述第二检验码相同,则确定所述烧录文件为完整状态。
可选地,所述若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件,并将所述解压文件依次烧录至flash的步骤包括:
若检测到所述烧录文件为完整状态,则获取所述烧录文件中各个压缩文件对应的文件索引值;
根据文件索引值从小到大的顺序将所述压缩文件进行依次解压,得到各个所述压缩文件对应的解压文件,并将所述解压文件依次烧录至所述flash。
可选地,所述侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件的步骤之前,还包括:
侦测是否接收到所述上位机发送的静态随机存取存储器SRAM程序;
若侦测已接收到所述SRAM程序,则通过所述SRAM程序启动下位机,所述启动下位机包括初始化下位机硬件、接收烧录文件、解压烧录文件、检测烧录文件完整性或/和烧录解压文件。
此外,为实现上述目的,本发明还提供一种固件的烧录设备,所述固件的烧录设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的固件的烧录程序,所述固件的烧录程序被所述处理器完成时实现如上所述的固件的烧录方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有固件的烧录程序,所述固件的烧录程序被处理器完成时实现如上所述的固件的烧录方法的步骤。
本发明实现通过将待烧录固件对应的flash固件进行预设固件大小拆分,将拆分后的flash子固件进行压缩,然后将压缩文件进行打包,得到烧录文件,再将烧录文件传输至下位机中,以供下位机将烧录文件进行解压,并将解压后的烧录文件烧录至flash中。由此可知,在将固件烧录至flash之前,将接收待烧录固件对应的flash固件拆分成预设固件大小的flash子固件,从而将一个占用内存很大的flash固件拆分成多份占用内存较小的flash子固件,然后将多份占用内存较小的flash子固件进行压缩,对应得到占用内存更小的压缩文件,打包压缩文件得到烧录文件,将烧录文件发送至下位机,以供下位机得到该烧录文件之后,将该烧录文件进行解压,然后将各个解压文件依次烧录至flash中,从而使得待烧录固件对应的flash固件快速地烧录至flash中,从而提高了固件的烧录效率。
附图说明
图1是本发明固件的烧录方法第一实施例的流程示意图;
图2是本发明固件的烧录装置较佳的结构示意图;
图3是本发明实施例方案涉及的硬件运行环境的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种固件的烧录方法,参照图1,图1为本发明固件的烧录方法第一实施例的流程示意图。
本发明实施例提供了固件的烧录方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不相同于此处的顺序完成所示出或描述的步骤。
固件的烧录方法应用于上位机,所述固件的烧录方法包括:
步骤S10,将待烧录固件对应的闪存flash固件按照预设固件大小进行拆分,得到所述flash固件对应的flash子固件。
上位机将待烧录固件对应的flash(闪存)固件进行拆分之前,用户需要在上位机中编写固件代码,并在IDE(Integrated Development Environment,集成开发环境)工具中将该固件代码编译为固件代码对应的待烧录固件,然后根据待烧录固件的固件类型,并通过objcopy(GNU工具)将该待烧录固件拆分成内部flash固件和外部flash固件。上位机侦测到用户将待烧录固件拆分成对应的内部flash固件和外部flash固件后,通过上位机中的拆分工具将该外部flash固件按照预设固件大小进行拆分,得到该外部flash固件相应份数的外部flash子固件。
其中,上位机是指可以发出操控下位机命令的计算机,包括但不限制于PC(Personal Computer,个人计算机)和其他终端设备。固件代码包括GUI(Graphical UserInterface,图形用户界面)固件代码和LEDE(Linux Embedded Development Environment,Linux嵌入式开发环境项目)固件代码等。IDE工具包括但不限制于KEIL(单片机C语言软件开发系统)、IAR(嵌入式系统开发工具)和GCC(GNU Compiler Collection,GNU编译器套件)。固件类型包括内部固件和外部固件。拆分工具包括但不限制于Godox(神牛拆分工具)和Hjspilt(文件分割工具)等。预设固件大小根据需求设定,本实施例不作限制。
需要说明的是,用户将待烧录固件拆分成内部flash固件和外部flash固件后,由于内部flash固件占用内存很小,因此不用对内部flash固件进行拆分。
在本实施例中,比如,预设固件大小为2MB(兆),上位机得到的外部flash固件为external_nor_flash.bin,external_nor_flash.bin的占用内存为21MB。上位机按照预设固件大小将该external_nor_flash.bin进行拆分,对应得到11份该外部flash固件对应的外部flash子固件,分别为external_nor_flash_1.bin、external_nor_flash_2.bin至external_nor_flash_11.bin,其中external_nor_flash_1.bin至external_nor_flash_10.bin的固件大小为2MB,external_nor_flash_11.bin的固件大小为1MB。
步骤S20,对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件,将所述压缩文件进行打包,得到烧录文件,并将所述烧录文件传输至下位机中,以供所述下位机将所述烧录文件进行解压,并将解压后的烧录文件烧录至flash中。
上位机得到外部flash子固件后,通过预设压缩工具对各个外部flash子固件进行压缩,得到各个外部flash子固件对应的压缩文件,然后通过预设文件打包方式将各个压缩文件进行打包,得到烧录文件。上位机在得到烧录文件后,将烧录文件传输至下位机中,下位机接收到该烧录文件后,对该烧录文件中各个压缩的外部flash子固件进行逐个解压,并将解压后的各个外部flash子固件烧录至外部flash中。
其中,预设压缩工具包括但不限制于miniLZO(无损压缩)工具和File Optimizer(文件优化)工具。预设文件打包方式包括文件包头方式和问价索引方式等,本实施例不作限制。下位机包括但不限制于PLC(Programmable LogicController,可编程逻辑控制器)和单片机。
需要说明的是,压缩文件没有改变外部flash子固件的格式,只是在的外部flash子固件的原始格式中添加与预设压缩工具对应压缩后缀。上位机对外部flash子固件进行拆分的同时,生成待烧录固件对应的文件索引表,在文件索引表中,外部flsah子固件按照文件索引从小到大或者从大到小的顺序排序,此外,文件索引表中包含有外部flash子固件在压缩前和压缩后的存储位置、外部flash子固件在压缩前和压缩后的文件大小和压缩文件在传输前和传输后完整性的检验码等等。
在本实施例中,比如,预设压缩工具为miniLZO工具,外部flash子固件为external_nor_flash_1.bin和external_nor_flash_2.bin。上位机将得到的外部flash子固件external_nor_flash_1.bin和external_nor_flash_2.bin进行压缩,得到外部flash子固件external_nor_flash_1.bin和external_nor_flash_2.bin对应的压缩文件为external_nor_flash_1.bin.lzo和external_nor_flash_2.bin.lzo。
进一步地,所述步骤S20包括:
步骤a,根据固件冗余度对各个所述flash子固件进行压缩,对应得到各个所述flash子固件的压缩文件;
步骤b,获取文件包头标识,将所述文件包头标识和所述压缩文件进行打包,得到所述烧录文件。
具体地,上位机得到外部flash子固件后,根据各个外部flash子固件对应固件冗余度的大小将各个外部flash子固件压缩为不同固件大小的压缩文件,根据文件索引表中外部flash子固件在压缩前的位置顺序将压缩文件进行排序,得到压缩后的文件索引表,然后获取上位机中文件包头标识,将该文件包头标识和压缩后的文件索引表进行打包,得到烧录文件。其中,文件包头标识是烧录文件的起始标识。固件冗余度是根据各个外部flash子固件的性能决定的,不同外部flash子固件的固件冗余度可以是一样的,也可以是不一样的。
需要说明的是,外部flash子固件的固件冗余度越大,压缩后的压缩文件越小。下位机只在检测到文件包头标识后,才对压缩文件进行解压,若没有检测到文件包头标识,则不对压缩文件进行解压。
在本实施例中,比如,文件包头标识为Header,3个固件大小为2MB的外部flash子固件external_nor_flash_1.bin、external_nor_flash_2.bin和external_nor_flash_3.bin,对应的固件冗余度为100、90和80。上位机根据固件冗余度的大小将外部flash子进行压缩,得到压缩文件external_nor_flash_1.bin.lzo的固件大小为400K(字节,储存单位)、external_nor_flash_2.bin.lzo的固件大小为500KB和external_nor_flash_3.bin.lzo的固件大小为600KB,然后根据外部flash子固件在压缩前的位置顺序将压缩文件进行排序,得到排序后的压缩文件为external_nor_flash_1.bin.lzo、external_nor_flash_2.bin.lzo和external_nor_flash_3.bin.lzo,将文件包头标识Header和排序后的压缩文件进行打包,得到的烧录文件为Header+external_nor_flash_1.bin.lzo+external_nor_flash_2.bin.lzo+external_nor_flash_3.bin.lzo。
本实施例通过将待烧录固件对应的flash固件进行预设固件大小拆分,将拆分后的flash子固件进行压缩,然后将压缩文件进行打包,得到烧录文件,再将烧录文件传输至下位机中,以供下位机将烧录文件进行解压,并将解压后的烧录文件烧录至flash中。由此可知,在将固件烧录至flash之前,将接收待烧录固件对应的flash固件拆分成预设固件大小的flash子固件,从而将一个占用内存很大的flash固件拆分成多份占用内存较小的flash子固件,然后将多份占用内存较小的flash子固件进行压缩,对应得到占用内存更小的压缩文件,打包压缩文件得到烧录文件,将烧录文件发送至下位机,以供下位机得到该烧录文件之后,将该烧录文件进行解压,然后将各个解压文件依次烧录至flash中,从而使得待烧录固件对应的flash固件快速地烧录至flash中,从而提高了固件的烧录效率。
进一步地,提出本发明固件的烧录方法第二实施例。
所述固件的烧录方法第二实施例与所述固件的烧录方法第一施例的区别在于,固件的烧录方法应用于下位机,所述固件的烧录方法包括:
步骤S30,侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件,所述烧录文件是通过所述上位机进行拆分、压缩和打包所得到。
步骤S40,将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将所述解压文件依次烧录至flash。
下位机,即单片机(Static Random-Access Memory,SRAM静态随机存取存储器)侦测到上位机发送的接收烧录文件的接收指令后,根据该接收指令,接收上位机通过拆分、压缩和打包所得到的烧录文件。单片机接收到烧录文件之后,通过预设解压工具对烧录文件中各个外部flash子固件对应的压缩文件进行依次解压,得到各个外部flash子固件对应的解压文件,并将解压文件逐个烧录至外部flash中。其中,预设解压工具和预设预设压缩工具是相对应的。
进一步地,所述步骤S40包括:
步骤c,检测所述烧录文件是否为完整状态;
步骤d,若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件,并将所述解压文件依次烧录至flash。
具体地,单片机在接收到上位机传输的烧录文件后,通过预设验证方式检测烧录文件是否为完整状态,若检测到烧录文件为完整状态,单片机则将该烧录文件中的压缩文件进行依次解压,得到各个压缩文件对应的解压文件,并将各个解压文件依次烧录至外部flash中。若检测到烧录文件为不完整状态,即缺陷状态,单片机则该烧录文件删除。其中,预设验证方式包括但不限制于检验码方式和文件长度验证方式。
进一步地,所述步骤c包括:
步骤e,获取所述烧录文件传输前的第一检验码和传输后的第二检验码,并检测所述第一检验码和所述第二检验码是否相同;
步骤f,若检测到所述第一检验码和所述第二检验码不相同,则确定所述烧录文件为缺陷状态;
步骤g,若检测到所述第一检验码和所述第二检验码相同,则确定所述烧录文件为完整状态。
具体地,单片机获取该烧录文件在传输前的第一校验码和传输后的第二检验码,将第一校验码和第二校验码进行数值比较,根据比较结果返回相应的结果字符,根据该结果字符检测第一校验码和第二校验码是否相同,若检测到第一检验码和第二检验码不相同,单片机则确定该烧录文件为不完整状态,即缺陷状态,若检测到第一检验码和第二检验码相同,单片机则确定该烧录文件为完整状态。
其中,检验码为一个数值,是单片机通过预设算法计算得到的,预设算法包括但不限制于码距算法、奇偶检验算法、海明校验算法和循环冗余校验算法。结果字符的表示形式可为中文和英文等,本实施例不限制结果字符的表示形式,中文可表示为成功和失败,英文可表示为false和true。
需要说明的是,成功和true表示比较结果为数值相同,失败和false表示比较结果为数值不相同。
在本实施例中,比如,结果字符表示形式为英文,第一校验码的数值为8,第二检验码的数值为7,单片机将第一检验码和第二检验码进行数值比较之后,返回的结果字符为false,单片机若根据结果字符检测到第一检验码和第二检验码不相同,则确定烧录文件为缺陷状态。第一校验码为的数值8,第二检验码的数值为8,单片机将第一检验码和第二检验码进行数值比较之后,返回的结果字符为true,单片机若根据结果字符检测到第一检验码和第二检验码相同,则确定烧录文件为完整状态。
进一步地,所述步骤d包括:
步骤h,若检测到所述烧录文件为完整状态,则获取所述烧录文件中各个压缩文件对应的文件索引值;
步骤i,根据文件索引值从小到大的顺序将所述压缩文件进行依次解压,得到各个所述压缩文件对应的解压文件,并将所述解压文件依次烧录至所述flash。
具体地,单片机若检测到烧录文件为完整状态,则获取烧录文件中各个压缩文件对应的文件索引值,并将文件索引值进行逐个比较,根据比较结果,将文件索引值从小到大的顺序将烧录文件中的压缩文件进行依次解压,将最小文件索引值对应的压缩文件进行解压,得到对应的解压文件,并将该解压文件烧录至外部flash中,再将剩余的压缩文件中最小文件索引值对应的压缩文件进行解压,得到对应的解压文件,再将该解压文件烧录至外部flash中,依次循环,逐个解压和烧录该烧录文件中的压缩文件。
需要说明的是,在外部flash固件烧录至外部flash后,上位机检测内部flash固件是否已经烧录至内部flash,若检测到内部flash固件已经烧录至内部flash,上位机则确定整个固件烧录过程已经完成,若检测到内部flash固件还未烧录至内部flash,上位机确定整个固件烧录过程还未完成,则继续将内部flash固件烧录至内部flash中。
在本实施例中,比如,单片机接收到上位机发送的待烧录文件为Header+external_nor_flash_1.bin.lzo+external_nor_flash_2.bin.lzo,单片机对压缩文件external_nor_flash_1.bin.lzo进行解压,并将external_nor_flash_1.bin.lzo对应的解压文件烧录至外部flash中,在压缩文件external_nor_flash_1.bin.lzo烧录至外部flash后,单片机对external_nor_flash_2.bin.lzo进行解压,并将external_nor_flash_2.bin.lzo对应的解压文件烧录至外部flash中。
进一步地,所述固件的烧录方法还包括:
步骤j,侦测是否接收到所述上位机发送的静态随机存取存储器SRAM程序;
步骤k,若侦测已接收到所述SRAM程序,则通过所述SRAM程序启动下位机,所述启动下位机包括初始化下位机硬件、接收烧录文件、解压烧录文件、检测烧录文件完整性或/和烧录解压文件。
单片机接收上位机传输的烧录文件之前,用户需要在上位机中编写单片机的SRAM程序,即单片机启动程序,然后将该SRAM程序发送至单片机中。单片机侦测在SWD(仿真模式)接口是否接收到该SRAM程序,若侦测到在SWD接口已经接收该SRAM程序,单片机则通过该SRAM程序启动下位机即单片机的各个硬件,比如SDRAM(Synchronous Dynamic Random-Access Memory,同步动态随机存取内存)和外部flash、接收烧录文件、、解压烧录文件、检测烧录文件完整性或/和烧录解压文件。若侦测到在SWD接口没有接收该SRAM程序,单片机则继续等待上位机的指令,直到接收到该SRAM程序。
本实施例实现了通过侦测到接收烧录文件的接收指令后,根据接收指令接收上位机发送的烧录文件,然后将烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将解压文件依次烧录至flash。由此可知,在将固件烧录至外部flash之前,需要检测烧录文件的完整性,在检测到烧录文件为完整状态时,再对烧录文件进行依次解压,并将解压后的解压文件逐个烧录至外部flash中,从而使得在外部flash内存大小一定的条件下,能够烧录更多的固件,从而在保证烧录文件完整的同时,从而提升外部flash内存的利用率。
此外,本发明还提供一种固件的烧录装置,所述固件的烧录装置应用于机械臂中,所述机械臂至少包括视觉设备,参照图2,所述固件的烧录装置包括:
拆分模块10,用于将待烧录固件对应的闪存flash固件按照预设固件大小进行拆分,得到所述flash固件对应的flash子固件;
压缩模块20,用于对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件;
打包模块30,用于将所述压缩文件进行打包,得到烧录文件;
传输模块40,用于将所述烧录文件传输至下位机中,以供所述下位机将所述烧录文件进行解压,并将解压后的烧录文件烧录至flash中;
接收模块50,用于侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件,所述烧录文件是通过所述上位机进行拆分、压缩和打包所得到;
解压模块60,用于将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件;
烧录模块70,用于将所述解压文件依次烧录至flash。
进一步地,所述压缩模块20还用于根据固件冗余度对各个所述flash子固件进行压缩,对应得到各个所述flash子固件的压缩文件。
进一步地,所述打包模块30包括:
第一获取单元,用于获取文件包头标识。
进一步地,所述打包模块30还用于将所述文件包头标识和所述压缩文件进行打包,得到所述烧录文件。
进一步地,所述烧录模块70包括:
检测单元,用于检测所述烧录文件是否为完整状态。
进一步地,所述解压模块60还用于若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件;
所述烧录模块70还用于将所述解压文件依次烧录至flash。
进一步地,所述检测单元包括:
获取子单元,用于获取所述烧录文件传输前的第一检验码和传输后的第二检验码;
检测子单元,用于检测所述第一检验码和所述第二检验码是否相同;
确定子单元,用于若检测到所述第一检验码和所述第二检验码不相同,则确定所述烧录文件为缺陷状态;若检测到所述第一检验码和所述第二检验码相同,则确定所述烧录文件为完整状态。
进一步地,所述烧录模块70包括:
第二获取单元,用于若检测到所述烧录文件为完整状态,则获取所述烧录文件中各个压缩文件对应的文件索引值。
进一步地,所述解压模块60还用于根据文件索引值从小到大的顺序将所述压缩文件进行依次解压,得到各个所述压缩文件对应的解压文件;
所述烧录模块70还用于将所述解压文件依次烧录至所述flash。
进一步地,所述固件的烧录装置还包括:
侦测模块,用于侦测是否接收到所述上位机发送的静态随机存取存储器SRAM程序;
启动模块,用于若侦测已接收到所述SRAM程序,则通过所述SRAM程序启动下位机,所述启动下位机包括初始化下位机硬件、接收烧录文件、解压烧录文件、检测烧录文件完整性或/和烧录解压文件。
本发明基于固件的烧录装置具体实施方式与上述基于固件的烧录方法各实施例基本相同,在此不再赘述。
此外,本发明还提供一种固件的烧录设备。如图3所示,图3是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图3即可为固件的烧录设备的硬件运行环境的结构示意图。
如图3所示,该固件的烧录设备可以包括:处理器1001,例如CPU(CentralProcessing Unit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),可选用户接口1003还可以包括标准的有线接口(如USB(Universal Serial Bus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI((Wireless-Fidelity))接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,固件的烧录设备还可以包括RF(Radio Frequency,射频)电路,传感器、WiFi模块等等。
本领域技术人员可以理解,图3中示出的固件的烧录设备结构并不构成对固件的烧录设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不相同的部件布置。
如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作设备、网络通信模块、用户接口模块以及固件的烧录程序。其中,操作设备是管理和控制固件的烧录设备硬件和软件资源的程序,支持固件的烧录程序以及其它软件或程序的运行。
在图所示的固件的烧录设备中,用户接口1003主要用于上位机,以供用户编写固件代码和单片机的启动程序;网络接口1004主要用于单片机,与上位机进行文件通信,以接收上位机发送的烧录文件和单片机启动程序;处理器1001可以用于调用存储器1005中存储的固件的烧录程序,并完成如上所述的固件的烧录设备的控制方法的步骤。
本发明固件的烧录设备具体实施方式与上述固件的烧录方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有固件的烧录程序,所述固件的烧录程序被处理器完成时实现如上所述的固件的烧录方法的步骤。
本发明计算机可读存储介质具体实施方式与上述固件的烧录方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的数据下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多数据下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件货物的形式体现出来,该计算机软件货物存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台固件的烧录设备完成本发明各个实施例所述的方法。

Claims (9)

1.一种固件的烧录方法,其特征在于,所述固件的烧录方法应用于上位机,所述固件的烧录方法包括以下步骤:
将待烧录固件对应的闪存flash固件按照预设固件大小进行拆分,得到所述flash固件对应的flash子固件;
对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件,将所述压缩文件进行打包,得到烧录文件,并将所述烧录文件传输至下位机中,以供所述下位机将所述烧录文件进行解压,并将解压后的烧录文件烧录至flash中。
2.如权利要求1所述的固件的烧录方法,其特征在于,所述对所述flash子固件进行压缩,得到各个所述flash子固件对应的压缩文件,将所述压缩文件进行打包,得到烧录文件的步骤包括:
根据固件冗余度对各个所述flash子固件进行压缩,对应得到各个所述flash子固件的压缩文件;
获取文件包头标识,将所述文件包头标识和所述压缩文件进行打包,得到所述烧录文件。
3.一种固件的烧录方法,其特征在于,所述固件的烧录方法应用于下位机,所述固件的烧录方法包括以下步骤:
侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件,所述烧录文件是通过所述上位机进行拆分、压缩和打包所得到;
将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将所述解压文件依次烧录至flash。
4.如权利要求3所述的固件的烧录方法,其特征在于,所述将所述烧录文件进行依次解压,得到各个flash子固件对应的解压文件,并将所述解压文件依次烧录至flash的步骤包括:
检测所述烧录文件是否为完整状态;
若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件,并将所述解压文件依次烧录至flash。
5.如权利要求4所述的固件的烧录方法,其特征在于,所述检测所述烧录文件是否为完整状态的步骤包括:
获取所述烧录文件传输前的第一检验码和传输后的第二检验码,并检测所述第一检验码和所述第二检验码是否相同;
若检测到所述第一检验码和所述第二检验码不相同,则确定所述烧录文件为缺陷状态;
若检测到所述第一检验码和所述第二检验码相同,则确定所述烧录文件为完整状态。
6.如权利要求4所述的固件的烧录方法,其特征在于,所述若检测到所述烧录文件为完整状态,则将所述烧录文件进行依次解压,对应得到所述烧录文件的解压文件,并将所述解压文件依次烧录至flash的步骤包括:
若检测到所述烧录文件为完整状态,则获取所述烧录文件中各个压缩文件对应的文件索引值;
根据文件索引值从小到大的顺序将所述压缩文件进行依次解压,得到各个所述压缩文件对应的解压文件,并将所述解压文件依次烧录至所述flash。
7.如权利要求3至6任一项所述的固件的烧录方法,其特征在于,所述侦测到接收烧录文件的接收指令后,根据所述接收指令接收上位机发送的所述烧录文件的步骤之前,还包括:
侦测是否接收到所述上位机发送的静态随机存取存储器SRAM程序;
若侦测已接收到所述SRAM程序,则通过所述SRAM程序启动下位机,所述启动下位机包括初始化下位机硬件、接收烧录文件、解压烧录文件、检测烧录文件完整性或/和烧录解压文件。
8.一种固件的烧录设备,其特征在于,所述固件的烧录设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的固件的烧录程序,所述固件的烧录程序被所述处理器完成时实现如权利要求1至2,3至7中任一项所述的固件的烧录方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有固件的烧录程序,所述固件的烧录程序被处理器完成时实现如权利要求1至2,3至7中任一项所述的固件的烧录方法的步骤。
CN202010523241.XA 2020-06-10 固件的烧录方法、设备及计算机可读存储介质 Active CN111722852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010523241.XA CN111722852B (zh) 2020-06-10 固件的烧录方法、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010523241.XA CN111722852B (zh) 2020-06-10 固件的烧录方法、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111722852A true CN111722852A (zh) 2020-09-29
CN111722852B CN111722852B (zh) 2024-10-25

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885949A (zh) * 2021-10-22 2022-01-04 瑞芯微电子股份有限公司 一种快速开机方法及系统
CN114911533A (zh) * 2022-05-19 2022-08-16 长沙金维信息技术有限公司 基于NorFlash接口的芯片启动方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567739A (zh) * 2008-04-22 2009-10-28 三星电子株式会社 广播接收装置及其固件升级方法
CN105550276A (zh) * 2015-12-10 2016-05-04 广东欧珀移动通信有限公司 一种判断网络中音频升级文件完整性的方法及装置
US20180210846A1 (en) * 2017-01-25 2018-07-26 Hewlett Packard Enterprise Development Lp Files access from a nvm to external devices through an external ram
CN108491212A (zh) * 2018-03-19 2018-09-04 广东美的暖通设备有限公司 文件烧录方法、设备及计算机可读存储介质
CN110730104A (zh) * 2019-10-29 2020-01-24 乐鑫信息科技(上海)股份有限公司 一种mesh网络设备的多设备批量固件升级的方法
US10664598B1 (en) * 2016-08-15 2020-05-26 American Megatrends International, Llc Firmware security patch deployment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567739A (zh) * 2008-04-22 2009-10-28 三星电子株式会社 广播接收装置及其固件升级方法
CN105550276A (zh) * 2015-12-10 2016-05-04 广东欧珀移动通信有限公司 一种判断网络中音频升级文件完整性的方法及装置
US10664598B1 (en) * 2016-08-15 2020-05-26 American Megatrends International, Llc Firmware security patch deployment
US20180210846A1 (en) * 2017-01-25 2018-07-26 Hewlett Packard Enterprise Development Lp Files access from a nvm to external devices through an external ram
CN108491212A (zh) * 2018-03-19 2018-09-04 广东美的暖通设备有限公司 文件烧录方法、设备及计算机可读存储介质
CN110730104A (zh) * 2019-10-29 2020-01-24 乐鑫信息科技(上海)股份有限公司 一种mesh网络设备的多设备批量固件升级的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885949A (zh) * 2021-10-22 2022-01-04 瑞芯微电子股份有限公司 一种快速开机方法及系统
CN114911533A (zh) * 2022-05-19 2022-08-16 长沙金维信息技术有限公司 基于NorFlash接口的芯片启动方法

Similar Documents

Publication Publication Date Title
US5901310A (en) Storing firmware in compressed form
CN106936441B (zh) 一种数据压缩方法和装置
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
CN108650287B (zh) 物联网中的终端设备的升级方法、设备及计算机可读介质
EP3401782B1 (en) File identification method and related device
CN110597542B (zh) 软件自动ota升级方法及装置、电子设备
CN102946600B (zh) 一种移动终端参数固件升级方法及系统
CN106020875B (zh) 嵌入式终端的固件更新管理方法和装置
KR20120134916A (ko) 저장 장치 및 저장 장치를 위한 데이터 처리 장치
CN111796853A (zh) 固件升级方法、系统、设备及计算机存储介质
CN112367234B (zh) 模拟数据生成方法、终端设备及计算机可读存储介质
CN115396248A (zh) 远程设备控制方法、装置、系统、电子装置和存储介质
CN110135163B (zh) 一种基于目标应用的安全检测方法、装置及系统
KR20040038271A (ko) 파일 압축 및 해제 방법
US20160266912A1 (en) External devices, electronic devices, methods for starting external devices, and methods for data processing
CN111722852B (zh) 固件的烧录方法、设备及计算机可读存储介质
CN111722852A (zh) 固件的烧录方法、设备及计算机可读存储介质
CN111679942B (zh) 烧录测试方法、系统及计算机可读存储介质
CN113741971A (zh) 微控制芯片上的程序运行方法、装置及存储介质
CN113741954A (zh) 系统软件生成方法、装置、电子设备及存储介质
CN110647753B (zh) 内核文件的获取方法、装置、设备及存储介质
CN113396391B (zh) 应用程序启动的方法、装置、电子设备及存储介质
CN111752595A (zh) 文件打包方法、装置、设备及存储介质
CN112052046A (zh) 一种针对升降装置的电机控制参数修改的方法
CN111414339A (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