什么是自动代码生成技术?

1. 什么是自动代码生成技术?什么是基于模型的设计

汽车行业,2010年之前,大多数控制软件,比如发动机控制软件,自动变速箱控制软件,车身控制软件等等,都是手写C代码的。欧洲汽车行业使用很多外包公司来进行这项重复性的脑力活动,甚至把很多写代码的活儿外包到印度降低成本。一个大型软件比如发动机控制软件,甚至需要超过上百个码农在像网吧一样的大办公室里手动撰写不同模块的代码,之后再进行拼装。

2010年之后到现在,在汽车行业手写C代码的情况已经非常少了,如下表所示来自的预测,到2020年手动C代码在整个汽车行业所占的比例会只剩下10%左右,就这个估计我觉得还是保守的,其实现在除了少数一些发展中的车企和微型公司,C代码已经很罕见了。

代码生成_汽车行业自动代码生成技术_基于模型的设计汽车软件开发

那么如果不用手写C代码,汽车控制软件编译前的代码怎么得到呢?就是通过自动代码生成技术,或者说基于模型的设计。如果你用过类似 中的 或者其他图形化的语言就会知道,在建模和仿真的过程中很少直接使用 C 代码。对比C代码,就好像 操作系统对比 DOS 操作系统一样,一个是图形化的控制,一个是基于命令行。 的图形和 C 代码之间是可以双向转换的,比如下图这段代码:

基于模型的设计汽车软件开发_汽车行业自动代码生成技术_代码生成

那么在这个背景下, 可以搭配专门的自动代码生成工具,比如或者自己的 Coder,软件设计者只需要编写图形化的 代码,之后通过上面说到的两个工具之一自动生成对应的C代码,最后可以直接编译再刷写到具体的电子控制器上使用。

2. 这种技术有什么优点?

在使用自动代码生成技术前,汽车控制软件的主要一部分开发流程是下图这样的:

基于模型的设计汽车软件开发_汽车行业自动代码生成技术_代码生成

而使用了自动代码生成技术之后,软件开发流程就成了下面这样:

汽车行业自动代码生成技术_代码生成_基于模型的设计汽车软件开发

那么相对于上面的手动C代码,基于模型的设计有显而易见的巨大进步:

基于模型的设计和自动代码生成技术对于包括汽车和航空航天在内的很多行业可以说是革命性的进步,也是目前汽车行业最多金和最热门的技术研发领域。

作者简介

kebab 君,知乎ID:一个kebab。曾就职于全球两大德语系汽车技术咨询公司,作为核心开发者参与欧洲和中国不同车型混动控制器,混动高压电池控制器,以及自动变速箱控制器软件的开发。点击左下角原文链接,参与kebab 君的知乎live讨论:车载控制软件设计(从需求到量产)。

© 版权声明

相关文章

暂无评论

none
暂无评论...