2、工作空间与工程:创建工作空间、导入/导出工程、工程结构解析
好,咱们正式开始动手了。这一章我带你搞定 EB tresos 里最基础、也最绕不开的两个概念:工作空间和工程。
说实话,我刚接触 EB tresos 那会儿,也被这俩东西搞晕过。工作空间是啥?工程又是啥?为啥不能直接打开一个 .c 文件就开干?嗯,别急,咱们一步步来。
2.1 工作空间(Workspace)是个什么玩意儿?
你可以把工作空间理解成一个“项目收纳盒”。它本身不存代码,但它知道你的工程放在哪、你用了哪些配置、你上次打开了什么窗口。
我个人习惯是:一个产品平台建一个工作空间。比如我做某款车身控制器,所有相关的 AUTOSAR 工程都放在同一个工作空间里。这样切换工程时,配置环境不用重新折腾。
2.2 创建工作空间
操作其实很简单。启动 EB tresos 时,它会弹出一个对话框让你选工作空间路径。你点 Browse,选一个空文件夹,或者新建一个文件夹,然后点 Launch 就行。
如果你已经进了界面,想换个工作空间,可以这样:
- 菜单栏选 File → Switch Workspace
- 选择新的路径
- 点 OK,它会自动重启
为什么会自动重启?因为 EB tresos 要重新加载工作空间的元数据。说白了,就是让它“换个脑子”。
2.3 导入工程(Import Project)
工作空间建好了,接下来就是把工程弄进来。EB tresos 的工程通常是一个完整的文件夹,里面包含了 .epf 文件(工程文件)、配置描述文件(.arxml)、代码生成模板等等。
导入步骤:
- 右键点击 Project Explorer 的空白区域
- 选择 Import...
- 在弹出的窗口里,展开 General,选 Existing Projects into Workspace
- 点 Select root directory,找到你的工程文件夹
- 勾选你要导入的工程,点 Finish
嗯,这里要注意:EB tresos 的工程导入和 Eclipse 很像,但有个坑——它不会自动识别工程类型。如果你导入后看到工程图标上有个小红叉,别慌。多半是 工程配置文件(.project) 损坏了,或者路径引用不对。
2.4 导出工程(Export Project)
导出工程,说白了就是把你的劳动成果打包带走。EB tresos 没有一键导出为 .zip 的功能,但你可以手动操作:
- 在工程上右键 → Export... → General → File System
- 勾选你要导出的文件和文件夹
- 选择目标目录,点 Finish
我个人更推荐直接复制工程文件夹。因为 EB tresos 的工程本质上就是一堆文件,复制粘贴最保险。但记得把 .metadata 文件夹删掉——那是工作空间的缓存,换台机器就没用了。
2.5 工程结构解析
好,现在咱们来看看一个标准的 EB tresos 工程里到底装了些什么。你打开工程文件夹,会看到类似这样的结构:
MyProject/
├── .project # Eclipse 工程描述文件
├── .cproject # C/C++ 工程配置
├── .settings/ # 编辑器偏好设置
├── config/ # 配置描述文件(.arxml)
│ ├── EcuC.arxml
│ ├── Can.arxml
│ └── ...
├── generated/ # 代码生成输出目录
│ ├── src/
│ ├── include/
│ └── ...
├── templates/ # 代码生成模板(.ftl 文件)
├── scripts/ # 自定义脚本
└── output/ # 编译输出
咱们挑几个重点说说:
| 文件夹/文件 | 作用 | 我的经验 |
|---|---|---|
.project |
告诉 EB tresos 这是个工程 | 别手改它,容易崩 |
config/ |
存放所有 .arxml 配置 | 这是核心,丢了就得重配 |
generated/ |
代码生成器吐出来的代码 | 别手动改,下次生成会覆盖 |
templates/ |
控制代码生成模板 | 高级玩法,新手先别碰 |
你想想看,config/ 文件夹里的 .arxml 文件,其实就是 AUTOSAR 的“设计图纸”。你所有的 ECU 配置、通信矩阵、SWC 描述,全写在这里面。而 generated/ 里的代码,就是根据这些图纸自动生成的“施工文件”。
配置(.arxml)→ 生成(代码)→ 编译(.elf)
你大部分时间都在和 config/ 打交道。
2.6 工程与工作空间的关系
最后,我再用一句话总结一下两者的关系:
- 工作空间是“办公室”,它管理你所有的工程
- 工程是“办公桌”,每个桌上放着一套完整的配置和代码
你可以把多个工程放在同一个工作空间里,比如一个 Bootloader 工程、一个 App 工程。切换工程时,EB tresos 会保留每个工程的独立配置,互不干扰。
嗯,这一章的内容就到这。下一章咱们开始真正上手配置一个 ECU 工程,到时候你会用到今天学的这些知识。