3. RTE配置工具入门:Vector DaVinci Configurator与EB tresos Studio的界面与基本操作

好,咱们进入第三讲。说实话,很多刚接触AUTOSAR的朋友,一上来就被这两个工具搞懵了——DaVinci Configurator和EB tresos Studio,到底选哪个?界面长得也不一样,操作逻辑也有区别。我当年第一次打开DaVinci时,盯着满屏的英文菜单愣了好几分钟。

别急,这一讲我就带你把这俩工具的底裤扒干净。你想想看,RTE配置说白了就是给ECU画一张「谁跟谁通信」的地图,工具只是画笔而已。咱们先搞清楚画笔怎么用,后面画图才顺手。

3.1 两大工具的核心定位

先给个结论:DaVinci Configurator偏重配置灵活性,EB tresos Studio偏重代码生成效率。这不是说谁好谁差,而是设计哲学不同。

对比维度 Vector DaVinci Configurator EB tresos Studio
开发商 Vector Informatik Elektrobit (EB)
核心优势 配置项丰富,支持深度定制 代码生成速度快,模板化程度高
上手难度 中等偏上,菜单层级较深 相对友好,向导式操作多
典型场景 复杂ECU、多核、多分区 标准ECU、快速原型、量产项目
许可证模式 按模块授权,价格较高 按项目授权,性价比不错

我个人习惯是:做前期架构探索时用DaVinci,因为它的配置项多,可以随时调整;到了量产阶段,我倾向于用EB tresos,生成代码稳定,不容易出幺蛾子。当然,这完全看团队积累,没有标准答案。

3.2 DaVinci Configurator界面速览

打开DaVinci Configurator,你会看到这样一个布局——嗯,我第一次看到时也觉得信息量有点大。

DaVinci Configurator 主界面布局 文件(F) 编辑(E) 视图(V) 项目(P) 配置(C) 工具(T) 帮助(H) 项目浏览器 ▶ MyProject ▶ SWCs ▶ Compositions ▶ DataTypes ▶ RTE ▶ Runnables ▶ Ports ▶ Connections ▶ BSW ▶ OS ▶ EcuM RTE 配置编辑器 Port名称 方向 数据元素 连接状态 Port_Speed Out VehicleSpeed 已连接 Port_Temp In CoolantTemp 未连接 属性 名称: Port_Speed 类型: SenderReceiver 数据长度: 32 bit 触发方式: 周期性 周期: 10 ms 就绪 | 项目: MyProject | 配置: RTE_Config.arxml | 错误: 0 警告: 2

界面分四大块,我一个个说:

  • 左侧项目浏览器:树形结构,展示SWC、RTE、BSW等模块。双击任意节点,右侧编辑区就会显示对应的配置页。
  • 中央编辑区:核心工作区。配置RTE端口、连接、runnables都在这里。支持表格和图形两种视图,我一般用表格视图,信息更密集。
  • 右侧属性面板:选中某个元素后,这里显示它的详细属性。比如端口的数据类型、触发方式、周期等。
  • 底部状态栏:显示当前项目状态、错误和警告数量。嗯,这里要养成习惯——每次生成代码前,先瞄一眼错误数是不是0。
小技巧:DaVinci的搜索功能在右上角(Ctrl+F)。我在项目中经常遇到几十个端口要配置,一个个找太慢。直接搜端口名,秒定位。

3.3 EB tresos Studio界面速览

再来看EB tresos Studio。它的界面风格跟DaVinci不太一样,更「清爽」一些。我个人觉得EB的布局更符合直觉,尤其是新手。

EB tresos Studio 主界面布局 项目 编辑 视图 配置 生成 窗口 帮助 配置导航器 📁 MyECU_Project 📂 应用层 📄 SpeedController 📄 TempMonitor 📂 RTE配置 📄 端口映射 📄 Runnable调度 📂 BSW模块 📄 OS 📄 EcuM 📄 Com 端口映射编辑器 SpeedController 提供端口: SpeedOut TempMonitor 需求端口: SpeedIn 未连接 TempMonitor 提供端口: TempOut SpeedController 需求端口: TempIn 已连接 [信息] 端口映射验证通过 [警告] TempMonitor 的周期未设置 属性视图 SWC: SpeedController Runnable: ReadSpeed 周期: 5 ms 优先级: 3

EB tresos Studio的界面特点:

  • 配置导航器:类似资源管理器,按模块组织。双击直接打开配置页,操作路径短。
  • 中央编辑区:支持表格和图形两种模式。图形模式下可以直接拖拽连线,非常直观。我教新人时,都让他们先用图形模式理解端口连接关系。
  • 属性视图:选中元素后,右侧显示属性。跟DaVinci类似,但EB的布局更紧凑。
  • 底部输出区:显示配置验证结果、代码生成日志。每次生成代码前,先看这里有没有红色错误。
注意:EB tresos Studio的图形化连线虽然方便,但项目大了以后(比如超过50个SWC),图形界面会变得很卡。这时候建议切换到表格视图,或者用筛选功能只显示关键连接。

3.4 基本操作:创建第一个RTE配置

光说不练假把式。咱们走一遍基本流程,以DaVinci为例(EB的操作逻辑类似,只是菜单位置不同)。

3.4.1 新建项目

打开DaVinci Configurator,点击 File → New → Project。输入项目名称,选择模板。这里要注意:模板决定了初始的BSW模块集合。如果你做的是Classic AUTOSAR,选 Classic Platform 模板;如果是Adaptive,选 Adaptive Platform

我曾经犯过一个错:选了Adaptive模板,结果后面发现项目其实是Classic的,所有配置都得重来。所以第一步就确认好平台类型。

3.4.2 导入SWC描述文件

项目建好后,第一步是导入SWC的ARXML文件。这些文件通常由系统设计师提供,里面定义了SWC的端口、数据类型、runnables等。

操作路径:Project → Import → ARXML Files。选择文件后,工具会自动解析并生成SWC实例。

关键点:导入后一定要检查「端口一致性」。工具不会自动帮你匹配端口名,如果SWC的端口名跟系统设计文档不一致,后面连接时会报错。我习惯导入后先跑一遍 Validate,看有没有未匹配的端口。

3.4.3 配置端口连接

在RTE配置页中,找到 Port Connections 选项卡。你会看到所有SWC的端口列在两侧,中间是连接线。

操作很简单:从源端口拖到目标端口。工具会自动检查数据类型是否匹配。如果不匹配,会弹出红色警告。

举个例子:

// 假设有两个SWC:
// SpeedController 提供端口:VehicleSpeed (uint32)
// DisplaySWC 需求端口:SpeedValue (uint32)

// 操作:从 VehicleSpeed 拖到 SpeedValue
// 工具自动生成连接配置:
<CONNECTION>
  <SOURCE-PORT>SpeedController/VehicleSpeed</SOURCE-PORT>
  <TARGET-PORT>DisplaySWC/SpeedValue</TARGET-PORT>
  <DATA-TYPE>uint32</DATA-TYPE>
</CONNECTION>

3.4.4 配置Runnable调度

端口连好了,还得告诉RTE:这些runnable什么时候执行?在 Runnable Mapping 页中,你可以设置:

  • 触发事件:周期性(如每10ms)、数据到达触发、外部中断触发等
  • 优先级:数值越小优先级越高
  • 任务分配:把runnable分配到哪个OS任务中

这里有个坑:不要把两个周期相差很大的runnable放在同一个任务里。比如一个1ms的runnable和一个100ms的runnable放一起,1ms的那个会被100ms的任务拖累,导致抖动。我遇到过因为这个问题导致CAN报文超时的案例,排查了两天才找到原因。

3.4.5 生成RTE代码

所有配置完成后,点击 Generate → RTE。工具会生成:

  • Rte.h:RTE头文件,包含所有API声明
  • Rte.c:RTE实现文件,包含端口连接逻辑、runnable调度逻辑
  • Rte_Type.h:数据类型定义

生成后,建议先编译一次。如果编译报错,99%是端口类型不匹配或者runnable参数定义不一致。别慌,看错误信息定位到具体行,回工具里修改配置再重新生成。

我的习惯:每次生成代码后,用版本管理工具(如Git)对比一下生成的代码跟上一版有什么变化。这样能快速发现配置改动带来的影响,避免「改了一个端口,结果整个RTE都变了」的尴尬。

3.5 两个工具的切换技巧

有些项目会同时用到两个工具(比如客户指定了工具链)。这时候要注意:

  • ARXML文件是通用的:DaVinci导出的配置可以导入EB,反之亦然。但要注意版本兼容性——AUTOSAR 4.2的ARXML在4.4的工具里可能报错。
  • 代码生成结果不同:同样的配置,两个工具生成的RTE代码风格不一样。DaVinci生成的代码偏「啰嗦」,注释多;EB生成的代码偏「精简」,执行效率高。但功能上等价。
  • 不要混用:一个项目里,RTE配置只用一种工具。混用会导致配置不一致,排查起来非常痛苦。

好了,这一讲的内容就是这些。工具只是手段,关键是理解RTE的配置逻辑。下一讲咱们会深入RTE的运行时行为,看看生成的代码到底是怎么跑起来的。


公众号:蓝海资料掘金营,微信deep3321