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 工具链与工程骨架数据流 DaVinci Developer Adaptive Application 建模 Service Interface / Event Method / Field / Port DaVinci Configurator Machine / Manifest 配置 Service Instance 绑定 代码生成驱动 Adaptive Studio 工程管理 / C++ 编辑 CMake 构建 / 调试 目标连接与运行 应用 ARXML 生成代码 + Manifest 构建与运行链路 ARXML 模型 代码生成器 CMake 构建 可执行文件 验证闭环 编译通过 → 链接成功 → 进程启动 → 日志输出正常

二、安装前的环境准备

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 才能调用代码生成和构建。

四、建立第一个可编译工程骨架

工具装好后,不要急着写业务逻辑,先建立一个最小可编译骨架,验证整条链路通畅。推荐流程如下:

  1. 新建 Adaptive Project:在 Adaptive Studio 中选择 File → New → Adaptive Project,输入工程名(如 HelloAdaptive),选择目标平台(Linux x86_64 或对应目标板)。
  2. 创建 Machine 配置:在 Configurator 中新建 Machine,设置 Machine 名称、网络端点、Execution Manifest 基础参数。此阶段保持默认即可,重点是让模型能生成。
  3. 定义一个最小 Service Interface:在 Developer 中创建一个 Service Interface,例如 HelloService,包含一个 Method sayHello(),返回 std::string。这是为了验证应用侧模型能正确集成。
  4. 生成代码:在 Configurator 中执行 Generate Code,观察输出目录是否生成 gen/ 下的 C++ 头文件与源文件,以及 Manifest 文件。若生成失败,查看 Console 中的错误行号,通常是 ARXML 引用缺失或路径错误。
  5. 编写最小应用入口:在 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 对象注册服务骨架,然后进入运行循环。

  1. 配置 CMake 并构建:确认 CMakeLists.txt 中已包含生成代码目录和 Adaptive 平台库路径。在 Studio 中执行 Build Project,观察是否生成可执行文件。
  2. 运行验证:在终端执行生成的可执行文件,观察是否输出启动日志、服务注册成功信息。若进程能正常启动并打印日志,说明工程骨架已打通。

五、常见问题与判断依据

现象 可能原因 判断与处理
Configurator 启动报许可证错误 许可证文件缺失或版本不匹配 检查许可证有效期与工具版本,重新导入
代码生成失败,提示 ARXML 引用错误 Developer 模型未正确集成或路径未配置 在 Configurator 中重新导入 ARXML,确认引用完整
CMake 找不到 Adaptive 库 库路径未加入 CMakeLists 或环境变量 检查 CMAKE_PREFIX_PATH 与 target_link_libraries
可执行文件启动即退出 Manifest 配置错误或服务注册失败 查看启动日志,确认 Machine 配置与运行环境一致
不要跳过“最小骨架验证”直接开发业务功能。Adaptive 工具链的配置项较多,一旦在复杂工程中出问题,排查成本会成倍增加。先用最小工程确认工具链、代码生成、构建、运行四个环节都正常,再逐步扩展。

完成本节后,你应当拥有一个能编译、能启动、能输出日志的 Adaptive 工程骨架。这个骨架本身没有业务价值,但它是后续所有开发工作的基础。下一阶段的所有配置、建模和编码,都将在这个骨架上叠加。