3. 自适应平台开发环境搭建:基于Vector DaVinci或EB tresos的AP开发环境配置、工具链安装与验证
说实话,很多朋友刚开始接触AUTOSAR Adaptive Platform(AP)时,最头疼的不是概念理解,而是环境搭建。我见过不少团队,工具链装了一两周还没跑通第一个Hello World。今天我们就来把这个坎迈过去。
AP开发环境和传统的Classic Platform(CP)完全不同。CP那套基于Eclipse的配置方式,说白了已经用了十几年。AP这边,主流工具链就是Vector的DaVinci和EB的tresos。我个人更习惯用Vector家的,但EB在某些OEM那里也是硬性要求。咱们两边都讲透。
3.1 工具链全景:你到底需要装哪些东西?
先看一张整体架构图,心里有个谱。
从上图能看出来,AP开发环境分三层:应用层工具、平台配置工具、运行时调试工具。外加许可证管理和版本控制。缺一不可。
3.2 Vector DaVinci 环境搭建(我常用的路线)
Vector家的工具链,核心是DaVinci Developer和DaVinci Configurator Pro。前者管SWC设计,后者管基础软件配置。AP版本叫DaVinci Developer Adaptive。
3.2.1 安装步骤
- 申请许可证:Vector的许可证走Wibu加密狗或软授权。我个人建议用软授权,省得插拔狗。去Vector官网申请试用,一般给30天。
- 安装DaVinci Developer Adaptive:双击安装包,一路Next。注意安装路径不要有中文。
- 安装DaVinci Configurator Pro:这个负责生成基础软件配置。版本要和Developer匹配。
- 配置编译器:AP要求C++17以上。我习惯用GCC 9.3或Clang 10。设置环境变量
CC和CXX。 - 安装CMake:AP构建系统基于CMake。版本建议3.16以上。
3.2.2 验证安装
装完后,打开DaVinci Developer Adaptive,新建一个空项目。如果能正常创建ARXML模型,基本就成功了。再打开Configurator Pro,导入一个示例配置,跑一次代码生成。
# 验证CMake和编译器
cmake --version
g++ --version
# 验证Vector工具链(命令行方式,如果有)
vecgen --version
3.3 EB tresos 环境搭建(另一种选择)
EB的工具链,核心是EB tresos Studio。它和Vector的思路不太一样。EB更强调基于模型的配置,所有参数都在一个巨大的GUI里调。
3.3.1 安装步骤
- 申请许可证:EB走FlexNet浮动许可证。需要连公司许可证服务器。我个人觉得比Vector麻烦一点。
- 安装EB tresos Studio:安装包大概2-3GB。包含基础软件模块和代码生成器。
- 安装EB Assist:这是EB的AUTOSAR运行时环境,相当于一个轻量级AP平台。
- 配置Python环境:EB的脚本系统依赖Python 3.8+。记得把Python加到PATH里。
3.3.2 验证安装
打开tresos Studio,新建一个AP工程。如果能加载.arxml文件并显示模块树,说明安装成功。跑一次generate code,看输出目录有没有生成.cpp和.h文件。
Vector vs EB 对比:
| 维度 | Vector DaVinci | EB tresos |
|---|---|---|
| 许可证方式 | Wibu加密狗/软授权 | FlexNet浮动许可证 |
| GUI风格 | 分模块、树状结构 | 一体化、表格密集 |
| 代码生成速度 | 较快 | 中等 |
| 学习曲线 | 中等 | 较陡 |
| OEM支持度 | 大众、宝马常用 | 奔驰、福特常用 |
3.4 工具链集成:让所有工具协同工作
工具装完只是第一步。真正的坑在于集成。你想想看,DaVinci生成的代码,要交给CMake编译;CMake要能找到编译器;编译器要链接EB的运行时库。任何一个环节断掉,项目就起不来。
3.4.1 环境变量配置
我建议把以下变量写到~/.bashrc或系统环境变量里:
# Vector工具链
export VECTOR_DAVINCI_HOME=/opt/vector/davinci_adaptive
export PATH=$PATH:$VECTOR_DAVINCI_HOME/bin
# EB工具链
export EB_TRESOS_HOME=/opt/eb/tresos_studio
export PATH=$PATH:$EB_TRESOS_HOME/bin
# 编译器
export CC=/usr/bin/gcc-9
export CXX=/usr/bin/g++-9
# CMake
export CMAKE_HOME=/usr/local/cmake-3.20
export PATH=$PATH:$CMAKE_HOME/bin
3.4.2 构建系统集成
AP项目的CMakeLists.txt通常由工具链自动生成。但你需要手动指定一些路径:
cmake_minimum_required(VERSION 3.16)
project(MyAdaptiveApp)
# 包含AP基础软件路径
set(ARA_BASE_PATH /opt/vector/ara_com)
include_directories(${ARA_BASE_PATH}/include)
# 添加生成的代码
add_subdirectory(generated_code)
# 链接ARA库
target_link_libraries(my_app
ara::com
ara::exec
ara::per
)
3.5 验证:跑通第一个AP应用
环境搭好之后,一定要跑一个最小验证。我习惯用Hello World + ARA::com通信来验证。
3.5.1 验证步骤
- 在DaVinci Developer中创建一个SWC,定义一个Service Interface。
- 生成代码,得到
impl.cpp和impl.h。 - 在
impl.cpp的Init()函数里加一行std::cout << "Hello AP World!" << std::endl;。 - 用CMake编译,生成可执行文件。
- 在QEMU或开发板上运行,看串口输出。
# 编译
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake
make -j4
# 运行(QEMU环境)
./run_adaptive_app.sh
3.6 常见问题与避坑指南
这些年我踩过的坑,列几个典型的:
- 许可证连不上:Vector的Wibu服务默认端口是1947。检查防火墙。EB的FlexNet默认端口是27000。我曾经在客户现场,IT把端口封了,折腾了两天才发现。
- 代码生成报错:多半是ARXML模型有问题。检查SWC的Port定义是否完整。我遇到过Port的Interface引用断了,生成器直接崩溃。
- 编译链接失败:检查C++标准。AP要求C++17,但有些旧编译器默认是C++14。在CMake里加
set(CMAKE_CXX_STANDARD 17)。 - 运行时Segmentation Fault:大概率是Execution Management的配置文件不对。检查
manifest.json里的进程ID和资源分配。
一句话总结:环境搭建没有捷径。老老实实按官方文档来,每一步验证通过再往下走。我见过太多人想一口气装完所有东西,结果出了问题根本不知道是哪一步错的。
好了,环境搭好之后,下一件事就是真正开始写AP应用了。不过那是后面章节的内容。先把今天讲的工具链跑通,这是所有工作的基础。