第四节:EB tresos Studio与Vector DaVinci工具链实战

说实话,做AUTOSAR配置这么多年,我见过太多人在工具链上栽跟头。EB tresos Studio和Vector DaVinci,这两大工具链就像少林和武当,各有各的套路。今天我就把这两套工具的实操经验掰开揉碎了讲给你听。

核心要点:工具链的本质是ARXML文件的流转与转换。你掌握了文件的导入导出、ECU Extract的生成合并,就等于掌握了AUTOSAR配置的命脉。

4.1 EB tresos Studio基础操作

EB tresos Studio,我个人习惯叫它「EB」。这工具在AUTOSAR Classic Platform领域,尤其是做MCAL配置时,几乎是标配。

4.1.1 工作区与项目结构

打开EB后,第一件事就是建工作区。我建议你一个项目一个工作区,别混在一起。为什么呢?因为ARXML的引用关系很容易乱,我曾经一个项目里混了两个版本的BSW模块,编译时那个酸爽...

项目结构一般长这样:

Project_Root/
├── config/          # ARXML配置文件
├── generated/       # 生成的代码
├── templates/       # 模板文件
└── output/          # 输出文件

4.1.2 ARXML的导入与导出

ARXML文件说白了就是AUTOSAR的「通用语言」。EB和DaVinci之间交换数据,全靠它。

导入操作:

  1. 点击 File → Import → ARXML
  2. 选择你要导入的ARXML文件(支持多选)
  3. 注意勾选「Resolve References」——这个选项会自动解析依赖关系

我的经验:导入时如果报错,八成是版本不匹配。EB tresos Studio 2021版和2023版的ARXML schema有细微差别。我一般先看ARXML头部的AR-PACKAGE版本号,确认兼容性。

导出操作:

  1. 选中你要导出的模块(比如Can、Lin、EcuM)
  2. 右键 → Export → ARXML
  3. 选择导出范围:可以只导出单个模块,也可以导出整个ECU配置

4.2 Vector DaVinci Developer与Configurator

DaVinci这套工具链,我用了快十年。Developer做SWC设计,Configurator做BSW配置,两者配合默契。

4.2.1 DaVinci Developer的操作要点

Developer主要做软件组件设计。你想想看,一个ECU里几十个SWC,端口、接口、运行实体,全靠图形化拖拽完成。

关键操作:

  • 创建SWC:在Component Browser里右键 → New → Application SwComponentType
  • 定义端口:拖拽Port到组件边界上,选择方向(Provide/Require)
  • 连接接口:用Connector线把两个端口连起来,系统自动生成Runnable

注意:端口命名一定要规范。我见过有人用Port_1、Port_2这种名字,后期维护时根本不知道哪个是哪个。建议用SwcName_PortName_Direction的格式。

4.2.2 DaVinci Configurator Pro的BSW配置

Configurator Pro负责BSW层的配置。这里我要重点说一下ECU Extract的生成与合并——这是整个工具链协作的核心。

4.3 ECU Extract的生成与合并

ECU Extract,说白了就是从一个系统级配置里「切」出属于你负责的那个ECU的部分。为什么需要这个?因为整车厂给Tier1的往往是一个完整的系统描述,但Tier1只关心自己那个ECU。

4.3.1 生成ECU Extract

在DaVinci Developer里:

  1. 打开系统级ARXML(System Description)
  2. 选择 Tools → Extract ECU Configuration
  3. 指定你要提取的ECU实例(比如ECU_EngineControl)
  4. 系统自动过滤掉其他ECU的SWC、信号、PDU等

生成的ECU Extract文件通常命名为 ECU_Extract_<ECU名称>.arxml。

4.3.2 合并ECU Extract

合并操作更考验功力。我记得有一次,客户给了三个版本的ECU Extract,每个版本改了不同的模块。手动合并?那得疯掉。

推荐做法:

  • 使用DaVinci Configurator Pro的 Merge 功能
  • 选择「Base Configuration」作为基础版本
  • 依次选择「Delta Configuration」作为增量版本
  • 系统会自动对比差异,生成合并后的配置

避坑指南:我曾经在合并时没注意「Overwrite」选项,结果新版本的配置被旧版本覆盖了。后来我养成了一个习惯:合并前先备份,合并后做一次Diff检查。

4.4 配置验证与代码生成

配置做完,不验证等于白做。代码生成,才是最终目的。

4.4.1 配置验证

EB和DaVinci都内置了验证器。验证分三个层次:

验证层次 检查内容 常见问题
语法验证 ARXML格式、Schema合规性 标签未闭合、属性缺失
语义验证 端口匹配、信号一致性 数据类型不匹配、周期冲突
完整性验证 所有必需模块是否配置 缺少EcuM、BswM等基础模块

在EB中,点击 Validation → Run All Checks。在DaVinci中,点击 Tools → Validate Configuration。

我的习惯:每次修改配置后,至少跑一次语法验证。语义验证可以等模块配置完再做。完整性验证,我一般在代码生成前做一次。

4.4.2 代码生成流程

代码生成,说白了就是把图形化的配置「翻译」成C代码。流程如下:

  1. 生成BSW代码:在EB或DaVinci Configurator中,点击 Generate Code
  2. 生成RTE代码:在DaVinci Developer中,点击 Generate RTE
  3. 生成SWC代码:在DaVinci Developer中,点击 Generate SWC

生成的代码结构:

generated/
├── Bsw/              # BSW模块代码
│   ├── Can/
│   ├── Lin/
│   └── EcuM/
├── Rte/              # RTE代码
│   ├── Rte_Type.h
│   └── Rte.c
└── Swc/              # SWC代码
    ├── Swc_EngineControl.c
    └── Swc_EngineControl.h

4.5 知识体系总览

下面这张图,是我自己总结的工具链操作流程。你把它存下来,做项目时对照着来,基本不会出错。

EB tresos Studio & Vector DaVinci 工具链操作流程 系统级ARXML ECU Extract 模块配置参数 导入ARXML → 解析依赖 → 加载配置 配置阶段 EB: MCAL配置 | DaVinci: SWC设计 + BSW配置 配置验证(语法/语义/完整性) ECU Extract合并(Base + Delta) 代码生成 → BSW代码 + RTE代码 + SWC代码

总结一下:工具链操作的核心就三件事——导入导出ARXML、生成合并ECU Extract、验证并生成代码。你把这三点吃透了,AUTOSAR配置就算入门了。剩下的,就是在项目里慢慢积累经验了。


可可精品资料库