2. 开发环境搭建:Vector DaVinci Developer安装与配置、创建第一个SWC工程
说实话,很多新手一上来就急着写代码,结果环境没搭好,折腾半天连个SWC都建不出来。我当年刚接触AUTOSAR时也犯过这毛病——装了个DaVinci Developer,结果License没配好,一打开就报错,愣是卡了两天。所以这一章,咱们踏踏实实把环境搞定,再亲手创建第一个SWC工程。
2.1 安装前的准备工作
先别急着双击安装包。你得确认几件事:
- 操作系统:DaVinci Developer只支持Windows 10 64位或Windows 11。我试过在Win7上装,各种兼容性问题,劝你别折腾。
- Java环境:需要JDK 11或更高版本。你可以在命令行里敲
java -version检查一下。如果没有,去Oracle官网下个JDK 11。 - License文件:Vector的产品都是绑定License的。你得先拿到一个
.lic文件,或者配置好License Server。我在项目里见过有人把License文件放桌面上,结果一更新系统就丢了……嗯,建议你专门建个文件夹存好。 - 硬件要求:至少8GB内存,推荐16GB。SSD硬盘是必须的,不然加载项目时你会怀疑人生。
2.2 安装Vector DaVinci Developer
好,准备工作做完了,咱们开始装。流程其实不复杂:
- 双击
DaVinci_Developer_Setup.exe,选择语言(建议英文,中文翻译有些地方不准确)。 - 一路Next,到选择组件时,我建议你勾选 DaVinci Developer Core 和 DaVinci Developer Extensions。Extensions里有一些实用工具,比如代码生成器辅助插件。
- 安装路径我习惯用默认的
C:\Vector\DaVinci Developer\,但如果你C盘空间紧张,可以改到D盘。 - 安装完成后,会弹出一个License配置向导。选择 License File,然后浏览到你存放
.lic文件的位置。 - 点Finish,重启电脑。
重启后,你可以在开始菜单里找到 DaVinci Developer 的图标。双击打开,如果能看到主界面,恭喜你,安装成功了。
2.3 配置开发环境
安装完只是第一步。真正干活前,还得配几个关键设置。我个人习惯先做这三件事:
- 设置工作空间:打开DaVinci Developer,点击
File -> Switch Workspace,选一个你常用的文件夹。我一般会在D盘建一个Workspace_AUTOSAR,把所有项目都放里面。 - 配置代码生成器路径:点击
Window -> Preferences -> DaVinci Developer -> Code Generation,设置 Generator Path 指向你的代码生成器(比如DaVinci Configurator Pro的安装目录)。这一步很多人会忘,结果生成代码时一直报错。 - 导入基础模块包:AUTOSAR不是从零开始的。你需要导入一些基础模块,比如
EcuM、BswM、Com等。这些模块通常由OEM或供应商提供,是一个.arxml文件。点击File -> Import -> General -> Existing Projects into Workspace,然后选择这些文件。
2.4 创建第一个SWC工程
环境配好了,咱们来动手。创建一个SWC工程,说白了就是定义一个软件组件,告诉工具这个组件有哪些端口、哪些数据、跑在哪个Runnable上。我带你走一遍流程:
- 打开DaVinci Developer,点击
File -> New -> DaVinci Project。 - 输入项目名称,比如
MyFirstSWC。选择保存路径,然后点Finish。 - 在左侧的 Project Explorer 里,右键点击
Components文件夹,选择New -> SwComponentType。 - 弹出一个对话框,让你选组件类型。对于应用层软件,一般选 ApplicationSwComponentType。名字我建议用
App_SpeedController这种有意义的命名。 - 点Finish后,你会看到一个空白的组件编辑器。现在咱们给它加点东西。
接下来,咱们给这个SWC添加一个端口(Port)。端口是SWC跟外界通信的接口:
- 在组件编辑器的 Ports 区域,右键选择
New -> ProvidedPort(提供端口,比如输出数据)。 - 输入端口名,比如
SpeedOut。接口类型选SenderReceiverInterface,然后点OK。 - 再添加一个
RequiredPort(需求端口,比如读取传感器数据),名字叫SensorIn。
端口有了,还得有数据。咱们定义一个数据元素:
- 在 Data Elements 区域,右键选择
New -> DataElement。 - 名字叫
VehicleSpeed,类型选uint16。这个就是咱们要输出的车速信号。 - 把
VehicleSpeed拖拽到SpeedOut端口上,这样端口就知道它要发送什么数据了。
最后,咱们得告诉SWC什么时候干活。这就要定义Runnable(可运行实体):
- 在 Runnables 区域,右键选择
New -> RunnableEntity。 - 名字叫
Runnable_CalcSpeed。触发事件选TimingEvent,周期设为0.01秒(也就是10ms)。 - 在Runnable的 Data Access 里,把
SensorIn和SpeedOut加进去,这样Runnable就能读写这些数据了。
好了,保存一下(Ctrl+S)。你的第一个SWC就建好了!
2.5 知识体系总览
这一章的内容其实就围绕一个核心:从工具安装到第一个SWC成型。下面这张图帮你理清逻辑:
2.6 验证你的工程
工程建好了,怎么知道对不对?我教你一个快速验证的方法:
- 在Project Explorer里右键点击你的项目,选择 Validate。工具会检查所有配置是否合法。
- 如果看到绿色的 Validation Succeeded,说明基本没问题。
- 如果有红色错误,双击错误信息,工具会自动跳转到问题位置。最常见的错误是端口类型没选对,或者Runnable没绑定事件。
验证通过后,你可以尝试生成代码。点击 Project -> Generate Code,工具会在你的项目目录下生成一堆 .c 和 .h 文件。打开看看,你会发现里面已经有你定义的端口、数据和Runnable框架了。
好了,你的开发环境已经就绪。接下来就可以在这个工程上继续添加逻辑、配置通信、甚至集成到整个ECU项目里了。记住,SWC是AUTOSAR应用层的核心,把这个基础打牢,后面会越来越顺。