我之前在《如何学习AUTOSAR》文章里提到过我之前学习AUTOSAR的苦逼经历,真正体验到了摸石头过河的滋味。当年公司刚拿到那个AUTOSAR项目时,第一感觉就是一脸懵逼,憋着一股劲,就是不知道如何下手。很想动手搞一搞吧,就是不知道这啥,最直接让我懵逼的是——不知道买回来的这个包有啥玩意,这些工具干什么的,怎么用?“直接写代码吧”这种想法已经不存在了。我们公司用的是Vector的方案,以下只针其方案和工具使用做讲解。如果读者你用的不是这家的,就当了解下吧,不要入戏太深。1. 什么是Tire1、Tire2、OEM、ECU
这里提几个概念,什么是Tire1、Tire2、OEM?虽然跟AUTOSAR关系不是很大,但常常遇到,了解下比较好。没在车载行业混过或者刚入职车载行业的小伙伴可能不知道。Tire1,即Tire One,意为车厂一级供应商,给设备厂商供货,也就是车厂零部件的供应商。那么Tire2呢,就是二级供应商,可以理解为Tire1的供应商,例如Tire1在搞仪表产品,就需要向Tire2购买零部件,如电机、指针等等。
而OEM,是Original Equipment Manufacturer的缩写,通常指设备厂商/主机厂/整车厂,例如宝马、丰田、大众、广汽、BYD等等。
ECU就是Electronic Control Unit,就是你开发的那个项目器件,例如空调控制器算是一个ECU、娱乐系统主机也是一个ECU。
SIP或者叫SIP包,即Software Integration Package,是Tier1在做AUTOSAR项目前,向Vector购买集成了AUTOSAR方案的软件包,Vector最终交付给Tire1时的软件包就是SIP包 。那么Tire1开发者,就基于这个SIP包来做项目上的应用开发。除了SIP这个名称,你可能还会遇到SLP、HLP等概念,即Software License Package (SLP)
Hardware License Package (HLP)
而SIP又有分几种类型,如:Beta SIP 、Production SIP 、QM Approval SIP、Update SIP 、Prototype SIP 和Mini SIP 等。是不是开始蒙圈了,好了,先不要管这些,记住SIP包这个概念即可,其他的你慢慢就会懂的了。SIP里有什么?直接打开SIP包看不就知道了,这个问题是不是有点多余?也并不是,如果刚接触这个东西的小伙伴,可能搞不清里面有什么,因为里面的文件太多了,压缩包都有好几百MB。实际上,对初学者来说,不知道也影响不大,如果你好奇,那就参考下我的理解: | |
| 是Vector对这个软件包,做了一个应用工程,可以理解为一个Demo,你可以根据这个案例来建你的工程。
|
| 一些BSW层的源码,在通过Configurator添加模块生成代码得的时候,工具会将这些代码拷贝到你的工程。
|
| 这个文件夹里面存放这生成BSW配置的一些策略和关联关系,都是些arxml文件来的,和Configurator息息相关。
|
| 就是Vector的第二个工具了,另外一个是Developer,这个Configurator是一个运行软件,和SIP集成在一起,有可能是因为版本和License问题才这么绑定的。
|
| |
| 就是一些组件的配置生成器,相当于Configurator的插件,通常是写exe等文件。
|
| |
| 就是Vector以外的第三方的内容,一般是MCAL
|
这些内容了解下就好了,重要的是要学会看Doc里面的文档。另外,值得一提的是,MCAL一般不是Vector提供的,MCAL是MCU芯片提供商提供的,它的配置生成器也是芯片厂商提供的。Developer是干什么的呢?简而言之,就是配置SWC(Software Component)即Application Layer上的东西用的?
是不是有点懵逼,Application要配置啥子?上图的这些Applications之间的接口是需要配置的,因为接口有一套特殊的约定。目前,先了解下这些概念,后续慢慢深入比较好,我之前也有类似的文章讲解这些东西的概念和具体实操演练,里面涉及到SWC、Port和Runnable等概念。放个传送门:这里有个疑问,做AUTOSAR开发是否一定要用Developer,好像不一定,有人用MATLAB建模,也可以生成代码。本文对这个就不深入讨论了。
这个就是上文提到的DaVinciConfigurator,有时候看到Configurator Pro也是这玩意。在“嵌入式软件实战派”这个公众号后台回复“DaVinciConfigurator”即可获得下载链接(关键字有点长,建议复制粘贴过去)。
DaVinci Configurator Pro 让您可以为您的 ECU 配置和生成 AUTOSAR 基础软件 (BSW) 和 RTE——无论它们是 Vector (MICROSAR) 的 BSW 模块还是第三方生产商(例如半导体制造商的 MCAL),甚至是您自己创建的 BSW 模块 . 多阶段和基于规则的验证过程确保所有配置参数的模块间一致性。
最简单直观的理解,它是用于做中间层的配置和生成代码的,但这样理解也不完整,因为它还可以生成SWC和MCAL的配置代码。综合来说,Developer配置好SWC以及其Port和Runnable后,这个过程是体现在arxml的配置文件上的,也就是Developer做了一大堆的设计,是更改了相应的arxml文件。这时需要Configurator打开工程(相当于导入了这些arxml),然后verify或generate代码。对于BSW和RTE层,例如OS、RTE、BSWM等,这些是直接在Configurator上面做配置的,然后verify或generate代码。那么MCAL呢,对于Vector来说,MCAL是他们的ThirdParty内容,SIP里面提供了相关方法将MCAL集成到SIP中,即将MCAL里面的生成器、驱动源码、ARXML等按预定的方法集成到SIP中。这样Configurator可以引用MCAL的ARXML文件以及调研MCAL提供的生成器来生成MCAL的配置代码。以上简单描述了Developer和Configurator的一些基本功能或作用,如果你深入学习研究,可能还会发现一些其他的作用。上面提到了ARXML这个东西,到底是什么?
可以理解为它就是XML格式,只是它有更严格的定义,用于AUTOSAR的。
从上面的讲解,可以指定ARXML文件承载着各种各样的配置信息,而且还穿插在SWC、RTE、BSW和MCAL之间。可想而知,他是有一套很规范的定义的。这些东西,实际上可以联系到,在看AUTOSAR规范时遇到的“方法论”这个概念,就是这个方法论贯穿于整个AUTOSAR和工具的使用。
但对初学者来说,知道这些概念就够了,暂时没必要搞懂这个方法论是什么、ARXML定义了什么内容。
搞懂了这些概念和工具的用途后,接下来你就会很想了解AUTOSAR是啥东西了。也许你在开始搞这个AUTOSAR的项目之前,你应该通过一些简单的培训或者阅读过介绍的文档,知道了AUTOSAR这个框架了。
我这里也有几个文章讲解这个的,有需要可以参考下,对初学者有一定帮助:
本文就不重复这些内容了。
上面只提到了DaVinci Developer和Configurator的用途,大家刚接触这套工具链的时候,还会很疑惑,怎么用它。这是正常的,除了迷糊,你还很渴望驾驭它。
我这方面的教程不是很多,目前有两个可以参考下:
后续,我会针对DaVinci Developer和Configurator做个专门详细的讲解。
本文提供PDF版下载,请在公众号后台回复“asr-0821”即可获得下载链接。
如果你对我的《AUTOSAR实战教程》感兴趣,可以关注公众号“嵌入式软件实战派”,然后在对话框回复“AUTOSAR”,可获得教程的目录。
这个教程目录会定期更新,现在订阅号的规则改了,不会更新你以前获得的目录文章,需要你定期回复“AUTOSAR”获得最新的版本。