2. DaVinci Adaptive开发环境搭建
Adaptive AUTOSAR 的开发不像经典 AUTOSAR 那样以“ECU 配置 + RTE 生成”为中心,而是围绕一套面向 POSIX 操作系统的 C++ 应用框架展开。因此,DaVinci Adaptive 工具链的搭建目标并不是“装好软件能打开”,而是让 DaVinci Configurator、DaVinci Developer Adaptive、Adaptive Studio 与底层编译/运行环境形成一条可闭环的链路:从 ARXML 模型输入,到代码生成,再到可编译、可链接、可启动的 Adaptive 应用。本节围绕这条链路,说明各工具的职责边界、安装顺序、关键配置项,以及如何验证第一个工程骨架真正“编译通过且可执行”。
一、先理清工具链的分工
很多初学者在安装阶段就卡住,根本原因是没分清三个工具各自负责什么。可以这样理解:
- DaVinci Configurator:面向 Adaptive 的配置与集成工具,负责 Machine、Execution Manifest、Service Instance、网络绑定等系统级配置,并驱动代码生成。它处理的是“平台侧”的模型。
- DaVinci Developer Adaptive:面向应用设计的建模工具,用于定义 Adaptive Application、Service Interface、Event、Method、Field 等,产出应用侧 ARXML,供 Configurator 集成。
- Adaptive Studio:基于 Eclipse 的集成开发环境,负责工程管理、C++ 源码编辑、构建配置(CMake)、调试与目标连接。它是开发者日常停留时间最长的界面。
三者关系可以概括为:Developer 定义“应用要什么”,Configurator 决定“平台给什么、怎么绑定”,Studio 负责“把生成物和手写代码一起编译成可执行文件”。理解这一点,后面的安装与配置就不会盲目。
二、安装前的环境准备
DaVinci Adaptive 工具链对宿主环境有明确要求,建议在开始安装前逐项确认,避免中途返工。
- 操作系统:Windows 10/11 64 位(工具链主要支持平台),或受支持的 Linux 发行版(如 Ubuntu 20.04/22.04 LTS)。若目标运行环境是 Linux,建议直接在 Linux 上开发,减少交叉编译复杂度。
- JDK:DaVinci Configurator 与 Developer 基于 Eclipse 框架,需要 JDK 11 或 17(以具体版本 Release Note 为准)。安装后设置
JAVA_HOME,并确认java -version输出正确。 - 编译工具链:Linux 下需要
gcc/g++(建议 9 以上)、cmake(3.16 以上)、make或ninja;Windows 下通常配合 WSL2 或 MinGW 使用。 - 磁盘与权限:工具链安装包较大,建议预留 20 GB 以上空间;安装目录避免中文路径和空格,否则代码生成脚本容易出错。
D:\DaVinci\Adaptive\ 或 /opt/davinci/adaptive/,后续配置工具路径时更清晰,也便于多版本共存。三、安装三个核心工具
安装顺序建议为:先装 DaVinci Configurator,再装 DaVinci Developer Adaptive,最后装 Adaptive Studio。原因是 Configurator 通常包含共享的底层组件和许可证管理模块,先装它可以减少后续工具的依赖冲突。
DaVinci Configurator 安装要点:运行安装程序后,选择 Adaptive 相关组件(不要只勾选 Classic 组件)。安装完成后首次启动,需要指定工作区(Workspace)目录,并导入许可证文件。许可证通常由 Vector 提供,格式为 .lic 或通过 License Server 获取。若启动后提示 “No valid license”,优先检查许可证是否与工具版本匹配,而不是反复重装。
DaVinci Developer Adaptive 安装要点:它通常作为 Configurator 的插件或独立安装包存在。安装后需要在 Configurator 的 Preferences → DaVinci Developer 中确认路径指向正确。若 Developer 无法识别 ARXML 模型,多半是版本不匹配或路径未配置。
Adaptive Studio 安装要点:Adaptive Studio 本质是定制化的 Eclipse。安装后需要配置两处关键路径:一是 Preferences → Adaptive → Toolchain 中指定 Configurator 和 Developer 的可执行文件路径;二是 Preferences → C/C++ → Build → CMake 中指定 CMake 路径。这两处配置正确,Studio 才能调用代码生成和构建。
四、建立第一个可编译工程骨架
工具装好后,不要急着写业务逻辑,先建立一个最小可编译骨架,验证整条链路通畅。推荐流程如下:
- 新建 Adaptive Project:在 Adaptive Studio 中选择
File → New → Adaptive Project,输入工程名(如HelloAdaptive),选择目标平台(Linux x86_64 或对应目标板)。 - 创建 Machine 配置:在 Configurator 中新建 Machine,设置 Machine 名称、网络端点、Execution Manifest 基础参数。此阶段保持默认即可,重点是让模型能生成。
- 定义一个最小 Service Interface:在 Developer 中创建一个 Service Interface,例如
HelloService,包含一个 MethodsayHello(),返回std::string。这是为了验证应用侧模型能正确集成。 - 生成代码:在 Configurator 中执行
Generate Code,观察输出目录是否生成gen/下的 C++ 头文件与源文件,以及 Manifest 文件。若生成失败,查看 Console 中的错误行号,通常是 ARXML 引用缺失或路径错误。 - 编写最小应用入口:在 Studio 的
src/目录下创建main.cpp,包含 Adaptive 应用初始化、服务注册和主循环。示例结构如下:
#include <adaptive/application.hpp>
#include "gen/HelloService_skeleton.hpp"
int main(int argc, char** argv) {
adaptive::Application app("HelloAdaptive");
auto skeleton = std::make_shared<HelloServiceSkeleton>();
skeleton->sayHello = []() { return std::string("Hello Adaptive"); };
app.registerService(skeleton);
app.run();
return 0;
}
这段代码是教学示例,实际 API 名称以所用 Adaptive 平台版本为准。重点是理解:应用通过 Application 对象注册服务骨架,然后进入运行循环。
- 配置 CMake 并构建:确认
CMakeLists.txt中已包含生成代码目录和 Adaptive 平台库路径。在 Studio 中执行Build Project,观察是否生成可执行文件。 - 运行验证:在终端执行生成的可执行文件,观察是否输出启动日志、服务注册成功信息。若进程能正常启动并打印日志,说明工程骨架已打通。
五、常见问题与判断依据
| 现象 | 可能原因 | 判断与处理 |
|---|---|---|
| Configurator 启动报许可证错误 | 许可证文件缺失或版本不匹配 | 检查许可证有效期与工具版本,重新导入 |
| 代码生成失败,提示 ARXML 引用错误 | Developer 模型未正确集成或路径未配置 | 在 Configurator 中重新导入 ARXML,确认引用完整 |
| CMake 找不到 Adaptive 库 | 库路径未加入 CMakeLists 或环境变量 | 检查 CMAKE_PREFIX_PATH 与 target_link_libraries |
| 可执行文件启动即退出 | Manifest 配置错误或服务注册失败 | 查看启动日志,确认 Machine 配置与运行环境一致 |
完成本节后,你应当拥有一个能编译、能启动、能输出日志的 Adaptive 工程骨架。这个骨架本身没有业务价值,但它是后续所有开发工作的基础。下一阶段的所有配置、建模和编码,都将在这个骨架上叠加。