C语言基础:MBD中的C语言

本文简单介绍一下博主对MBD中C语言的认识。

文章目录

  • 1 MBD中为什么会用到C语言
  • 2 用到C语言的开发阶段
    • 2.1 手写代码
    • 2.2 软件集成
  • 3 学习MBD中的C语言

1 MBD中为什么会用到C语言

干汽车软件这一行的都知道MBD是基于模型的设计,通常就是用Simulink去搭建模型来实现控制算法。对于专注于控制算法的策略工程师而言,完全不会用到C语言。

但是编译器是无法将Simulink模型编译为Hex文件刷到ECU中的,只能编译C代码。所以在编译前要用到Embedded Coder工具先把模型生成代码,然后再拿去编译。因此,C语言是MBD中绕不过去的一个话题。

2 用到C语言的开发阶段

根据博主本人有限的工作经验,认为MBD主要中有两个地方需要用到C语言。

2.1 手写代码

没错,就是手写C代码。这是因为很多功能无法或者很难通过模型来实现。比如说,应用层和底层的接口功能。再比如说,一些诊断和校验相关的功能。

由于博主不是干这个的,所以没法和大家深入探讨。

2.2 软件集成

好了,这下说到博主的主要工作了。软件集成工程师的工作是要把底层、应用层软件放在一起,做编译、链接等操作,最终出炉Hex文件交付给测试工程师。职责还包括围绕着这个主要工作的很多辅助工作,比如代码生成、MIL/SIL/PIL测试、集成配置管理、代码静态检查等,甚至有时候还需要担当策略工程师的咨询顾问。

C语言几乎贯穿工作的各个环节。
1)代码生成
Simulink和Embedded Coder中的不同配置会导致生成的代码有所区别。所以集成工程师会对Simulink进行统一的配置,以保证团队中所有成员生成符合项目要求的相同风格的代码。这就要求工程师对模型和对应代码代码以及配置项做到心里非常有数。

2)软件编译
这里的编译是个广义的概念,包括预处理、编译、链接等操作,也就是从C代码到Hex文件的过程。软件编译的过程中,编译器会经常报错,告诉我们那个C文件的第几行报了什么错。这时候需要集成工程师有丰富的经验去将这些问题一一排查。如果不熟悉C语言,这工作就很够呛了。

3)静态检查
Polyspace软件可以对C代码进行静态检查,在HIL测试和试车试验前有效地排除部分软件bug。

3 学习MBD中的C语言

上面说了那么多,主要意思就是,C语言在MBD中是无法避免的。一个汽车软件开发团队中,至少得有一个人看得懂C语言。

那么作为汽车软件集成工程师,博主个人认为,MBD中用到的C语言不算很难。首先,我们不用去手写C代码,只会看Simulink生成的C代码,能读懂就行了。其次,生成的代码很多很长,不可能全看一遍,只会关注编译报错的部分或者检查出错的部分。最后,汽车软件中的C代码不会出现学校课本上那些奇技淫巧,比方说i++或者++i之类的代码。

看过我的其他博客就会知道,博主喜欢通过简单的模型生成代码,来研究C代码和模型、配置之间的关系。后续博客还会以Simulink作为我们的老师,通过他来学习更多的C语言的知识点。不过都比较简单,因为C语言其实只是一个过客,最终的目的还是用编译器集成软件。

>>返回个人博客总目录

你可能感兴趣的:(C语言基础,simulink,c语言)