Vector DaVinci工具链介绍:DaVinci Developer、DaVinci Configurator Pro、DaVinci Project Manager的功能与关系
好,咱们今天聊聊Vector家的三驾马车——DaVinci Developer、Configurator Pro和Project Manager。很多刚接触AUTOSAR的朋友,一上来就被这三个工具搞晕了。说实话,我当年刚入行时也懵,打开界面一看,三个长得还挺像,到底谁干谁的活?
今天我就用最直白的方式,把这三个工具的功能和关系给你捋清楚。
一、先搞清楚定位:三个工具各管一摊
你可以把这三兄弟想象成一个汽车项目团队:
- DaVinci Project Manager —— 项目经理,管全局、管配置、管版本
- DaVinci Developer —— 架构师,画SWC、定义接口、设计软件架构
- DaVinci Configurator Pro —— 配置工程师,管BSW、管RTE、管生成代码
说白了,Project Manager是总指挥,Developer是画图纸的,Configurator Pro是负责把图纸变成能跑起来的代码的。嗯,这个比喻你记住,后面就好理解了。
二、DaVinci Project Manager:项目的“大管家”
我个人习惯,每次新建一个AUTOSAR项目,第一件事就是打开Project Manager。为什么?因为它管着整个项目的“户口本”。
它的核心职责包括:
- 项目结构管理:定义项目包含哪些模块、哪些ECU、哪些SWC
- 版本控制:管理AUTOSAR版本(比如4.2.1、4.4.0),以及各个模块的版本
- 依赖关系:告诉你哪个模块依赖哪个基础软件栈
- 多ECU协同:一个项目里可能有多个ECU,Project Manager能统一管理它们的配置
Project Manager本身不生成代码,它更像一个“配置的配置”。你想想看,如果连项目里有哪些ECU、用哪个版本的BSW都没定下来,后面Developer画再漂亮的架构图也是白搭。
三、DaVinci Developer:软件架构的“画图板”
这个工具是我用得最多的。说白了,Developer就是用来设计应用层软件架构的。
它的核心功能:
- SWC设计:创建Application SWC、SensorActuator SWC、Composition SWC等
- 端口与接口定义:Sender-Receiver接口、Client-Server接口,全在这里画
- Runnable设计:定义每个SWC里有哪些可运行实体,以及它们的触发事件
- 内部行为建模:比如数据访问、运行周期、等待点等
我记得有一次,一个同事在Developer里画了上百个SWC,结果发现端口类型全用错了——Sender-Receiver和Client-Server混着用。嗯,这种问题在配置阶段改起来还好,要是等到代码生成后再发现,那代价就大了。
Developer的输出是什么?是一个个的.arxml文件。这些文件描述了整个应用层的软件架构。注意,它只负责“设计”,不负责“实现”。也就是说,它不会生成C代码,只会生成描述性的XML。
四、DaVinci Configurator Pro:把设计变成代码的“翻译官”
如果说Developer是画图纸的,那Configurator Pro就是照着图纸盖房子的。它的任务是把Developer设计的架构,和底层的BSW(基础软件)配置结合起来,最终生成可编译的C代码。
它的核心功能:
- BSW配置:配置OS、COM、DCM、NvM、EcuM等所有基础软件模块
- RTE生成:根据Developer的SWC设计,自动生成RTE层代码
- ECU配置:管脚映射、中断配置、时钟配置等硬件相关设置
- 验证与一致性检查:检查配置有没有矛盾,比如某个信号有没有被正确映射
你想想看,Developer里画了一个SWC,它有一个端口要发送CAN消息。这个CAN消息具体用哪个CAN ID、哪个PDU、哪个DLC——这些细节全是在Configurator Pro里配的。
.arxml,也接收Project Manager的项目配置,然后结合BSW模块的配置,最终生成RTE代码和BSW代码。说白了,没有Configurator Pro,Developer画得再好也跑不起来。
我个人的习惯是,在Configurator Pro里配置BSW时,会先做一次“全局验证”。这个功能能帮你检查出很多低级错误,比如某个端口没连上、某个信号没映射、某个定时器配置冲突等。别等到生成代码了才发现问题,那时候改起来就麻烦了。
五、三者的关系:一张图说清楚
咱们用表格总结一下三者的关系:
| 工具 | 主要职责 | 输入 | 输出 | 我常用的场景 |
|---|---|---|---|---|
| Project Manager | 项目管理、版本控制、模块清单 | 项目需求、AUTOSAR标准 | 项目配置文件(.arxml) | 新建项目时先打开它 |
| Developer | 应用层架构设计、SWC建模 | Project Manager的配置 | SWC描述文件(.arxml) | 画架构图、定义接口 |
| Configurator Pro | BSW配置、RTE生成、代码生成 | Developer的.arxml + BSW配置 | C代码、RTE代码、BSW代码 | 配置底层、生成代码 |
它们之间的数据流是这样的:
- Project Manager 定义项目范围和版本 → 生成基础配置
- Developer 读取这个配置,开始设计SWC → 生成SWC描述
- Configurator Pro 读取SWC描述,结合BSW配置 → 生成最终代码
注意,这个流程不是单向的。实际项目中,经常需要在Developer和Configurator Pro之间来回切换。比如你在Configurator Pro里发现某个信号映射有问题,就得回到Developer里修改端口定义,然后再回来重新配置。
六、实际项目中的协作流程
我拿一个实际项目举例。假设我们要做一个车窗控制ECU:
- 先在Project Manager里新建项目,选择AUTOSAR 4.4.0,添加ECU实例,勾选需要的BSW模块(比如CAN、NvM、EcuM等)
- 然后打开Developer,创建两个SWC:一个叫
WindowCtrl_SWC(控制逻辑),一个叫MotorDrv_SWC(电机驱动)。定义好它们之间的接口——比如一个Sender-Receiver端口传“目标位置”,一个Client-Server端口传“电机状态” - 最后打开Configurator Pro,导入Developer生成的
.arxml,配置CAN通信矩阵、配置NvM存储参数、配置OS任务和调度表。然后一键生成代码
你看,三个工具各司其职,缺一不可。少了Project Manager,项目版本乱套;少了Developer,应用层架构没人画;少了Configurator Pro,代码出不来。
嗯,今天的内容就到这里。下一章咱们会深入讲DaVinci Developer的具体操作,包括怎么画SWC、怎么定义端口、怎么设置Runnable。到时候我会拿一个实际案例,手把手带你走一遍。
记住,工具只是工具,关键是理解它们背后的设计思想。把这三个工具的关系搞清楚了,AUTOSAR的配置流程你就掌握了至少一半。