新手如何学习车载底层软件AUTOSAR开发

文摘   2024-10-29 07:42   上海  
本文链接:https://zhuanlan.zhihu.com/p/842649861,作者:车软开发卡恩
行业大佬分享如何学习车载底层软件AUTOSAR开发,如果觉得有收获,关注点赞分享!

0:前言

从理学专业研究生毕业,进入研究所,到一年后裸辞,零基础踏入汽车行业。一路走来,风雨泥泞,许多不易。如梦一场。今天这篇文章想和大家聊一聊AUTOSAR的学习,与传统讲授AUTOSAR的思路完全不同,我以学AUTOSAR“过来人”的思路,基于多年做项目的经验积累,抱着如何才能更容易掌握AUTOSAR的态度,理论与实践完全结合的方式进行清晰地讲解。借此鼓舞大家珍惜时间多学习技术,开创更加美好的明天。

1:什么是AUTOSAR?

身为技术工程师,在学习任何一门技术的时候,一定要先搞清楚这个技术是为了解决什么问题。深入学习这个技术之前,一定先从全局的角度来了解这个技术,思考一下它是由哪些模块构成的,提供了哪些功能,和同类的技术相比它有什么优势。
在文章开始前,我们还是先讲一下什么是AUTOSAR
AUTOSAR(Automotive Open System Architecture)旨在为汽车电子控制单元(ECU)的软件开发创建并推广一种开放的、标准化的软件架构。AUTOSAR的主要目标是提高汽车电子系统的可靠性、安全性和可移植性,同时降低成本和开发时间。
最简单的一句大白话:AUTOSAR是汽车底层嵌入式开发的配置工具,汽车底层嵌入式开发无需手写代码,但需要AUTOSAR配置生成代码

2:为什么学习AUTOSAR?

相比于传统嵌入式开发,AUTOSAR成为了高薪紧缺的岗位。
换个角度,我们用最朴素的道理阐述打工人的职业发展问题:当你所掌握的技术处在一个市场严重供不应求的阶段时,你的收入不等于你的能力,是市场白给你的!在这个阶段,抓住机会,抓住红利!
所以当一个行业被资本裹挟着水涨船高时,你所要做的,是像一个猎人一样,把自己武装成为资本所需求的,然后做出选择,看准那些被资本选中,被黄金砸在脑袋上的公司。去那些最稀缺的岗位,争取最高的市场溢价。
人一生的收益绝不是线性的。在任何行业,勤勤恳恳,终其一生只是普通人而已。想办法借助资本的助推,拿到更高的职位,到离钱更近的地方去,你才有可能抓住改变命运的机会。
而目前,在新能源汽车和智驾浪潮下,AUTOSAR开发岗位具备了上述的机会。

3:怎么学习AUTOSAR

3.1:学习AUTOSAR的大纲(简略版)

首先请把下面这段话读三遍:

  • 仅仅死学理论而不与实际硬件结合进行实践,这样的理论没有用;

  • 仅仅做简单的硬件实践而不与实际工作应用结合,这样的实践是不成熟的。

上述两句话大家可以当作工程类学习的理念和指南,如果你的学习方向不与上述两句话相符,那学习路线大概率是低效的内耗。
学习AUTOSAR的大纲如下图所示:
上述大纲作为一个最简单的知识框架展现,大家可以按照上述知识框架进行进阶学习。

3.2:学习AUTOSAR的步骤

3.2.1:第一步:软件工具使用&&开发板使用

I:工欲善其事必先利其器,首先安装AUTOSAR开发工具

  • 1)EB Tresos Studio

  • 2)DaVinci Configurator Pro

  • 3)DaVinci Developer

  • 4)Matlab&Simlink

  • 5)IAR(或keil或S32DS,由具体MCU决定)

II:选择实战的开发板、CAN盒和上位机等工具
熟悉开发板和调试器的基本使用

III:熟悉autosar软件工具、编译工具和调试工具的基本使用
学会软件工具基本的新建工程、下载、运行等,了解最基本的AUTOSAR开发流程

AUTOSAR配置步骤简述

3.2.2:第二步:理论&&实战交叉学习

1:基于实战导向的理论学习

在动手实践之前,学习基本的理论知识是必要的,但更重要的是如何将这些理论知识转化为实际操作能力。

首先是要理解实际需求

基于实际需求,高效实现从理论到实战交叉学习

针对从理论到实战的衔接进行颗粒级的归纳和筛选

不深陷理论浪费精力
直击实战

AUTOSAR理论与实战归纳框图
2:AUTOSAR工具配置与代码生成
创建AUTOSAR模型
  • 使用支持AUTOSAR的软件工具创建软件组件模型。
  • 定义组件接口、端口和数据类型。
配置AUTOSAR模型
  • 设置组件的运行时行为,如调度、通信等。
  • 配置基础软件(BSW)模块,如通信堆栈、操作系统等。
  • 生成ARXML(AUTOSAR XML)文件,该文件描述了软件架构和配置。
代码生成
  • 使用代码生成工具(如Vector工具链、ETAS工具链等)将ARXML文件转换为C代码。代码生成工具会根据AUTOSAR规范生成相应的软件组件、RTE(运行时环境)和BSW模块代码。

3.代码集成与测试
在AUTOSAR(汽车开放系统架构)中,代码集成与测试是车辆软件开发生命周期中的关键步骤。
代码集成是将不同的软件组件(SWC)组合在一起,形成一个完整的软件系统。
代码集成一般步骤为:
  • 将生成的代码与其他代码库集成。
  • 在集成开发环境(IDE)中编译和构建代码。
  • 进行单元测试和集成测试,验证代码的正确性和性能。
4.功能验证
使用实际硬件进行代码功能验证。
AUTOSAR(汽车开放系统架构)的代码功能验证是确保汽车电子控制单元(ECU)软件满足设计要求和质量标准的过程。在实战项目环节,采用CAN盒、上位机和NXP开发板,对AUTOSAR编写功能进行实际验证。

3.2.3:选取量产项目实战

如何确保我们的学习成果能实际应用呢?这就需要项目实战的支撑
基于主机厂软件开发需求
选取实战量产控制器底软项目
串联“第二步:理论&&实战交叉学习”知识点
形成由点到面的逻辑,融会贯通知识
培养工作实际实战能力
学习AUTOSAR,一定要充分利用好Debug工具,它可以让你真正“看到”代码是如何运行的。
要多用配置工具尝试不同配置,真正理清代码的实现逻辑,多去试错,才能更快成长

3.3:学习理念

离开学校,步入社会,大家在技术学习上要有几个观念。
1:寓学于做的学习方式,可完成初学阶段的原始技术积累。
步入职场后的学习,并不需要像上学时那样抽出专门的、大块的时间,把整本书或者整个知识体系都学完。很多时候都是基于实际任务,需要什么学什么。
2:一定不要一上来就想着要搞懂这个技术的原理。在研究这个技术的原理之前,先要搞懂这个技术是怎么使用的。这样的循序渐进的学习过程,可以逐渐帮你建立学习的快感,获得即时的成就感,避免直接研究原理性的知识而被劝退。
3:学习一个技术最有效最快的办法就是将这个技术和自己之前学到的技术建立连接,形成一个网络。建议先去运行一下相关的 Demo ,做一些小项目。
4:研究某个技术原理的时候,为了避免内容过于抽象,我们同样可以动手实践。
如果你学习某一项技术是为了在实际项目中使用的话,那你的侧重点就是学习这项技术的使用以及最佳实践,了解这项技术在使用过程中可能会遇到的问题。你的最终目标就是这项技术为项目带来了实际的效果,并且,这个效果是正面的。如果你学习某一项技术仅仅是为了面试的话,那你的侧重点就应该放在这项技术在面试中最常见的一些问题上,也就是我们常说的八股文。

4:打工人的心得

人生善于苟且,对于大部分工程师,在熟练一个小的技能后就局限于自己的现有平台上,温水煮青蛙,变成了狭隘的技术熟练工。
但职场的危机,如同一股暗流涌动,随时可能将单一技能人才卷入困境。
我们要做的是,跳出眼前的鸡毛蒜皮,从短期、中期和长期的角度,去审视整个行业的发展,还有我们想在其中的位置。
你是谁?你会做什么?你多大年龄?你到底有没有危机?除了你自己深度考虑,Nobody cares. 没人会关心这个。只有你最后被淘汰,工资难以糊口时,你才意识到这些。
潮水退去时,你不要裸泳。是风都有停的一天,热潮会冷却,红利会消失。这个时候,考验你有没有真本事的时间到了。
所以,从此刻,在行业内扎根发展。去选择那些头部的企业,在激烈竞争中存活下来的大公司。去从事技术管理的职位。同时保持自己的技术能力和对行业的敏锐度。
人这一生,立足于社会的根本不是工作,立足社会所必须的,是认知,是知识,是商业眼光。去多读书,多见人,多旅行。去扩宽自己的视野,建立自己的技术壁垒,做好财富的积累。用投资的方法去支持自己职业的发展,去变现自己的认知。



创作不易,欢迎点赞再看收藏关注


汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。






谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章