System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种代码生成方法、装置、电子设备及存储介质制造方法及图纸_技高网

一种代码生成方法、装置、电子设备及存储介质制造方法及图纸

技术编号:43814380 阅读:3 留言:0更新日期:2024-12-27 13:28
本发明专利技术涉及一种代码生成方法、装置、电子设备及存储介质,包括:获取目标配置参数;调用预设动态链接库中的预设数据处理函数,以使得预设动态链接库基于预设数据处理函数对目标配置参数进行处理,得到目标接口信息;基于目标接口信息,生成与目标电子控制器对应的目标代码;目标代码用于实现第一软件组件与第二软件组件之间的通信和/或第一软件组件的调度。本发明专利技术将与软件组件的通信和/或调度相关的数据处理函数封装在动态链接库中,通过调用动态链接库生成接口信息,进一步基于接口信息生成用于实现软件组件的通信和/或调度的代码,可以防止代码被反编译。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种代码生成方法、装置、电子设备及存储介质


技术介绍

1、在汽车开放系统架构(automotive open system architecture,autosar)下,运行时环境(run-time environment,rte)作为连接应用层(software component)和基础软件软件层(basic software,bsw)的中间层,主要负责实现应用层的通信以及调度。rte模块具有逻辑复杂、代码量大等特点,因此,rte模块的代码生成器的开发是autosar所有模块的代码生成器中功能最多、最复杂的,也是所有autosar技术供应商的核心技术。

2、目前autosar技术供应商开发的rte代码生成器通常采用eclipse为底层框架,采用artop进行autosar数据处理,采用xtend为代码模板,以上所有技术栈均以java语言为基础,但java语言天然存在被反编译的缺点,因此,autosar技术供应商提供rte代码生成器时,存在rte核心代码被泄露的风险。

3、目前常见的防反编译手段有代码混淆、加密等,但这些方法开发工作量巨大,极大增加了代码生成器的开发难度;若采用免费开源的第三方库提供的防反编译方法,又存在执行效率低、防反编译层度不高等问题。


技术实现思路

1、为了解决上述技术问题,本专利技术公开了一种代码生成方法、装置、电子设备及存储介质,将与软件组件的通信和/或调度相关的数据处理函数封装在动态链接库中,通过调用动态链接库生成接口信息,进一步基于接口信息生成用于实现软件组件的通信和/或调度的代码,可以防止代码被反编译。

2、为了达到上述目的,本专利技术提供了一种代码生成方法,应用于目标电子控制器,所述目标电子控制器包括第一软件组件,所述方法包括:

3、获取目标配置参数;所述目标配置参数包括所述第一软件组件与第二软件组件之间的通信配置参数和/或所述第一软件组件的调度配置参数;

4、调用预设动态链接库中的预设数据处理函数,以使得所述预设动态链接库基于所述预设数据处理函数对所述目标配置参数进行处理,得到目标接口信息;所述目标接口信息表征所述第一软件组件对所述第二软件组件的访问信息和/或所述目标电子控制器对所述第一软件组件的访问信息;

5、基于所述目标接口信息,生成与所述目标电子控制器对应的目标代码;所述目标代码用于实现所述第一软件组件与所述第二软件组件之间的通信和/或所述第一软件组件的调度。

6、在一个可选的实施例中,所述预设数据处理函数包括拼接函数以及序列化函数,所述调用预设动态链接库中的预设数据处理函数,以使得所述预设动态链接库基于所述预设数据处理函数对所述目标配置参数进行处理,得到目标接口信息,包括:

7、将所述目标配置参数发送至所述预设动态链接库,以使得所述预设动态链接库基于所述拼接函数对所述目标配置参数进行拼接,得到所述目标接口信息,以及基于所述序列化函数对所述目标接口信息进行序列化处理,得到序列化接口信息,将所述序列化接口信息保存在预设路径。

8、在一个可选的实施例中,所述将所述目标配置参数发送至所述预设动态链接库,以使得所述预设动态链接库基于所述拼接函数对所述目标配置参数进行拼接,得到所述目标接口信息,以及基于所述序列化函数对所述目标接口信息进行序列化处理,得到序列化接口信息,将所述序列化接口信息保存在预设路径之后,所述方法还包括:

9、从所述预设路径获取所述序列化接口信息;

10、对所述序列化接口信息进行反序列化处理,将所述序列化接口信息恢复为所述目标接口信息。

11、在一个可选的实施例中,所述基于所述目标接口信息,生成与所述目标电子控制器对应的目标代码,包括:

12、基于所述目标接口信息确定目标代码模版;

13、基于所述目标接口信息以及所述目标代码模版,生成与所述目标电子控制器对应的目标代码。

14、在一个可选的实施例中,所述基于所述目标接口信息确定目标代码模版,包括:

15、基于所述目标接口信息确定目标加密模板;

16、调用所述预设动态链接库,获取所述目标加密模板对应的目标密钥;

17、基于所述目标密钥对所述目标加密模板进行解密处理,得到所述目标代码模版。

18、在一个可选的实施例中,所述基于所述目标接口信息以及所述目标代码模版,生成与所述目标电子控制器对应的目标代码,包括:

19、加载所述目标代码模版,得到与所述目标接口信息对应的目标代码框架信息;

20、对所述目标接口信息以及所述目标代码框架信息进行整合处理,生成所述目标代码。

21、在一个可选的实施例中,所述加载所述目标代码模版,得到与所述目标接口信息对应的目标代码框架信息之后,所述方法还包括:

22、在所述目标代码模版加载完成后,删除所述目标代码模版。

23、本专利技术还提供了一种代码生成装置,应用于目标电子控制器,所述目标电子控制器包括第一软件组件,所述装置包括:

24、数据获取模块,用于获取目标配置参数;所述目标配置参数包括所述第一软件组件与第二软件组件之间的通信配置参数和/或所述第一软件组件的调度配置参数;

25、动态链接库调用模块,用于调用预设动态链接库中的预设数据处理函数,以使得所述预设动态链接库基于所述预设数据处理函数对所述目标配置参数进行处理,得到目标接口信息;所述目标接口信息表征所述第一软件组件对所述第二软件组件的访问信息和/或所述目标电子控制器对所述第一软件组件的访问信息;

26、代码生成模块,用于基于所述目标接口信息,生成与所述目标电子控制器对应的目标代码;所述目标代码用于实现所述第一软件组件与所述第二软件组件之间的通信和/或所述第一软件组件的调度。

27、本专利技术还提供了一种电子设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行,以实现如上述所述的代码生成方法。

28、本专利技术还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行,以实现如上述所述的代码生成方法。

29、实施本专利技术实施例,具有如下有益效果:

30、本专利技术公开的代码生成方法,将与软件组件的通信和/或调度相关的数据处理函数封装在动态链接库中,通过调用动态链接库生成接口信息,进一步基于接口信息生成用于实现软件组件的通信和/或调度的目标代码,由于动态链接库中的数据处理函数具有防反编译的特点,因此通过调用动态链接库生成的接口信息可以防止被反编译,从而以接口信息作为代码内容而生成的目标代码也可以实现防反编译的效果,此外,由于不需要引入复杂的代码防反编译方法,也不会影响目标代码的生成效率,可以保证软件组件的通本文档来自技高网...

【技术保护点】

1.一种代码生成方法,其特征在于,应用于目标电子控制器,所述目标电子控制器包括第一软件组件,所述方法包括:

2.根据权利要求1所述的代码生成方法,其特征在于,所述预设数据处理函数包括拼接函数以及序列化函数,所述调用预设动态链接库中的预设数据处理函数,以使得所述预设动态链接库基于所述预设数据处理函数对所述目标配置参数进行处理,得到目标接口信息,包括:

3.根据权利要求2所述的代码生成方法,其特征在于,所述将所述目标配置参数发送至所述预设动态链接库,以使得所述预设动态链接库基于所述拼接函数对所述目标配置参数进行拼接,得到所述目标接口信息,以及基于所述序列化函数对所述目标接口信息进行序列化处理,得到序列化接口信息,将所述序列化接口信息保存在预设路径之后,所述方法还包括:

4.根据权利要求1所述的代码生成方法,其特征在于,所述基于所述目标接口信息,生成与所述目标电子控制器对应的目标代码,包括:

5.根据权利要求4所述的代码生成方法,其特征在于,所述基于所述目标接口信息确定目标代码模版,包括:

6.根据权利要求4所述的代码生成方法,其特征在于,所述基于所述目标接口信息以及所述目标代码模版,生成与所述目标电子控制器对应的目标代码,包括:

7.根据权利要求6所述的代码生成方法,其特征在于,所述加载所述目标代码模版,得到与所述目标接口信息对应的目标代码框架信息之后,所述方法还包括:

8.一种代码生成装置,其特征在于,应用于目标电子控制器,所述目标电子控制器包括第一软件组件,所述装置包括:

9.一种电子设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行,以实现如权利要求1-7任意一项所述的代码生成方法。

10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行,以实现如权利要求1-7任意一项所述的代码生成方法。

...

【技术特征摘要】

1.一种代码生成方法,其特征在于,应用于目标电子控制器,所述目标电子控制器包括第一软件组件,所述方法包括:

2.根据权利要求1所述的代码生成方法,其特征在于,所述预设数据处理函数包括拼接函数以及序列化函数,所述调用预设动态链接库中的预设数据处理函数,以使得所述预设动态链接库基于所述预设数据处理函数对所述目标配置参数进行处理,得到目标接口信息,包括:

3.根据权利要求2所述的代码生成方法,其特征在于,所述将所述目标配置参数发送至所述预设动态链接库,以使得所述预设动态链接库基于所述拼接函数对所述目标配置参数进行拼接,得到所述目标接口信息,以及基于所述序列化函数对所述目标接口信息进行序列化处理,得到序列化接口信息,将所述序列化接口信息保存在预设路径之后,所述方法还包括:

4.根据权利要求1所述的代码生成方法,其特征在于,所述基于所述目标接口信息,生成与所述目标电子控制器对应的目标代码,包括:

5.根据权利要求4所述的代码生成方法,其特征在于,所述基于所...

【专利技术属性】
技术研发人员:李耕
申请(专利权)人:中汽创智科技有限公司
类型:发明
国别省市:

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

1