第二章 工作区与项目创建

好,咱们正式开始动手了。这一章我带你搞定 DaVinci Config 的工作区和项目。说白了,这就是你后续所有工作的「根据地」。我见过不少新手,项目结构乱成一锅粥,最后自己都找不到配置文件在哪。咱们别走那条路。

2.1 工作区概念

工作区是什么?你可以把它理解成一个「虚拟的文件夹容器」。它不存代码,只存项目的引用和配置信息。我个人习惯把工作区比作「办公桌」——桌上摆着不同项目的文件夹,但文件本身还在柜子里。

DaVinci Config 的工作区文件后缀是 .davinci_workspace。它记录了:

  • 项目路径列表
  • 编辑器布局状态
  • 用户偏好设置
  • 最近打开的文件记录

嗯,这里要注意:工作区本身不包含任何业务代码。你删了工作区文件,项目文件还在。我刚开始用的时候,以为工作区就是项目,结果误删了工作区文件,急得满头大汗——后来发现项目完好无损,虚惊一场。

我的小建议:每个产品线建一个独立的工作区。比如「BCM 项目工作区」、「网关项目工作区」。别把所有项目塞到一个工作区里,否则打开速度会变慢。

2.2 创建新项目

创建新项目很简单,但有几个坑你得知道。点击 File → New → DaVinci Project,弹出向导窗口。你会看到:

  1. Project Name:项目名,建议用英文,别带空格。我习惯用「产品名_平台_版本」的格式,比如 BCM_S32K144_V2.1
  2. Location:存放路径。记住,路径不要太深,不要有中文。Windows 下路径超过 260 字符会出问题——我踩过这个坑。
  3. Configuration Set:选择你的基础配置。如果是 AUTOSAR 项目,选对应的模块包版本。

点击 Finish 后,DaVinci 会自动生成初始项目结构。这个过程大概 10-30 秒,取决于你的电脑性能。如果卡住了,别急,等一等。我曾经以为它死机了,强行关闭,结果项目文件损坏了。

注意:创建项目时,确保你的工作目录有写入权限。公司 IT 经常把 C 盘权限锁死,我建议你把项目放在 D 盘或 E 盘的工作目录下。

2.3 导入现有项目

接手别人的项目,或者从版本控制仓库拉下来的代码,怎么导入?很简单:

File → Import → General → Existing Projects into Workspace

然后选择根目录,DaVinci 会自动扫描出所有可导入的项目。这里有个细节:

  • Copy projects into workspace:勾选的话,会把项目复制到工作区目录。我一般不勾,因为项目文件可能很大,复制一份浪费空间。
  • 不勾选:直接引用原路径。这样版本控制也方便,你直接在原路径下 git 操作就行。

导入后,如果看到项目上有红色感叹号,别慌。通常是路径引用问题。右键项目 → Properties → Project References,检查依赖项是否都在。

我记得有一次导入一个老项目,报了一堆错。后来发现是项目引用了某个已删除的模块包。解决办法是去 Project → Properties → DaVinci Config → Module Packages 里重新配置一下路径。

2.4 项目结构解析

项目创建好后,你会看到这样的目录结构。我带你走一遍:

MyProject/
├── .project              # Eclipse 项目文件,别手动改
├── .cproject             # C/C++ 项目配置
├── .settings/            # 编辑器设置
├── src/                  # 源代码目录
│   ├── config/           # 配置文件(.arxml 等)
│   ├── generated/        # 自动生成的代码
│   └── user/             # 用户自定义代码
├── include/              # 头文件
├── lib/                  # 库文件
├── tools/                # 脚本工具
└── doc/                  # 文档

重点说几个:

  • src/config/:这是你的核心配置区。所有 ECU 配置、SWC 描述、系统约束都在这里。我习惯把不同模块的配置分文件夹存放,比如 CanConfig/LinConfig/
  • src/generated/:DaVinci 自动生成的代码。千万别手动修改!你改了,下次生成就会被覆盖。我见过有人在这里改代码,结果调试了三天才发现问题。
  • src/user/:你写业务逻辑的地方。比如自定义的 RTE 钩子函数、BSP 驱动等。
核心原则:配置文件与生成代码分离。你只维护 config 目录下的 .arxml 文件,generated 目录交给工具去管。这样版本控制也清晰。

2.5 版本控制集成

DaVinci Config 基于 Eclipse,所以天然支持 Git、SVN 等版本控制工具。我个人强烈推荐 Git,原因很简单:分支管理灵活,适合多人协作。

集成步骤:

  1. 安装 Git 插件:Help → Eclipse Marketplace,搜索 EGit 安装。
  2. 在项目上右键 → Team → Share Project,选择 Git。
  3. 创建本地仓库,然后添加远程仓库地址。

这里有个关键点:哪些文件该提交,哪些不该?

文件/目录 是否提交 说明
src/config/ ✅ 必须提交 核心配置,团队共享
src/generated/ ❌ 不提交 每次生成都会变,提交只会制造冲突
.project / .cproject ✅ 建议提交 保证团队成员项目设置一致
.settings/ ❌ 不提交 个人编辑器偏好,别污染仓库
build/ 或 output/ ❌ 不提交 编译产物,毫无意义

我建议在项目根目录创建 .gitignore 文件,内容大致如下:

# 忽略生成代码
src/generated/

# 忽略编译输出
build/
output/

# 忽略个人设置
.settings/
*.log

# 忽略临时文件
*.tmp
*.bak

为什么要这么严格?我吃过亏。有一次团队成员把 generated 目录提交了,结果每次代码生成后,git status 都显示几百个文件变更。合并代码时冲突不断,浪费了大半天时间。从那以后,我定了个规矩:谁提交 generated 目录,谁请全组喝咖啡

避坑指南:如果你用 SVN,记得设置 svn:ignore 属性。操作方式:右键项目 → Team → Set svn:ignore... 把上面那些目录加进去。

好了,这一章的内容就这些。工作区和项目创建是基础中的基础,但基础打牢了,后面才能跑得快。下一章我们聊配置文件的编辑与管理,那才是真正开始干活的地方。