一种软件代码一键集成方法及系统技术方案

技术编号:33617537 阅读:11 留言:0更新日期:2022-06-02 00:35
本发明专利技术涉及一种软件代码一键集成方法及系统,该方法包括的步骤为:更新编译环境中的应用层软件源代码及底层软件源代码;调用编译环境中的预设好的build文件;编译过程中判断是否已编译完成或者编译报错,如已经完成编译或者中止编译,执行下一步;判断编译环境中是否存在目标文件,如果存在,执行下一步;进行标定接口A2L文件的生成;基于目标文件及A2L文件匹配A2L文件中每个变量及参数的地址;将匹配地址后的A2L文件及所有目标文件拷贝至指定地址;完成目标文件生成。本发明专利技术可有效提高代码集成效率。集成效率。集成效率。

【技术实现步骤摘要】
一种软件代码一键集成方法及系统


[0001]本专利技术属于新能源汽车动力电池管理系统
,具体涉及软件代码一键集成技术。

技术介绍

[0002]自从软件定义汽车的趋势开始出现,在新能源汽车内部软件变得越来越重要。随着软件的更新,性能的拓展升级,人软件定义汽车的发展方向越来越明晰,为了更好的服务客户,新能源汽车软件迭代更新非常频繁。
[0003]目前新能源汽车行业电池管理系统软件最常用的开发方式是基于Matlab进行应用层程序的开发,然后将Matlab自动生成的代码与已开发的底层软件通过编译器进行编译生成目标代码,同时还需通过A2L生成工具进行标定文件的生成,此过程涉及多个步骤,如果靠工程师手动操作,严重影响了开发效率,且不能保证在每个环节不出错。
[0004]公开号为CN107656731A的中国专利文献公开了名称为“一种Matlab模型的一键编译方法”的技术,通过调用Matlab的API函数,将标定量制作成Matlab文件,在脚本调用此文件实现参数的加载,调用Matlab的API函数rtwbuild检查编译模型以及actxserver函数调用其他工具完成特定的操作,该技术存在的问题为:第一,将参数加载及代码集成合成到同一个方法中,每次编译的时候都需要进行参数加载,当不需要修改参数时,造成重复加载参数,执行效率低;第二,工具在调用外部编译器的时候需要打开编译器工程并烤白C文件和H文件到工程中,调用过程比较复杂;第三,工具在编辑A2L文件时,调用了外部A2L生成软件(如vector)进行A2L的生成,调用过程比较复杂,实现难度大。

技术实现思路

[0005]本专利技术的目的是提供一种软件代码一键集成方法及系统,解决的技术问题:第一,目前没有一键代码集成方法可以完成重复而又频繁的代码集成工作;第二,现有技术中存在一键编译方法,但是存在以下问题:a、将参数加载及代码集成合成到同一个方法中,每次编译的时候都需要进行参数加载,当不需要修改参数时,造成重复加载参数,执行效率低;b、工具在调用外部编译器的时候需要打开编译器工程并拷贝C文件和H文件到工程中,调用过程比较复杂;c、工具在编辑A2L文件时,调用了外部A2L生成软件(如vector)进行A2L的生成,调用过程比较复杂,实现难度大。
[0006]为解决上述技术问题,本专利技术采用的技术方案为:一种电池管理系统软件代码一键集成方法,包括的步骤为:S01:更新编译环境中的应用层软件源代码及底层软件源代码;S02:调用所述编译环境中的预设好的build文件;S03:编译过程中判断是否已编译完成或者编译报错,如已经完成编译或者中止编
译,执行下一步;S04:判断所述编译环境中是否存在目标文件,如果存在,执行下一步;S05:进行标定接口A2L文件的生成;S06:基于所述目标文件及A2L文件匹配A2L文件中每个变量及参数的地址;S07:将匹配地址后的所述A2L文件及所有目标文件拷贝至指定地址;S08:完成目标文件生成。
[0007]优选地,在所述S01中,所述编译环境是预先建立的,所述编译环境基于WindRiver编译器,所述编译环境包括编译生成目标代码的编译选项文件makefile、编译调用批处理文件build.bat及应用层软件源代码,所述编译环境还包括底层软件源代码或obj文件,所述应用层软件源代码和底层软件源代码分文件夹存放;所述应用层软件源代码由Matlab自动生成,所述Matlab生成代码时配置同时生成接口A2L文件;所述更新的流程为:首先将编译环境中的应用层软件源代码文件夹和底层软件源代码文件夹下的所有文件删除,然后调用批处理文件将所有生成的应用层软件源代码和底层软件源代码拷贝到编译环境的应用层软件源代码文件夹和底层软件源代码文件夹。
[0008]优选地,在所述S02中,所述build文件根据配置的编译选项对所述编译环境下的应用层软件源代码及底层软件源代码进行编译,生成目标文件elf文件、map文件。
[0009]优选地,在所述S03中,如否,则一直等待编译结果。
[0010]优选地,在所述S04中,所述目标文件为烧录在硬件中的机器代码,包括elf文件、s19文件、map文件;如否,则提示目标文件生成失败。
[0011]优选地,在所述S05中,调用rtw.asap2MergeMdlRefs函数将模型自动生成代码时生成的多个A2L文件合并为一个A2L文件。
[0012]优选地,在所述S06中,调用rtw.asap2SetAddress函数匹配所述A2L文件中每个变量及参数的地址。
[0013]本专利技术还提供一种软件代码一键集成系统,包括:更新模块,用于更新编译环境中的应用层软件源代码及底层软件源代码;调用模块,用于调用所述编译环境中的预设好的build文件;第一判断模块,用于编译过程中判断是否已编译完成或者编译报错,如已经完成编译或者中止编译,执行第二判断模块;第二判断模块,用于判断所述编译环境中是否存在目标文件,如果存在,执行生成模块;生成模块,用于进行标定接口A2L文件的生成;
匹配模块,用于基于所述目标文件及A2L文件匹配A2L文件中每个变量及参数的地址;拷贝模块,用于将匹配地址后的所述A2L文件及所有目标文件拷贝至指定地址。
[0014]优选地,在所述更新模块中,所述编译环境是预先建立的,所述编译环境基于WindRiver编译器,所述编译环境包括编译生成目标代码的编译选项文件makefile、编译调用批处理文件build.bat及应用层软件源代码,所述编译环境还包括底层软件源代码或obj文件,所述应用层软件源代码和底层软件源代码分文件夹存放;所述应用层软件源代码由Matlab自动生成,所述Matlab生成代码时配置同时生成接口A2L文件;所述更新的流程为:首先将编译环境中的应用层软件源代码文件夹和底层软件源代码文件夹下的所有文件删除,然后调用批处理文件将所有生成的应用层软件源代码和底层软件源代码拷贝到编译环境的应用层软件源代码文件夹和底层软件源代码文件夹;在所述调用模块中,所述build文件根据配置的编译选项对所述编译环境下的应用层软件源代码及底层软件源代码进行编译,生成目标文件elf文件、map文件;在所述第一判断模块中,如否,则一直等待编译结果;在所述第二判断模块中,所述目标文件为烧录在硬件中的机器代码,包括elf文件、s19文件、map文件;在所述第二判断模块中,如否,则目标文件生成失败。
[0015]优选地,在所述生成模块中,调用rtw.asap2MergeMdlRefs函数将模型自动生成代码时生成的多个A2L文件合并为一个A2L文件;在所述匹配模块中,调用rtw.asap2SetAddress函数匹配所述A2L文件中每个变量及参数的地址。
[0016]通过采用上述技术方案,本专利技术可达到的有益技术效果为:第一,本专利技术未包含模型参数修改及自动生成代码功能,该部分功能可由Matlab软件自动实现,当不需要进行参数修改及代码生成时,减少了函数调用,提高代码集成效率;第二,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件代码一键集成方法,其特征在于,包括的步骤为:S01:更新编译环境中的应用层软件源代码及底层软件源代码;S02:调用所述编译环境中的预设好的build文件;S03:编译过程中判断是否已编译完成或者编译报错,如已经完成编译或者中止编译,执行下一步;S04:判断所述编译环境中是否存在目标文件,如果存在,执行下一步;S05:进行标定接口A2L文件的生成;S06:基于所述目标文件及A2L文件匹配A2L文件中每个变量及参数的地址;S07:将匹配地址后的所述A2L文件及所有目标文件拷贝至指定地址;S08:完成目标文件生成。2.根据权利要求1所述的软件代码一键集成方法,其特征在于,在所述S01中,所述编译环境是预先建立的,所述编译环境基于WindRiver编译器,所述编译环境包括编译生成目标代码的编译选项文件makefile、编译调用批处理文件build.bat及应用层软件源代码,所述编译环境还包括底层软件源代码或obj文件,所述应用层软件源代码和底层软件源代码分文件夹存放;所述应用层软件源代码由Matlab自动生成,所述Matlab生成代码时配置同时生成接口A2L文件;所述更新的流程为:首先将编译环境中的应用层软件源代码文件夹和底层软件源代码文件夹下的所有文件删除,然后调用批处理文件将所有生成的应用层软件源代码和底层软件源代码拷贝到编译环境的应用层软件源代码文件夹和底层软件源代码文件夹。3.根据权利要求2所述的软件代码一键集成方法,其特征在于,在所述S02中,所述build文件根据配置的编译选项对所述编译环境下的应用层软件源代码及底层软件源代码进行编译,生成目标文件elf文件、map文件。4.根据权利要求1所述的软件代码一键集成方法,其特征在于,在所述S03中,如否,则一直等待编译结果。5.根据权利要求1所述的软件代码一键集成方法,其特征在于,在所述S04中,所述目标文件为烧录在硬件中的机器代码,包括elf文件、s19文件、map文件;如否,则目标文件生成失败。6.根据权利要求1所述的软件代码一键集成方法,其特征在于,在所述S05中,调用rtw.asap2MergeMdlRefs函数将模型自动生成代码时生成的多个A2L文件合并为一个A2L文件。7.根据权利要求1所述的软件代码一键集成方法,其特征在于,在所述S06中,调用rtw.asap...

【专利技术属性】
技术研发人员:丁灿朱骞牟丽莎邓承浩
申请(专利权)人:重庆长安新能源汽车科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1