3. 开发环境搭建:Vector DaVinci Developer 安装与配置、EB tresos Studio 安装与配置、编译器与调试器配置、工程文件结构解析
说实话,很多新手学 AutoSAR 卡住的第一关,不是概念不懂,而是环境搭不起来。我见过不少同事,工具链装了两天,最后连个 Demo 工程都跑不通。嗯,这一章我们就来把这几个核心工具捋清楚。
3.1 工具链全景图
在 AutoSAR CP 开发中,我们通常需要三样东西:配置工具、代码生成器、编译调试链。我个人习惯把它们分成三层来看:
3.2 Vector DaVinci Developer 安装与配置
DaVinci Developer 是干什么的?说白了,它就是用来画 SWC(软件组件)的。你可以在里面定义端口、接口、运行实体,然后它帮你生成 RTE 代码。
3.2.1 安装要点
- 版本选择:我建议用 4.x 以上版本,对 Multi-Core 支持更好。记得和你的 AutoSAR 版本对齐,比如 4.4.0 就用对应的 Developer 4.4.x。
- License 管理:Vector 用浮动 License。你需要在环境变量里配好
VECTOR_LICENSE_FILE,指向你的 License Server。 - Java 依赖:这玩意儿依赖 JRE。我曾经遇到过装完打不开,查了半天发现是 Java 版本太高,降回 Java 8 就好了。
3.2.2 基本配置
安装完后,第一件事是配置 Workspace。我个人习惯把 Workspace 放在工程目录外面,避免和代码混在一起。
# 环境变量示例(Windows)
VECTOR_LICENSE_FILE=@192.168.1.100
DAVINCI_HOME=C:\Vector\DaVinci_Developer_4.4.0
PATH=%PATH%;%DAVINCI_HOME%\bin
3.3 EB tresos Studio 安装与配置
EB tresos Studio 是配置 BSW 和 MCAL 的主力工具。它和 DaVinci Developer 是互补关系——Developer 管应用层,tresos 管基础软件层。
3.3.1 安装流程
- 下载安装包:EB 的安装包通常很大(几个 G),包含所有 MCAL 模块。
- 安装顺序:先装 Studio 本体,再装 MCAL 插件包。我见过有人先装插件,结果 Studio 识别不到。
- License 配置:EB 用 License 文件(.lic)。放到
C:\EB\licenses目录下就行。
3.3.2 工程创建
打开 tresos Studio,新建工程时要注意选对 MCU 型号。比如你用的是 Infineon TC3xx,就选对应的 MCAL 变体。
.epf。别和 Developer 的 .arxml 搞混了。这两个工具通过 ARXML 文件交换数据。
3.4 编译器与调试器配置
编译器这块,AutoSAR 圈子里常用的有三家:Tasking、Green Hills、GCC。我个人的经验是:
| 编译器 | 适用场景 | 特点 |
|---|---|---|
| Tasking | Infineon TC2xx/TC3xx | 代码密度好,调试信息丰富 |
| Green Hills | NXP/Renesas | 优化强,但 License 贵 |
| GCC | 原型验证、教学 | 免费,但优化不如商业编译器 |
3.4.1 编译器路径配置
在 tresos Studio 里,你需要指定编译器路径。通常在 Project → Properties → C/C++ Build → Settings 里配。
# 以 Tasking 为例
C:/TASKING/v6.3r1/ctc/bin
# 环境变量
TOOLCHAIN_PATH=C:/TASKING/v6.3r1
3.4.2 调试器配置
调试器我推荐 Lauterbach。它的 TRACE32 在 AutoSAR 圈子里是标配。配置时注意:
- 调试脚本:Lauterbach 用
.cmm脚本初始化 CPU。我一般会写一个通用的初始化脚本,省得每个工程都配一遍。 - 连接方式:JTAG 还是 SWD?TC3xx 建议用 JTAG,调试信息更全。
避坑指南:我曾经在调试时发现程序跑飞,查了两天,最后发现是调试器时钟配置太高,导致信号不稳定。把 JTAG 时钟降到 10MHz 就正常了。
3.5 工程文件结构解析
一个典型的 AutoSAR CP 工程,文件结构大概是这样的:
Project_Root/
├── 01_System/ # 系统级配置
│ ├── System.arxml # 系统描述
│ └── EcuExtract.arxml # ECU 提取
├── 02_SWC/ # 应用层
│ ├── App_SWC.arxml # SWC 定义
│ └── Rte/ # 生成的 RTE 代码
├── 03_BSW/ # 基础软件
│ ├── BswM/ # BSW 管理器
│ ├── Can/ # CAN 驱动
│ ├── Lin/ # LIN 驱动
│ └── EcuM/ # ECU 管理器
├── 04_MCAL/ # 微控制器抽象层
│ ├── Gpt/ # GPT 定时器
│ ├── Adc/ # ADC 驱动
│ └── Port/ # Port 驱动
├── 05_Config/ # 配置文件
│ ├── LinkerScript.ld # 链接脚本
│ └── Startup.s # 启动代码
├── 06_Build/ # 编译输出
│ ├── Makefile # 构建脚本
│ └── Output/ # 生成的 .elf/.hex
└── 07_Docs/ # 文档
└── Architecture.md
3.5.1 关键文件说明
- ARXML 文件:这是 AutoSAR 的"灵魂"。所有配置信息都存成 XML 格式。Developer 和 tresos 之间就是靠它通信的。
- Rte 文件夹:里面是生成的 RTE 代码。你写的 SWC 代码会通过 RTE 和 BSW 交互。别手动改这里的文件,改了也会被重新生成覆盖。
- LinkerScript.ld:链接脚本。这个文件决定了代码段、数据段、堆栈放在哪。我建议在工程初期就配好,不然后面改起来很麻烦。
README.md,记录工具版本、编译器路径、License 信息。半年后你再看这个工程,会感谢当时的自己。
3.6 环境验证
装完所有工具后,怎么知道环境是不是好的?我一般跑一个"最小验证":
- 打开 DaVinci Developer,新建一个最简单的 SWC(一个输入端口,一个输出端口)。
- 生成 RTE 代码。
- 在 tresos Studio 里导入生成的 ARXML,配置一个定时器(比如 GPT 10ms 中断)。
- 生成 BSW 代码。
- 用编译器编译整个工程,生成 .elf 文件。
- 用 Lauterbach 下载到开发板,看 LED 是否按 10ms 闪烁。
如果这六步都能走通,恭喜你,环境搭好了。如果卡在哪一步,嗯,回头检查一下版本匹配和 License。