第四节: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之间交换数据,全靠它。
导入操作:
- 点击
File → Import → ARXML - 选择你要导入的ARXML文件(支持多选)
- 注意勾选「Resolve References」——这个选项会自动解析依赖关系
我的经验:导入时如果报错,八成是版本不匹配。EB tresos Studio 2021版和2023版的ARXML schema有细微差别。我一般先看ARXML头部的AR-PACKAGE版本号,确认兼容性。
导出操作:
- 选中你要导出的模块(比如Can、Lin、EcuM)
- 右键 →
Export → ARXML - 选择导出范围:可以只导出单个模块,也可以导出整个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里:
- 打开系统级ARXML(System Description)
- 选择
Tools → Extract ECU Configuration - 指定你要提取的ECU实例(比如
ECU_EngineControl) - 系统自动过滤掉其他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代码。流程如下:
- 生成BSW代码:在EB或DaVinci Configurator中,点击
Generate Code - 生成RTE代码:在DaVinci Developer中,点击
Generate RTE - 生成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 知识体系总览
下面这张图,是我自己总结的工具链操作流程。你把它存下来,做项目时对照着来,基本不会出错。
总结一下:工具链操作的核心就三件事——导入导出ARXML、生成合并ECU Extract、验证并生成代码。你把这三点吃透了,AUTOSAR配置就算入门了。剩下的,就是在项目里慢慢积累经验了。
可可精品资料库