第二章 工作区与项目创建
好,咱们正式开始动手了。这一章我带你搞定 DaVinci Config 的工作区和项目。说白了,这就是你后续所有工作的「根据地」。我见过不少新手,项目结构乱成一锅粥,最后自己都找不到配置文件在哪。咱们别走那条路。
2.1 工作区概念
工作区是什么?你可以把它理解成一个「虚拟的文件夹容器」。它不存代码,只存项目的引用和配置信息。我个人习惯把工作区比作「办公桌」——桌上摆着不同项目的文件夹,但文件本身还在柜子里。
DaVinci Config 的工作区文件后缀是 .davinci_workspace。它记录了:
- 项目路径列表
- 编辑器布局状态
- 用户偏好设置
- 最近打开的文件记录
嗯,这里要注意:工作区本身不包含任何业务代码。你删了工作区文件,项目文件还在。我刚开始用的时候,以为工作区就是项目,结果误删了工作区文件,急得满头大汗——后来发现项目完好无损,虚惊一场。
2.2 创建新项目
创建新项目很简单,但有几个坑你得知道。点击 File → New → DaVinci Project,弹出向导窗口。你会看到:
- Project Name:项目名,建议用英文,别带空格。我习惯用「产品名_平台_版本」的格式,比如
BCM_S32K144_V2.1。 - Location:存放路径。记住,路径不要太深,不要有中文。Windows 下路径超过 260 字符会出问题——我踩过这个坑。
- Configuration Set:选择你的基础配置。如果是 AUTOSAR 项目,选对应的模块包版本。
点击 Finish 后,DaVinci 会自动生成初始项目结构。这个过程大概 10-30 秒,取决于你的电脑性能。如果卡住了,别急,等一等。我曾经以为它死机了,强行关闭,结果项目文件损坏了。
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 驱动等。
2.5 版本控制集成
DaVinci Config 基于 Eclipse,所以天然支持 Git、SVN 等版本控制工具。我个人强烈推荐 Git,原因很简单:分支管理灵活,适合多人协作。
集成步骤:
- 安装 Git 插件:
Help → Eclipse Marketplace,搜索 EGit 安装。 - 在项目上右键 →
Team → Share Project,选择 Git。 - 创建本地仓库,然后添加远程仓库地址。
这里有个关键点:哪些文件该提交,哪些不该?
| 文件/目录 | 是否提交 | 说明 |
|---|---|---|
| src/config/ | ✅ 必须提交 | 核心配置,团队共享 |
| src/generated/ | ❌ 不提交 | 每次生成都会变,提交只会制造冲突 |
| .project / .cproject | ✅ 建议提交 | 保证团队成员项目设置一致 |
| .settings/ | ❌ 不提交 | 个人编辑器偏好,别污染仓库 |
| build/ 或 output/ | ❌ 不提交 | 编译产物,毫无意义 |
我建议在项目根目录创建 .gitignore 文件,内容大致如下:
# 忽略生成代码
src/generated/
# 忽略编译输出
build/
output/
# 忽略个人设置
.settings/
*.log
# 忽略临时文件
*.tmp
*.bak
为什么要这么严格?我吃过亏。有一次团队成员把 generated 目录提交了,结果每次代码生成后,git status 都显示几百个文件变更。合并代码时冲突不断,浪费了大半天时间。从那以后,我定了个规矩:谁提交 generated 目录,谁请全组喝咖啡。
好了,这一章的内容就这些。工作区和项目创建是基础中的基础,但基础打牢了,后面才能跑得快。下一章我们聊配置文件的编辑与管理,那才是真正开始干活的地方。