2. AUTOSAR基础

说实话,很多新手一上来就急着写代码,结果被工具链折腾得够呛。我见过太多人卡在环境搭建这一步,一卡就是好几天。工具链没配好,后面全是坑。

这一章,咱们就把三件套——DaVinci Developer、EB tresos Studio、MATLAB/Simulink——的安装和配置捋清楚。嗯,都是实战经验,你照着做就行。

2.1 Vector DaVinci Developer:SWC建模的核心工具

DaVinci Developer是干啥的?说白了,它就是用来画SWC的。你设计好的软件组件,在这里定义端口、接口、运行实体,然后生成代码骨架。

2.1.1 安装要点

我个人习惯,安装前先关掉杀毒软件。Vector的License Manager有时候会被误杀,很烦人。

  • 版本选择:建议用2020以上版本,对AUTOSAR 4.x支持更完整。我早期用过2018版,踩过不少坑。
  • 安装路径:不要有中文,不要有空格。C:\Vector\DaVinci_Developer 这种就挺好。
  • License配置:如果是浮动License,记得配好服务器地址。如果是单机版,把license.lic文件放到安装目录下。
我曾经遇到过:装完Developer后打不开,报License错误。查了半天,发现是环境变量VECTOR_LICENSE_FILE没配。你装完后一定要检查这个变量。

2.1.2 工作空间配置

第一次启动Developer,会让你选工作空间。我建议每个项目单独建一个工作空间,别混在一起。

# 工作空间目录结构示例
D:\Workspace\ProjectA_Dev
  ├── .metadata        # Eclipse元数据
  ├── SWCs             # 你的SWC项目文件
  └── Config           # 配置文件备份

你想想看,如果所有项目都放一个工作空间,切换项目时Eclipse会卡死。我吃过这个亏。

2.2 EB tresos Studio:基础软件配置的利器

tresos Studio主要负责配置BSW(基础软件)和ECU提取。它和Developer是搭档——Developer画SWC,tresos配底层。

2.2.1 安装与激活

EB的工具安装比Vector稍微麻烦一点。它需要Java环境,而且对JDK版本有要求。

组件 推荐版本 备注
JDK 11 或 17 太高或太低都可能报错
tresos Studio 27.0.0+ 支持AUTOSAR 4.4.0
License 浮动/单机 需要EB License Server
小技巧:安装tresos前,先把JAVA_HOME环境变量配好。我习惯用JDK 11,兼容性最好。

2.2.2 导入Developer生成的ARXML

Developer画完SWC后,会导出ARXML文件。tresos Studio需要导入这些文件,才能进行后续的BSW配置。

  1. 打开tresos Studio,新建一个ECU项目。
  2. 右键项目 -> Import -> AUTOSAR -> ARXML File。
  3. 选择Developer导出的SWC描述文件。
  4. 系统会自动解析,生成对应的BSW模块配置项。

这里要注意:Developer和tresos的AUTOSAR版本必须一致。否则导入时会报schema错误。我当年从4.2升级到4.4时,就因为这个折腾了两天。

2.3 MATLAB/Simulink:算法建模与代码生成

很多控制算法是在Simulink里开发的。然后通过Embedded Coder生成C代码,再集成到SWC中。

2.3.1 配置Embedded Coder

Simulink默认生成的代码,说实话,不太适合AUTOSAR。你需要做几件事:

  • 安装Embedded Coder:这是生成产品级代码的必备工具箱。
  • 配置系统目标文件:选择ert.tlc(Embedded Real-Time)。
  • 设置AUTOSAR接口:在模型配置中,勾选“Support AUTOSAR”选项。
% MATLAB命令行配置示例
% 设置代码生成目标
set_param('myModel', 'SystemTargetFile', 'ert.tlc');
% 启用AUTOSAR支持
set_param('myModel', 'GenerateASAP2', 'on');
set_param('myModel', 'SupportAUTOSAR', 'on');

核心思路:Simulink模型中的Inport/Outport,最终会映射成SWC的RPort/PPort。你建模时就要想好接口定义。

2.3.2 代码生成与集成

模型建好后,按Ctrl+B生成代码。你会得到一堆.c和.h文件。这些文件需要导入到Developer中,作为SWC的实现代码。

我个人习惯,在Simulink中把代码生成路径设到Developer的工作空间里。这样省去手动拷贝的麻烦。

2.4 工作空间与项目创建:从零开始搭一个Demo

理论说完了,咱们动手搭一个。我带你走一遍完整的流程。

2.4.1 创建Developer项目

  1. 打开DaVinci Developer,选择工作空间。
  2. File -> New -> AUTOSAR Project。
  3. 输入项目名,比如“Demo_SWC_Project”。
  4. 选择AUTOSAR版本(建议4.4.0)。
  5. 点击Finish,项目就建好了。

你会看到左侧出现一个项目树。里面有SWCs、DataTypes、Interfaces等文件夹。这就是你的战场。

2.4.2 创建tresos项目

  1. 打开EB tresos Studio,File -> New -> AUTOSAR ECU Project。
  2. 输入ECU名称,比如“DemoECU”。
  3. 选择BSW模块模板(比如CAN、DIO、MCU等)。
  4. 导入Developer生成的ARXML文件。
  5. 配置BSW参数,生成代码。
注意:tresos项目路径不要和Developer项目路径重叠。两个工具会生成不同的文件,混在一起容易出问题。

2.4.3 配置Simulink模型

  1. 打开MATLAB,设置工作目录到Developer项目文件夹。
  2. 新建一个Simulink模型,添加Inport和Outport。
  3. 在模型配置中,设置代码生成目标为ert.tlc。
  4. 勾选“Support AUTOSAR”,配置SWC名称和接口映射。
  5. 生成代码,检查是否生成Rte_Component.h等文件。

嗯,到这里,三个工具的项目就都搭好了。它们之间通过ARXML文件交换信息。Developer定义SWC结构,Simulink生成算法代码,tresos配置底层驱动。

2.5 工具链集成关系图

下面这张图,展示了三个工具之间的数据流和依赖关系。你看一眼就明白了。

工具链集成关系图 DaVinci Developer SWC建模 / 端口定义 MATLAB/Simulink 算法建模 / 代码生成 EB tresos Studio BSW配置 / ECU提取 ARXML 数据交换文件 SWC描述 / 接口定义 / 数据类型 集成后的SWC代码 + RTE + BSW 可编译的嵌入式工程 Developer定义结构 → Simulink填充算法 → tresos配置底层 → 最终集成

说白了,这三个工具就是一条流水线。Developer是设计师,Simulink是工程师,tresos是装配工。各司其职,缺一不可。

2.6 避坑指南

最后,我把自己这些年踩过的坑总结一下。你遇到了,直接翻回来查。

  • 版本匹配:Developer、tresos、MATLAB的AUTOSAR版本必须一致。4.2的ARXML不能直接导入4.4的项目。
  • 路径无中文:所有工具、工作空间、项目路径都不能有中文和空格。否则编译报错你都不知道为什么。
  • 环境变量:Vector_LICENSE_FILE、JAVA_HOME、MATLAB_ROOT这些变量,装完工具后一定要检查。
  • 杀毒软件:安装时关掉,运行时把工具目录加入白名单。

我的习惯:每装完一个工具,先跑一遍官方示例。确认没问题了,再开始自己的项目。这样能快速排除工具本身的问题。

环境搭建这块,急不得。你花一天时间把工具链配稳了,后面开发会顺畅很多。我曾经为了赶进度,环境没配好就开干,结果后面返工的时间比搭建环境还多。嗯,教训深刻。