一种MCU升级包生成方法、系统、设备及存储介质与流程
未命名
09-22
阅读:107
评论:0
一种mcu升级包生成方法、系统、设备及存储介质
技术领域
1.本发明涉及mcu升级包制作技术领域,更具体地说,它涉及一种mcu升级包生成方法、系统、设备及存储介质。
背景技术:
2.远程升级技术(over-the-air technology,ota)是通过移动通信(gsm或cdma)的空中接口对应用进行远程管理的技术。汽车零部件的ota功能是保障汽车软件功能可进化的基础,也是智能网联汽车关键零部件的基本功能。当整车功能出现严重缺陷时,可通过ota进行修复。mcu升级包是进行ota的对象,mcu升级包的生成是实现ota的前提。
3.目前,关于mcu升级包的生成,业内尚无标准化的方法提出。传统的做法是由研发人员通过某些编辑软件手工制作产生。质量好坏完全依赖研发人员的个人能力,不利于技术的积累和传承。同时,手工制作存在耗时长、容易出错的弊端。在产品开发早期,频繁的版本更换是一种常态,手工制作显然无法满足快速出版的需求。
4.此外,不同mcu厂家编译后产生的目标文件格式可能会有所不同。不同规格的mcu存储器的具体参数往往也会有所不同,升级文件的单块长度直接受其影响。另外,不同的客户对mcu升级文件(或包)格式的要求可能也不同。因此,如何快速高效的生成mcu升级包,既兼容市面上多种多样的mcu,同时,又满足客户对文件格式的定制要求,目前业内尚未就此问题给出有效的解决方案。
技术实现要素:
5.本技术的目的是提供一种mcu升级包生成方法,通过计算机设备运行本方法自动生成mcu升级包,实现mcu升级包快速生成,可以缩短产品的开发调试过程、降低研发成本。
6.本技术第一方面提供一种mcu升级包生成方法,方法包括:
7.s1、对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;
8.s2、对所述目标文件内的目标代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时目标文件;
9.s3、计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;
10.s4、对所述初始校验文件内的校验代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时校验文件;
11.s5、将临时校验文件和所述临时目标文件合并,得到升级文件;
12.s6、对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。
13.采用上述技术方案,对目标程序进行编译、编辑、校验、合并、压缩等处理,即可快速、自动生成升级文件,通过升级文件生成ota升级包,便于产品发布后的功能升级与维护场景,或者通过升级文件生成mcu烧录的烧录升级包,便于产品的生产或开发测试环节。
14.在第一方面的一种可能的实现方式中,所述第一操作为:计算所述升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述第二操作为:对所述升级文件添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。
15.在第一方面的一种可能的实现方式中,所述步骤s1还包括:将所述目标文件的格式转化为预设格式;所述步骤s3还包括:将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
16.在第一方面的一种可能的实现方式中,所述步骤s5还包括:将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
17.本技术第二方面提供一种mcu升级包生成系统,包括:
18.编译模块,用于对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;
19.文件编辑模块,用于对所述目标文件内的目标代码进行填充和对齐处理,得到代码连续且长度固定的临时目标文件;
20.信息安全模块,用于计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;
21.文件编辑模块,还用于对所述初始校验文件内的校验代码进行填充和对齐处理,得到代码连续且长度固定的临时校验文件;
22.升级文件生成模块,用于将临时校验文件和所述临时目标文件合并,得到升级文件;
23.升级包生成模块,用于对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。
24.在第二方面的一种可能的实现方式中,所述升级包生成模块包括ota升级包生成模块和烧录升级包生成模块;所述ota升级包生成模块用于执行第一操作:调用所述文件编辑模块计算所述升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述烧录升级包生成模块用于执行第二操作:调用所述文件编辑模块对所述升级文件添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。
25.在第二方面的一种可能的实现方式中,所述编译模块还用于将所述目标文件的格式转化为预设格式;所述文件编辑模块还用于将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
26.在第二方面的一种可能的实现方式中,所述升级文件生成模块还用于将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
27.本技术第三方面提供一种mcu升级包生成设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述的mcu升级包生成方法。
28.本技术第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的mcu升级包生成方法。
29.与现有技术相比,本技术具有以下有益效果:本方法通过提出的mcu升级包生成方
法,对目标程序进行编译、编辑、校验、合并、压缩等处理,即可快速、自动生成升级文件,通过处理升级文件生成ota升级包或者烧录升级包,便于产品发布后的功能升级与维护、以及产品的生产或开发测试环节;且通过预设格式、预设字符和预设长度既兼容市面上多种多样的mcu,同时,又满足客户对文件格式的定制要求。
附图说明
30.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本技术的一部分,并不构成对本发明实施例的限定。在附图中:
31.图1为本技术实施例提供的一种mcu升级包生成方法的流程图;
32.图2为本技术实施例提供的ota升级包的生成流程图;
33.图3为本技术实施例提供的烧录升级包的生成流程图;
34.图4为本技术实施例提供的一种mcu升级包生成系统的结构示意图;
35.图5为本技术实施例提供的一种mcu升级包生成设备的结构示意图。
36.附图中标记及对应的零部件名称:
37.m401、编译模块;m402、文件编辑模块;m403、信息安全模块;m404、升级文件生成模块;m405、升级包生成模块;500、mcu升级包生成设备;501、处理器;502、存储器。
具体实施方式
38.在下文中,可在本技术的各种实施例中使用的术语“包括”或“可包括”指示所申请的功能、操作或元件的存在,并且不限制一个或更多个功能、操作或元件的增加。此外,如在本技术的各种实施例中所使用,术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
39.在本技术的各种实施例中,表述“或”或“b或/和c中的至少一个”包括同时列出的文字的任何组合或所有组合。例如,表述“b或c”或“b或/和c中的至少一个”可包括b、可包括c或可包括b和c二者。
40.在本技术的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本技术的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
41.为使本技术的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本技术作进一步的详细说明,本技术的示意性实施方式及其说明仅用于解释本技术,并不作为对本技术的限定。
42.首先,结合附图对本技术中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
43.mcu也称为单片微控器,属于一种集成式电路芯片,主要包含cpu、只读存储器rom和随机存储器ram等。程序存储在rom中,当系统上电时,cpu从rom的起始地址读取到指令开始执行。
44.mcu的rom存储器在出厂时是空白的,需先将程序烧录到芯片中才可以正常运行。在产品开发时期,频繁的版本更换是一种常态,需要不断将新版本的升级包烧录至mcu进行版本测试;在产品装配至车辆使用时期,当软件需求发生变更时,需要将新版本的升级包通过ota技术载入mcu进行版本升级。
45.ota(over-the-air)为远程升级技术,即使用wifi、蓝牙、4g、5g、nb-iot等方式将升级包传输到mcu,mcu进行代码存储,完成升级的过程。
46.目前,mcu升级包主要是技术人员通过某些编辑软件手工制作产生,通常对编译产生的文件通过通用编辑软件进行各种手工编辑操作,如填充特定字符、复制、粘贴、插入等,选择的编辑软件不同,往往操作也不尽相同,但不管采用哪种编辑软件都需要大量的人工操作,对于一个熟练操作者来说,若制作一个ota升级包和一个烧录升级包大概需要20~30分钟。因此,手工制作存在效率低下、质量不一的问题。
47.有鉴于此,本技术提供了一种mcu升级包生成方法,通过对目标程序的系列处理实现mcu升级包的自动制作。根据mcu升级包的使用场景,本技术的mcu升级包分为用于ota升级的ota升级包和用于产品开发烧录的烧录升级包。
48.请参见图1所示,图1为本技术提供的一种mcu升级包生成方法的流程图。如图1所示,该方法包括:
49.s1、对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;
50.s2、对所述目标文件内的目标代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时目标文件;
51.s3、计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;
52.s4、对所述初始校验文件内的校验代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时校验文件;
53.s5、将临时校验文件和所述临时目标文件合并,得到升级文件;
54.s6、对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。
55.具体的,目标程序为待烧录的bootloader程序或者待升级的app程序,调用编译软件或编译模块对目标程序进行编译,获得目标文件,目标文件内包括至少一段目标代码;对目标代码中的空位置填充空指令字符,使得目标代码连续,并以预设长度填充空指令字符对齐,使得目标代码长度固定作为临时目标文件;接着制作临时目标文件对应的临时校验文件:通过校验算法计算临时目标文件的校验信息,并将校验信息与目标代码的地址信息、长度信息和其他辅助信息(例如:校验信息头和信息尾)组合形成初始校验文件,进一步对初始校验文件进行填充、对齐处理后,得到与临时目标文件对应的临时校验文件;将临时目标文件与临时校验文件合并,即为升级文件。升级文件是mcu升级包的核心,其包含了升级所需的全部信息。升级文件可以直接压缩成预设格式作为ota升级包,或者执行第一操作生成带安全校验信息的ota升级包,又或者执行第二操作增加标识信息,生成烧录升级包。
56.需要说明的是,不同规格的mcu存储器的具体参数不同,导致升级文件的单块长度不同。因此执行填充和对齐处理,采用预设字符填充,获得以预设长度对齐的文件。上述的空位置是指目标代码中的空白位置,空指令字符可以表示为0xff或者其他用于表示该位置为空白的字符。上述的校验算法可以提前预设,根据需要选择crc32、md5、aes128等生成校验码。上述的压缩包格式可以根据预设格式选择,如.zip、.rar、.7z等格式。
57.可以理解的是,本方法通过提出的mcu升级包生成方法,可通过计算机设备运行实现,对目标程序进行编译、编辑、校验、合并、压缩等处理,即可自动生成升级文件。进一步可通过升级文件生成ota升级包,便于产品发布后的功能升级与维护场景,或者生成mcu烧录的烧录升级包,便于产品的生产或开发测试环节。
58.下面对升级文件生成ota升级包、烧录升级包的过程做详细论述。
59.在一种可能的实施例中,所述第一操作为:计算所述升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述第二操作为:对所述升级文件添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。
60.具体的,请参见图2所示,图2为ota升级包的制作流程图。图2中,在获得升级文件后,对升级文件执行第一操作,通过校验算法或者加密算法计算升级文件的校验信息或者签名信息,选择校验信息或者签名信息作为安全校验文件。最后将安全校验文件与升级文件合并压缩,作为ota升级包。
61.需要说明的是,制作ota升级包时,步骤s1的程序为待升级的app程序。另外,升级文件也可以直接压缩作为ota升级包使用,但与增加安全校验文件的ota升级包相比,安全性有所降低。
62.请参见图3所示,图3为烧录升级包的制作流程图。图3中,在获得升级文件后,对升级文件执行第二操作,在升级文件的预定义位置添加的升级有效的标识信息,形成临时升级文件,将临时升级文件和步骤s2得到的临时目标文件打包合并,生成烧录升级包。
63.需要说明的是,制作烧录升级包时,步骤s1的程序选用bootloader程序。
64.在利用上述方法制作升级包的过程中,由于mcu厂家不同,其编译后产生的目标文件格式可能会有所不同。另外,不同的客户对mcu升级文件(或包)格式的要求可能也不同。因此,为兼容市面上多种多样的mcu,同时,又满足客户对文件格式的定制要求,下面给出解决升级包格式问题的两种方式。
65.在一种可能的实施例中,所述步骤s1还包括:将所述目标文件的格式转化为预设格式;所述步骤s3还包括:将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种;
66.具体的,在生成目标文件和临时校验文件时就采用同一的预设格式,后期可以直接合并,无需另行转化。
67.在另一种可能的实施例中,所述步骤s5还包括:将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
68.具体的,在文件合并后再转化为预设格式,相比与先转化后合并的方法而言,后转化可能会存在文件较大或处理繁琐的问题。
69.需要说明的是,在汽车电子行业预设格式优选s19格式,如果应用于其他行业,也
可以使用其他格式。
70.上述详细阐述了本技术实施例的方法,为了便于更好的实施本技术实施例的上述方案,相应地,下面还提供用于配合实施上述方案的系统。
71.请参见图4所示,图4为本技术提供的一种mcu升级包生成系统的结构示意图。如图4所示,该系统包括:
72.编译模块m401,用于对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;
73.文件编辑模块m402,用于对所述目标文件内的目标代码进行填充和对齐处理,得到代码连续且长度固定的临时目标文件;
74.信息安全模块m403,用于计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;
75.文件编辑模块m402,还用于对所述初始校验文件内的校验代码进行填充和对齐处理,得到代码连续且长度固定的临时校验文件;
76.升级文件生成模块m404,用于将临时校验文件和所述临时目标文件合并,得到升级文件;
77.升级包生成模块m405,用于对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。
78.在一种可能的实施例中,所述升级包生成模块包括ota升级包生成模块和烧录升级包生成模块;所述ota升级包生成模块用于执行第一操作:调用信息安全模块m403计算升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述烧录升级包生成模块用于执行第二操作:调用文件编模块m402对升级文件添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。
79.在一种可能的实施例中,所述编译模块还用于将所述目标文件的格式转化为预设格式;所述文件编辑模块还用于将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
80.在另一种可能的实施例中,所述升级文件生成模块还用于将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。
81.上述阐述了本技术实施例的系统,与上述方法对应,为了便于更好的理解本技术实施例的上述方案,下面提供结合上述方法和系统,提供ota升级包和烧录升级包的具体制作过程。
82.请参见图2所示,ota升级包的制作过程如下:
83.步骤s101:编译app产生目标文件。文件格式为预设格式,预设格式可以选择多种格式,优选s19格式,下同。具体的编译是通过调用编译模块m401的接口来实现,输入参数为app。编译完成后,会继续执行后续的操作。
84.步骤s102:对上述目标代码的空位置填充预设空指令字符,以保证代码为连续的一整块,并以预设长度对齐,得到s103步骤的临时目标文件。具体的填充和对齐操作通过调用文件编辑模块m402来实现。预设空指令字符和预设长度作为输入参数,均可指定。预设空指令字符和预设长度是由芯片厂家决定的,芯片厂家不同,其值可能会不同。具体需要根据
芯片厂家提供的相关资料来确定。若厂家未说明,预设字符可以指定为0xff。若用户未指定,默认预设字符为0xff。预设长度具体是由芯片内部的flash特性决定的。若用户未指定,默认值为1024。
85.步骤s104:计算校验码是通过调用信息安全模块m403的接口来实现的。具体是先计算临时目标文件的校验码。并在此基础上添加目标代码起始地址、长度、校验信息头和校验信息尾,得到初始校验文件,文件格式为预设格式。关于校验文件的组织结构,以crc32为例,举例说明如下:
86.假如计算后得到crc32校验码为0x12345678,目标代码起始地址为0x01000000,目标代码长度通过分析待计算的文件得到真实的长度为0x00080000,crc32信息头为0xaa55aa55,crc32信息尾为0x00550055,校验信息的起始地址为0x01081000,作为m403模块的输入参数的定义如下,crc32算法为1,crc32校验码长度为4。
87.crc16算法为0,crc16校验长度为2,md5算法为2,md5校验长度为16,生成的校验文件的具体内容如下:
88.01081000:aa 55aa 55 01 00 00 00 00 08 00 00ff ff 01 04
89.01081010:12 34 56 78 00 55 00 55ff ff ff ff ff ff ff ff
90.步骤s105:对上述初始校验文件中的空位置填充预设空指令字符,以保证代码为连续的一整块,并以预设长度对齐,得到临时校验文件。具体的填充和对齐操作通过调用文件编辑模块m402来实现。预设空指令字符和预设长度作为输入参数,均可指定。预设空指令字符和预设长度是由芯片厂家决定的,芯片厂家不同,其值可能会不同。具体需要根据芯片厂家提供的相关资料来确定。若厂家未说明,预设字符可以指定为0xff。若用户未指定,默认预设字符为0xff。预设长度具体是由芯片内部的flash特性决定的。若用户未指定,默认值为1024。
91.步骤s106:把步骤s103的临时目标文件与步骤s105的临时校验文件进行合并得到步骤s107预设格式的升级文件。具体的合并操作通过调用升级文件生成模块m303来实现。作为可选,也可以合并后再转换为预设格式,相比前者,可能会存在文件较大或处理繁琐的问题。具体的格式转换也可以通过调用文件编辑模块m402实现。升级文件应包含两块信息,第一块为目标代码,第二块为校验信息。
92.步骤s107:经过步骤s106处理后得到升级文件。
93.步骤s108:作为可选的步骤,对升级文件采用具体的校验算法计算得到校验值,生成安全校验文件,比如md5校验。具体是通过调用信息安全模块m403的接口来实现的。校验文件以文本格式保存。具体的内容格式举例如下:
94.md5(ota升级文件名.s19)=dbccdfa5c5b3337a1dda60a4a9677f3c
95.以上的dbccdfa5c5b3337a1dda60a4a9677f3c为ota升级文件名.s19的md5值。
96.另外,作为可选,还可以增加代表用户身份的加密签名信息。
97.步骤s109:对步骤s108生成的校验文件和步骤s107生成的升级文件进行压缩生成最终的ota升级包。具体的压缩操作通过调用升级包生成模块m405的接口来实现。具体的压缩包的格式需要根据客户需求进行指定。
98.至此,ota升级包生成完毕。
99.请参见图3所示,烧录升级包的制作过程如下:
100.步骤s201:编译bootloader程序生成目标文件,目标文件中含bootloader目标代码,文件格式为预设格式。具体的编译是通过调用编译模块m401的接口来实现,输入参数为bootloader。编译完成后,继续执行后续的操作。
101.步骤s202:对bootloader目标代码的空位置填充预设空指令字符,以保证代码为连续的一整块,并以预设长度对齐。具体的填充和对齐操作通过调用文件编辑模块m402来实现。预设空指令字符和预设长度作为输入参数,均可指定。预设空指令字符和预设长度是由芯片厂家决定的,芯片厂家不同,其值可能会不同。具体需要根据芯片厂家提供的相关资料来确定。若厂家未说明,预设字符可以指定为0xff。若用户未指定,默认预设字符为0xff。预设长度具体是由芯片内部的flash特性决定的。若用户未指定,默认值为1024。
102.步骤s203:经过步骤s202处理后得到临时目标文件。
103.步骤s204:以步骤s107生成的升级文件作为输入提供给后续的步骤使用。
104.步骤s205:对步骤s204提供的升级文件进行编辑,在预定义位置添加升级有效标识信息。通过调用文件编辑模块m402的接口来实现具体的添加操作。例如,预定义位置为0x01000000,升级有效标识为0xfeedabcd。编辑前如下,
105.01000000:ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
106.执行编辑后如下,
107.01000000:fe ed ab cd ff ff ff ff ff ff ff ff ff ff ff ff
108.步骤s206:经过步骤s205处理后得到临时升级文件。
109.步骤s207:把步骤s206得到的临时升级文件与步骤203得到的临时目标文件进行合并,得到最终的烧录升级包,格式为预设格式。作为可选,也可以合并后再转换为预设格式,相比与前者,可能会存在文件较大或处理繁琐的问题。具体的合并操作是通过调用升级包生成模块m405的接口来实现。
110.至此,烧录文件生成完毕。
111.上述详细阐述了ota升级包和烧录升级包的制作过程,为了便于更好的实施本技术实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
112.请参见图5所示,图5为本技术提供的一种mcu升级包生成设备的结构示意图。该mcu升级包生成设备500,包括处理器501和存储器502,该存储器502中存储有计算机程序,该处理器501通过调用存储器502中存储的所述计算机程序,用于执行上述的mcu升级包生成方法。
113.可以理解的,该处理器501以及存储器502的元件型号可以根据需求采用任意型号,本技术不作限定。
114.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。
115.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种mcu升级包生成方法,其特征在于,所述方法包括:s1、对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;s2、对所述目标文件内的目标代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时目标文件;s3、计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;s4、对所述初始校验文件内的校验代码进行填充和对齐处理,通过预设字符填充代码,得到代码连续且以预设长度对齐的临时校验文件;s5、将临时校验文件和所述临时目标文件合并,得到升级文件;s6、对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。2.根据权利要求1所述的一种mcu升级包生成方法,其特征在于,所述第一操作为:计算所述升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述第二操作为:对所述升级文件添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。3.根据权利要求1或2所述的一种mcu升级包生成方法,其特征在于,所述步骤s1还包括:将所述目标文件的格式转化为预设格式;所述步骤s3还包括:将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。4.根据权利要求1或2所述的一种mcu升级包生成方法,其特征在于,所述步骤s5还包括:将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。5.一种mcu升级包生成系统,其特征在于,所述系统包括:编译模块,用于对目标程序进行编译,得到目标文件,所述目标文件包括至少一段目标代码;文件编辑模块,用于对所述目标文件内的目标代码进行填充和对齐处理,得到代码连续且长度固定的临时目标文件;信息安全模块,用于计算所述临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与所述校验信息合并,得到初始校验文件;文件编辑模块,还用于对所述初始校验文件内的校验代码进行填充和对齐处理,得到代码连续且长度固定的临时校验文件;升级文件生成模块,用于将临时校验文件和所述临时目标文件合并,得到升级文件;升级包生成模块,用于对所述升级文件执行第一操作生成ota升级包或者对所述升级文件执行第二操作生成烧录升级包。6.根据权利要求5所述的一种mcu升级包生成系统,其特征于,所述升级包生成模块包括ota升级包生成模块和烧录升级包生成模块;所述ota升级包生成模块用于执行第一操作:调用所述文件编辑模块计算所述升级文件的签名信息或检验信息,得到安全校验文件,将所述安全校验文件与所述升级文件合并压缩,得到ota升级包;所述烧录升级包生成模块用于执行第二操作:调用所述文件编辑模块对所述升级文件
添加标识信息,得到临时升级文件,将所述临时升级文件和所述临时目标文件合并,得到烧录升级包。7.根据权利要求5或6所述的一种mcu升级包生成系统,其特征于,所述编译模块还用于将所述目标文件的格式转化为预设格式;所述文件编辑模块还用于将所初始校验文件的格式转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。8.根据权利要求5或6所述的一种mcu升级包生成系统,其特征于,所述升级文件生成模块还用于将所述升级文件转化为预设格式,所述预设格式为s19、hex和bin中的任意一种。9.一种mcu升级包生成设备,其特征在于,所述mcu升级包生成设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-4任意一项所述的mcu升级包生成方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述权利要求1-4任意一项所述的mcu升级包生成方法。
技术总结
本发明公开了一种MCU升级包生成方法、系统、设备及存储介质,涉及MCU升级包制作技术,解决了现有MCU升级包制作效率低下的问题。方案包括对目标程序进行编译,得到目标文件;对目标文件内的目标代码进行填充和对齐处理,得到临时目标文件;计算临时目标文件的校验信息,将目标代码的地址信息、长度信息和其他辅助信息与校验信息合并,得到初始校验文件;对初始校验文件内的校验代码进行填充和对齐处理,得到临时校验文件;将临时校验文件和临时目标文件合并,得到升级文件;对升级文件执行第一操作生成OTA升级包或者对升级文件执行第二操作生成烧录升级包;通过上述处理实现MCU升级包的自动制作,可兼容多种MCU、定制文件格式。式。式。
技术研发人员:冯善义 吴国庆 周海龙 张宇翔 曾发屏 贾朝强
受保护的技术使用者:车路通科技(成都)有限公司
技术研发日:2023.06.20
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种卡车用节能DPF清洗装置及其方法与流程 下一篇:一种家蚕的喂养方法