汽车行业的嵌入式软件开发岗位避坑

给毕业生的一些建议

从我毕业参加工作已经一年多了,毕业时阴差阳错选择进入汽车行业,成为一名嵌入式软件开发工程师。

刚入职的时候对自己的岗位完全不了解,导致岗位的工作内容与自己的预期相差甚远,度过了三个月非常难熬的时光。找工作的时候只关心薪资,只知道岗位的名字,那你不进坑谁进坑。

给即将毕业,正在选择职业方向的同学一些建议:充分了解你将从事的行业和岗位。在网络上充分的调研,或者去问问你的学长学姐,当然最好的方法就是去你将来想要去的行业和岗位实习,这就是实习的意义:低成本的试错。当你失去应届生的身份时再去换方向,那是要脱层皮的。

汽车行业的发展现状

现在很多人之所以选择汽车行业的一个最大的原因是:互联网不行了。但是抱着这种想法被迫选择汽车行业的人,是最有可能失望的。

互联网是第三产业,开发一款APP,然后通过给用户提供服务来盈利,几乎所有的成本都是人工成本。但是汽车行业是第二产业,要生产出一辆汽车,需要上下游多少产业的支持。人在其中的决定性作用是稍弱的,原材料成本、产线成本、销售成本,哪一项不比软件开发的人工成本重要。这也是为什么互联网的工资普遍比嵌入式高。

你以互联网的预期进入汽车行业,你就会有这样的疑问:为什么没有产品经理?为什么没有明确的需求?为什么软件开发竟然不需要写代码?

因为汽车行业没有高并发,没有服务器集群,没有上亿的用户等着用你的软件。汽车行业的软件是买车子送的!至少现在是这样。


软件定义汽车

当然,现在汽车行业也在发生一些变化:软件定义汽车。以特斯拉为首的造车新势力,经常会喊这句口号,什么新的电子电气架构、新的SOA架构、新的Autosar标准。什么自动驾驶、智能网联、新能源。这些新的概念更多的是商业的东西,是用来吸引投资的东西。如果你是软件架构师、算法工程师、人工智能科学家,你可以明显的感觉出变化,但对于嵌入式软件的变化就是多了一些MPU的应用场景,但目前需求量还不高。

汽车行业的嵌入式软件更多的是重流程重标准轻代码汽车毕竟是车规级产品,不是消费类电子。手写代码难免会出错,所以基于传统的Autosar(CP)的软件大部分都是配置生成的。一些基于Adaptive Autosar(AP)的软件是手写的,我觉得这也是因为还没有成熟,等Adaptive Autosar成熟了之后,怕是也要变成配置生成代码。

部分嵌入式软件岗位分析

我分享一下我了解的岗位:

MCU方向:


Classic Autosar 架构图

MCAL工程师:推荐指数 ⭐⭐⭐⭐

MCAL是CP autosar中的微处理器抽象层,你可以理解为符合CP autosar标准的MCU驱动开发。对MCU的底层寄存器操作进行抽象封装,提供给上层使用。

优点:

  1. 对MCU的底层原理要求较高,从事这个岗位可以加深对MCU的理解,成长性不错。
  2. 可以加深对CP autosar的理解

缺点:

  1. 工作内容偏底层,都是操作寄存器什么的,也会接触到一些配置工作,比较枯燥。
  2. 岗位需求量不高

BSW工程师:推荐指数 ⭐⭐

BSW工程师是CP autosar中的基础软件开发,通过配置工具生成代码,然后在生成代码的基础上少量修改。

优点:

  1. 基于CP autosar的配置工具进行配置,上手简单
  2. 成熟度高,大部分公司这方面技术积累多
  3. 需求量大

缺点:

  1. 可能会觉得自己是配置工程师,成就感较低
  2. 成长性不高,技术壁垒低

ASW工程师:推荐指数 ⭐⭐

ASW工程师是CP autosar中的应用软件开发,基于Matlab和Simulink等仿真工作,做各种控制逻辑的仿真模型,然后生成代码。

优点:

  1. 与BSW优点类似,手写代码不多
  2. 对建模、仿真要求高,各种状态机、控制逻辑。更适合车辆、或者控制相关专业和不想写代码的人

缺点:

  1. 与软件开发相差甚远,如果岗位名称上带着软件开发,那迷惑性极强

MPU方向(整体需求量较少):

Adaptive Autosar 架构图

BSP工程师:推荐指数 ⭐⭐⭐⭐

工作内容包括:对SOC进行bring up,移植裁剪kernel、rootfs,集成开发驱动等

优点:

  1. 对Linux、底层驱动要求较高,存在一定技术壁垒
  2. 不只是汽车行业需要,其他使用SOC的行业都需要
  3. 可以接触到汽车上比较新的高性能硬件(中央计算平台等)

缺点:

  1. 需求量少,汽车中SOC的应用还在推广阶段
  2. 对汽车行业特定的流程、标准接触机会较少

中间件开发(SOA Middleware):推荐指数 ⭐⭐⭐⭐⭐

这是与互联网的那一套最接近的岗位了,工作内容包括:开发符合Adaptive autosar标准和SOA架构的中间件,比如服务注册、服务发现等机制。

优点:

  1. 中间件对软件架构要求较高,可以学习到一些软件架构思想
  2. 对C++编程水平要求较高,可以得到编程方面的提升
  3. 可以对Adaptive autosar标准和SOA架构有更深的理解

缺点:

  1. 需求量较少
  2. 对专业技能要求较高

应用软件开发(Adaptive Autosar):推荐指数⭐⭐⭐⭐

工作内容:基于Adaptive autosar中间件,进行应用层开发。

优点:

  1. 能够对Adaptive autosar有更深的理解
  2. 能够了解汽车应用软件的业务逻辑,更贴近用户
  3. 对C++编程有一定要求

缺点:

  1. 业务逻辑复杂枯燥
  2. 可能需要跟其他人扯皮

the end

评论(0)