2. 开发环境准备:操作系统要求与运行时环境配置
做AUTOSAR工具链部署,第一步不是装软件,而是先把环境搭好。我见过太多人上来就双击安装包,结果跑起来各种报错——说白了,90%的问题都出在环境没配对。
这一章,咱们把Windows和Linux下的环境准备讲清楚。Java、Python、Perl,一个都不能少。
2.1 操作系统要求
EB tresos和Vector DaVinci对操作系统都有明确要求。我个人的习惯是:开发机用Windows 10/11,CI服务器用Ubuntu 20.04 LTS。
| 工具 | Windows支持 | Linux支持 | 备注 |
|---|---|---|---|
| EB tresos Studio | Windows 10/11 (64-bit) | 不支持 | GUI只能在Windows上跑 |
| EB tresos CLI (命令行) | Windows 10/11 | Ubuntu 20.04/22.04 | CI/CD场景首选Linux |
| Vector DaVinci Developer | Windows 10/11 (64-bit) | 不支持 | 架构设计工具,仅Windows |
| Vector DaVinci Configurator Pro | Windows 10/11 | Ubuntu 20.04/22.04 | 批量配置时Linux更稳定 |
2.2 Java运行环境配置
EB tresos和DaVinci都基于Eclipse RCP,所以Java是必须的。嗯,这里要注意版本匹配。
2.2.1 JDK版本选择
- EB tresos 23.x / 24.x:需要JDK 11(推荐Adoptium Temurin 11)
- DaVinci Developer 2023 / 2024:需要JDK 17(推荐Adoptium Temurin 17)
- DaVinci Configurator Pro 2023 / 2024:需要JDK 17
你可能会问:能不能装一个JDK两个工具共用?不建议。我试过用JDK 17跑EB tresos,启动没问题,但生成代码时偶尔会报NullPointerException。老老实实各装各的。
2.2.2 环境变量设置
以Windows为例,假设你装了JDK 11和JDK 17:
# 系统变量 - JAVA_HOME (指向默认JDK)
JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-11.0.22.7-hotspot
# 系统变量 - 额外JDK路径 (工具会自己找)
EB_JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-11.0.22.7-hotspot
DV_JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-17.0.10.7-hotspot
# Path变量追加
%JAVA_HOME%\bin
java -version。如果显示的是你期望的JDK版本,就对了。如果不对,检查Path变量里有没有其他JDK路径排在前面。
2.3 Python环境配置
Python在AUTOSAR工具链里主要用来写脚本——批量生成SWC、解析ARXML、自动化测试。我个人建议用Python 3.8+,别用Python 2.7了,已经停止维护好几年了。
2.3.1 安装与虚拟环境
我强烈推荐用虚拟环境。为什么呢?因为不同项目可能依赖不同版本的库,混在一起迟早出问题。
# 安装Python 3.10 (Windows)
# 下载地址: https://www.python.org/downloads/
# 安装时勾选 "Add Python to PATH"
# 创建虚拟环境
python -m venv autosar_env
# 激活虚拟环境 (Windows)
autosar_env\Scripts\activate
# 激活虚拟环境 (Linux)
source autosar_env/bin/activate
# 安装常用库
pip install pyyaml lxml openpyxl
2.3.2 环境变量设置
Python的环境变量相对简单:
# 系统变量
PYTHON_HOME = C:\Users\你的用户名\AppData\Local\Programs\Python\Python310
# Path变量追加
%PYTHON_HOME%
%PYTHON_HOME%\Scripts
2.4 Perl环境配置
Perl?现在还有人用Perl?说实话,我一开始也是这个反应。但EB tresos的代码生成器底层大量依赖Perl脚本,尤其是BSW模块的生成器,比如Can、Lin、Ethernet的驱动代码生成,都是Perl写的。
2.4.1 Perl版本选择
- Windows推荐:Strawberry Perl 5.32+
- Linux推荐:系统自带Perl 5 (一般Ubuntu 20.04自带5.30)
2.4.2 安装与验证
# Windows - Strawberry Perl
# 下载地址: https://strawberryperl.com/
# 安装后自动添加环境变量
# 验证
perl -v
# 输出示例:
# This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread
2.4.3 环境变量设置
# 系统变量 (如果安装时没自动添加)
PERL_HOME = C:\Strawberry\perl\bin
# Path变量追加
%PERL_HOME%
C:\Strawberry\c\bin # 有些Perl模块需要C编译器
PERL5LIB查找自定义模块。如果你有自己写的Perl模块,记得设置这个变量。我遇到过的情况是:生成CanIf代码时一直报"Can't locate CanIf.pm",就是因为PERL5LIB没指向模块目录。
2.5 环境变量综合设置与验证
好了,现在Java、Python、Perl都装好了。但工具链要协同工作,还需要一些额外的环境变量。
2.5.1 工具链专用环境变量
| 变量名 | 值示例 | 说明 |
|---|---|---|
| EB_HOME | C:\EB\tresos_24.0 | EB tresos安装根目录 |
| EB_LICENSE_FILE | @license-server:27000 | 许可证服务器地址 |
| DV_HOME | C:\Vector\DaVinci_Developer_2024 | DaVinci Developer安装目录 |
| DV_CONFIG_HOME | C:\Vector\DaVinci_Configurator_2024 | DaVinci Configurator安装目录 |
| ARXML_WORKSPACE | D:\AUTOSAR_Projects | 工作空间目录(建议自定义) |
2.5.2 一键验证脚本
我写了个小脚本,每次配完环境跑一遍,省心:
# Windows - check_env.bat
@echo off
echo ===== AUTOSAR 开发环境验证 =====
echo.
echo [1/5] 检查 Java...
java -version 2>&1 | findstr "version"
if %errorlevel% neq 0 echo [FAIL] Java未找到
echo [2/5] 检查 Python...
python --version
if %errorlevel% neq 0 echo [FAIL] Python未找到
echo [3/5] 检查 Perl...
perl -v | findstr "This is perl"
if %errorlevel% neq 0 echo [FAIL] Perl未找到
echo [4/5] 检查 EB_HOME...
if defined EB_HOME (
echo EB_HOME = %EB_HOME%
) else (
echo [FAIL] EB_HOME未设置
)
echo [5/5] 检查 DV_HOME...
if defined DV_HOME (
echo DV_HOME = %DV_HOME%
) else (
echo [FAIL] DV_HOME未设置
)
echo.
echo ===== 验证完成 =====
2.6 知识体系总览
下面这张图把整个环境准备的知识结构串起来了。你对照着检查,缺哪个补哪个:
2.7 常见问题与排查
最后,分享几个我实际踩过的坑:
- Java版本冲突:装了JDK 17后,EB tresos启动报"Unsupported class version"。解决办法:设置EB_JAVA_HOME指向JDK 11,工具会优先读这个变量。
- Python路径带空格:Windows Store安装的Python在"Program Files"下,路径有空格。EB tresos调用Python脚本时,如果路径没加引号就会失败。建议装到C:\Python310这种无空格路径。
- Perl模块缺失:生成代码时报"Can't locate XML/Simple.pm"。运行
cpan install XML::Simple安装缺失模块。 - 环境变量不生效:改了环境变量后,记得重启命令行。我经常忘了这步,然后怀疑人生。