2、工作空间与项目:创建工作空间、导入示例工程、工程结构解析
好,咱们正式开始动手了。
这一章,我带你走一遍 EB tresos 的工程创建流程。说白了,就是先搭个窝,再把项目放进去,最后看看这个窝里到底藏了些什么。
我个人习惯,拿到一个新工具,第一件事不是急着点“新建”,而是先把工作空间理清楚。你想想看,如果连文件放哪儿都乱糟糟的,后面调试起来得多头疼。
2.1 创建工作空间
工作空间(Workspace)是什么?
它就是 EB tresos 用来存放你所有项目配置、临时文件、编译中间产物的一个根目录。你可以理解成你的“项目大本营”。
创建步骤:
- 启动 EB tresos Studio。第一次打开,它会弹出一个对话框让你选工作空间路径。
- 点击 Browse,选一个你喜欢的目录。我建议不要用中文路径,也不要有空格。比如:
D:\AUTOSAR_Workspace。 - 勾选 Use this as the default and do not ask again,省得每次启动都弹窗。
- 点击 Launch,进入主界面。
我的小习惯: 我会在 D 盘建一个
AUTOSAR_Projects 文件夹,里面按项目名再分子文件夹。比如 D:\AUTOSAR_Projects\Project_A\Workspace。这样不同项目之间不会互相干扰。
嗯,这里要注意:工作空间路径一旦确定,后面所有工程都会默认存到这里。如果你想换地方,可以在菜单栏 File → Switch Workspace 里切换。
2.2 导入示例工程
EB tresos 自带了一些示例工程,方便我们快速上手。我个人觉得,这是学习工具最好的方式——先跑通一个现成的,再动手改。
导入步骤:
- 在菜单栏点击 File → Import。
- 在弹出的窗口里,选择 General → Existing Projects into Workspace,然后点 Next。
- 在 Select root directory 旁边点 Browse,找到 EB tresos 安装目录下的
examples文件夹。通常路径是:C:\EB\tresos\Studio_x.x\examples。 - 你会看到一堆示例工程,比如
Demo_Can、Demo_Lin等。选一个你感兴趣的,比如Demo_Can。 - 勾选 Copy projects into workspace。这一步很重要!如果不勾,它只是引用原路径,你改了会影响到原始示例。
- 点击 Finish,工程就导入进来了。
我曾经踩过的坑: 有一次我忘了勾选“Copy projects into workspace”,结果改了半天配置,一重启工程全乱了。因为原始示例文件被我改得面目全非,又没法恢复。从那以后,我每次导入都老老实实勾上。
导入成功后,你会在左侧的 Project Explorer 里看到这个工程。展开它,就能看到一堆文件夹和配置文件。
2.3 工程结构解析
好,工程进来了。咱们来看看它到底长什么样。
一个典型的 EB tresos 工程,结构大致如下:
| 文件夹/文件 | 作用 |
|---|---|
.project |
Eclipse 项目描述文件,记录项目名称、构建器等信息。一般不用手动改。 |
.cproject |
C/C++ 项目配置,包含编译选项、路径等。EB tresos 用它来管理代码生成。 |
configuration/ |
核心配置文件夹。里面存放了所有 ECU 配置的 .arxml 文件。 |
generated/ |
代码生成输出目录。EB tresos 根据配置生成的 .c 和 .h 文件都在这里。 |
modules/ |
模块定义文件夹。每个 AUTOSAR 模块(比如 Can、Lin、EcuM)都有自己的子文件夹。 |
Makefile |
编译脚本。EB tresos 支持基于 Makefile 的构建系统。 |
咱们重点看看 configuration/ 文件夹。这里面通常有:
- System:系统级配置,比如 ECU 实例、通信矩阵等。
- Ecu:ECU 级配置,比如 EcuM、BswM 等模块的参数。
- Bsw:基础软件模块配置,比如 Can、Lin、Dio、Pwm 等。
你双击任意一个 .arxml 文件,EB tresos 会打开一个图形化的配置编辑器。嗯,这才是我们真正干活的地方。
核心要点:
- 工作空间是项目的容器,一个工作空间可以放多个工程。
- 导入示例工程时,记得勾选“Copy projects into workspace”。
- 工程结构里,
configuration/是配置的核心,generated/是代码生成的输出。
我个人觉得,理解工程结构比学会点按钮更重要。你想想看,如果连文件放哪儿都不知道,出了问题怎么排查?
好,这一章就到这里。下一章,咱们开始真正动手配置一个模块——我会带你从零开始配置一个 CAN 模块,看看那些参数到底是什么意思。
课后小练习: 试着导入
Demo_Lin 示例工程,然后对比一下它的 configuration/ 文件夹和 Demo_Can 有什么不同。你会发现,不同通信协议对应的模块配置差异还挺大的。
公众号:蓝海资料掘金营,微信deep3321