2、工作空间与项目:创建工作空间、导入示例工程、工程结构解析

好,咱们正式开始动手了。

这一章,我带你走一遍 EB tresos 的工程创建流程。说白了,就是先搭个窝,再把项目放进去,最后看看这个窝里到底藏了些什么。

我个人习惯,拿到一个新工具,第一件事不是急着点“新建”,而是先把工作空间理清楚。你想想看,如果连文件放哪儿都乱糟糟的,后面调试起来得多头疼。

2.1 创建工作空间

工作空间(Workspace)是什么?

它就是 EB tresos 用来存放你所有项目配置、临时文件、编译中间产物的一个根目录。你可以理解成你的“项目大本营”。

创建步骤:

  1. 启动 EB tresos Studio。第一次打开,它会弹出一个对话框让你选工作空间路径。
  2. 点击 Browse,选一个你喜欢的目录。我建议不要用中文路径,也不要有空格。比如:D:\AUTOSAR_Workspace
  3. 勾选 Use this as the default and do not ask again,省得每次启动都弹窗。
  4. 点击 Launch,进入主界面。
我的小习惯: 我会在 D 盘建一个 AUTOSAR_Projects 文件夹,里面按项目名再分子文件夹。比如 D:\AUTOSAR_Projects\Project_A\Workspace。这样不同项目之间不会互相干扰。

嗯,这里要注意:工作空间路径一旦确定,后面所有工程都会默认存到这里。如果你想换地方,可以在菜单栏 File → Switch Workspace 里切换。

2.2 导入示例工程

EB tresos 自带了一些示例工程,方便我们快速上手。我个人觉得,这是学习工具最好的方式——先跑通一个现成的,再动手改。

导入步骤:

  1. 在菜单栏点击 File → Import
  2. 在弹出的窗口里,选择 General → Existing Projects into Workspace,然后点 Next
  3. Select root directory 旁边点 Browse,找到 EB tresos 安装目录下的 examples 文件夹。通常路径是:C:\EB\tresos\Studio_x.x\examples
  4. 你会看到一堆示例工程,比如 Demo_CanDemo_Lin 等。选一个你感兴趣的,比如 Demo_Can
  5. 勾选 Copy projects into workspace。这一步很重要!如果不勾,它只是引用原路径,你改了会影响到原始示例。
  6. 点击 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