3. 工作区与项目创建:创建工作区、创建新项目、导入现有项目、项目结构解析
好,咱们正式开始动手了。这一章我带你走一遍 DaVinci Config 的「地基工程」——工作区和项目。说白了,这就是你后续所有配置工作的容器。我见过不少新手一上来就急着配模块,结果项目路径乱飞、文件找不到,最后 debug 到崩溃。嗯,咱们先把底子打牢。
3.1 创建工作区(Workspace)
工作区是什么?你可以把它理解成一个「项目收纳盒」。DaVinci Config 是基于 Eclipse 的,所以它的工作区概念跟 Eclipse 一脉相承。我个人习惯把工作区放在一个专门的目录下,比如 D:\DaVinci_Workspaces,而不是默认的 C:\Users\...\workspace。为什么?因为 C 盘空间宝贵,而且万一系统重装,你不想丢东西吧?
创建步骤很简单:
- 启动 DaVinci Configurator Pro,弹出工作区选择对话框。
- 点击 Browse,选择一个空目录或新建一个目录。
- 勾选 Use this as the default and do not ask again(如果你不想每次启动都选的话)。
- 点击 Launch。
第一次启动时,工具会在工作区目录下生成 .metadata 文件夹。这个文件夹里存了你的工作区配置、插件状态、项目索引等。千万别手贱去删它,否则你的工作区就废了。我刚开始用的时候不懂,清理磁盘时顺手删了,结果所有项目信息丢失,重新导入了半天……
3.2 创建新项目
工作区准备好了,接下来创建项目。点击菜单栏 File → New → DaVinci Project。你会看到一个向导页面,这里有几个关键选项:
| 选项 | 说明 | 我的建议 |
|---|---|---|
| Project Name | 项目名称,建议用英文+下划线 | 比如 BCM_Project_v2.1 |
| Use default location | 是否使用工作区默认路径 | 一般勾选,除非你有特殊需求 |
| Target ECU | 目标 ECU 型号 | 根据你的硬件选,比如 TC397 |
| Base Configuration | 基础配置模板 | 选一个最接近你项目的模板,能省不少事 |
点击 Finish 后,工具会自动生成项目骨架。这个过程大概需要几十秒,取决于你的电脑性能。我记得第一次创建项目时,看到控制台刷刷刷地输出日志,还以为出错了。其实那是工具在自动解析模块依赖关系,正常现象。
No license available,说明你的许可证没配置好。检查一下环境变量 LM_LICENSE_FILE 或 VECTOR_LICENSE_FILE 是否指向了正确的 license 文件。我曾经因为换了台电脑,忘了配环境变量,卡在这里半小时。
3.3 导入现有项目
实际工作中,你更多时候是接手别人的项目,或者从版本控制库里拉代码。这时候就需要导入现有项目了。
操作路径:File → Import → General → Existing Projects into Workspace。
然后选择 Select root directory,指向你存放项目的文件夹。工具会自动扫描该目录下所有合法的项目,并列出在列表中。你勾选需要导入的项目,点击 Finish 即可。
这里有个坑:如果原项目是用不同版本的 DaVinci Config 创建的,导入后可能会提示版本不兼容。我的做法是:先查看原项目的 .project 文件,里面有个 version 字段。如果版本差太多,我会先用原版本打开,然后通过 File → Export → DaVinci Project 导出为兼容格式,再导入到新版本中。
3.4 项目结构解析
项目创建或导入完成后,咱们来看看它的「五脏六腑」。在 Project Explorer 中展开你的项目,你会看到类似这样的结构:
MyProject/
├── .project
├── .cproject
├── .settings/
├── config/
│ ├── Modules/
│ │ ├── Can.arxml
│ │ ├── Lin.arxml
│ │ ├── EcuM.arxml
│ │ └── ...
│ └── System/
│ ├── System.arxml
│ └── EcuConfiguration.arxml
├── generated/
│ ├── src/
│ └── include/
├── scripts/
│ └── generate.py
└── doc/
└── readme.txt
我来逐个解释一下:
- .project 和 .cproject:Eclipse 的项目描述文件,记录了项目名称、构建器、环境等信息。一般不需要手动修改。
- .settings/:存放项目的个性化设置,比如代码风格、编译器选项等。
- config/Modules/:这是核心目录,每个模块对应一个
.arxml文件。比如Can.arxml里存了 CAN 模块的所有配置参数。你双击它,就会打开对应的模块配置编辑器。 - config/System/:系统级别的配置,比如 ECU 整体架构、通信矩阵等。这里的
System.arxml是全局配置的入口。 - generated/:代码生成目录。当你点击 Generate Code 后,工具会把配置转换成 C 代码,放在
src/和include/下。注意,这个目录每次生成都会被覆盖,所以不要手动修改里面的文件。 - scripts/:存放自定义脚本,比如批量生成、后处理等。我习惯在这里放一个
generate.py,一键触发代码生成和编译。 - doc/:项目文档,比如配置说明、变更记录等。这个目录不是必须的,但我建议你养成写文档的习惯。你想想看,三个月后你自己回头看这个项目,没有文档的话,你还能记得当初为什么这么配吗?
config/Modules/ 目录下,我习惯按模块类型建子文件夹,比如 Communication/、SystemServices/、Memory/ 等。这样项目大了之后,找文件会方便很多。工具本身不强制这种结构,但你可以通过 Properties → DaVinci → Module Paths 来配置自定义路径。
嗯,到这里,工作区和项目的基本操作就讲完了。下一章咱们会深入模块配置,真正开始「调参数」。记住,项目结构是骨架,配置是血肉。骨架搭好了,后面才不容易走形。