3、工作区与项目管理:工作区概念、创建新项目、导入现有项目、项目结构解析、项目配置管理
好,咱们进入第三章。这一章聊的是工作区和项目管理。说实话,这部分内容看起来简单,但很多新手甚至老手都在这上面栽过跟头。我自己就见过有人因为工作区路径搞错,白白浪费了一整天。
3.1 工作区概念
工作区(Workspace),说白了就是 EB tresos 用来存放你所有项目的一个“大本营”。你想想看,你电脑上那么多项目,总得有个地方统一管理吧?工作区就是干这个的。
我个人习惯把工作区放在一个专门的目录下,比如 D:\EB_Workspace。为什么?因为默认路径经常在 C 盘,万一系统重装,项目就全没了。嗯,这里要注意,工作区路径里不要有中文和空格,否则编译时可能会报一些莫名其妙的错误。
3.2 创建新项目
创建新项目其实很简单,但有几个关键点你得留意。
在 EB tresos 里,点击 File → New → Project,然后会弹出一个向导。你需要填几个东西:
- Project Name:项目名,建议用英文,比如
BCM_Project - Location:项目存放位置,默认在工作区里
- Configuration:选择你用的芯片型号和基础软件栈
这里有个小技巧:创建项目时,EB tresos 会让你选一个“模板”。我建议你选一个跟你的硬件平台最接近的模板,这样能省掉很多配置工作。我在项目中遇到过有人选了通用模板,结果后面光配置 MCU 就花了三天。
Project → Properties 里的路径设置。确保所有引用路径都是绝对路径或者相对路径,别混用。混用的话,项目换台电脑就废了。
3.3 导入现有项目
导入项目,这个场景很常见。比如同事给你一个项目包,或者你从版本控制库里拉下来一个项目。
操作路径是 File → Import → General → Existing Projects into Workspace。然后选择项目所在的根目录,EB tresos 会自动识别出项目。
但这里有个坑:导入时,EB tresos 默认会勾选“Copy projects into workspace”。如果你只是临时看看,别勾这个。否则它会复制一份到你的工作区,你改的东西不会同步回原项目。我曾经因为这个,把同事的代码改乱了,差点被骂死。
- 如果项目是只读的,勾选“Copy”
- 如果项目需要多人协作,不勾选“Copy”,直接引用原路径
3.4 项目结构解析
创建好项目后,你会看到一堆文件夹。别慌,我来给你拆解一下。
| 文件夹/文件 | 作用 |
|---|---|
src/ |
存放生成的代码和用户代码 |
config/ |
存放 ARXML 配置文件,这是核心 |
include/ |
头文件目录 |
output/ |
编译输出,比如 .elf、.hex 文件 |
.project |
Eclipse 项目描述文件,别手动改 |
.cproject |
C/C++ 项目配置,也别动 |
你想想看,这些文件夹里哪个最重要?我个人觉得是 config/。因为所有 Autosar 模块的配置都在这里。你改一个参数,生成的代码就会变。所以,配置管理其实就是管好这个文件夹。
3.5 项目配置管理
配置管理,说白了就是怎么让你的项目在不同人、不同电脑上保持一致。
EB tresos 提供了几种方式:
- 手动导出配置:右键项目 → Export → ARXML,把配置导出成文件
- 使用版本控制:把整个项目丢进 Git 或 SVN
- 使用工作区快照:保存整个工作区的状态
我个人强烈推荐用 Git。为什么呢?因为你可以看到每次改了什么。有一次客户说“上次的版本还能用,这次的不行了”,我直接 git diff 一看,发现是某个模块的周期配置从 10ms 改成了 1ms。嗯,这种问题,没有版本控制你根本查不出来。
output/ 和 build/ 目录提交到版本控制。这些是编译产物,每次编译都会变。你只需要提交 config/、src/ 和 .project 文件就够了。
另外,配置管理还有一个容易被忽略的点:模块版本一致性。比如你用的是 EB tresos 23.0,同事用的是 22.0,那导出的 ARXML 可能不兼容。我建议团队统一版本,或者在项目根目录放一个 README.md,写明工具版本和依赖。
v1.0_before_CanIf_change。这样万一改坏了,回退也方便。我吃过这个亏,所以现在养成了习惯。
好了,这一章的内容就这些。工作区和项目管理,看似基础,但做好了能省很多事。下一章我们会聊模块配置,那才是真正烧脑的地方。