2、工作空间与项目:创建工作空间、导入示例工程、项目结构解析、构建第一个工程
好,咱们正式开始动手了。
上一章我们把 EB tresos 装好了,环境也配通了。这一章,我们要真正创建一个工作空间,导入一个示例工程,然后把它跑起来。说白了,就是让工具先转起来,你心里有个底。
2.1 创建工作空间
工作空间是什么?你可以把它理解成一个「项目收纳盒」。EB tresos 的所有配置、代码、生成文件,都放在这个文件夹里。
我个人习惯,工作空间路径里不要有中文,不要有空格。为什么呢?因为 AUTOSAR 的底层工具链对路径编码很敏感,我曾经遇到过因为路径里带了个「项目」两个字,结果代码生成报错,查了半天才发现是路径问题。嗯,从那以后我就老实了。
创建步骤很简单:
- 打开 EB tresos Studio
- 菜单栏选 File → Switch Workspace → Other
- 在弹出的对话框里,点 Browse,选一个你喜欢的目录
- 点 OK,工具会自动重启
EB_Workspace 文件夹,里面按项目名再分子文件夹。比如 D:\EB_Workspace\DemoProject。这样多个项目互不干扰。
重启之后,你会看到一个空白的界面。别慌,这是正常的。接下来我们要往里塞东西了。
2.2 导入示例工程
EB tresos 安装包里自带了一些示例工程。这些例子是官方写的,配置完整,可以直接编译。我个人建议初学者先拿这些例子练手,别一上来就自己建工程——坑太多。
导入步骤:
- 菜单栏选 File → Import
- 在弹出的窗口里,展开 General,选 Existing Projects into Workspace
- 点 Next
- 在 Select root directory 那里,点 Browse
- 找到 EB tresos 安装目录下的
examples文件夹 - 你会看到几个示例工程,比如
Demo_MCAL、Demo_OS之类的 - 勾选你想导入的工程,点 Finish
导入完成后,左侧的 Project Explorer 里就会出现你的工程。双击展开,你会看到一堆文件夹和配置文件。别被吓到,我们接下来一个一个拆解。
2.3 项目结构解析
一个典型的 EB tresos 工程长这样:
Demo_MCAL/
├── .project
├── .cproject
├── .settings/
├── config/
│ ├── EcuC/
│ ├── Mcu/
│ ├── Port/
│ ├── Dio/
│ └── ...
├── generated/
│ ├── src/
│ └── include/
├── output/
└── Makefile
我来给你讲讲每个部分是干嘛的:
| 文件夹/文件 | 作用 |
|---|---|
.project / .cproject |
Eclipse 的项目配置文件。别手动改,容易崩。 |
.settings/ |
编辑器偏好设置,比如缩进、编码格式。 |
config/ |
核心目录。里面按模块分文件夹,每个模块的配置都在这里。 |
generated/ |
代码生成器输出的 C 代码和头文件。你一般不需要手动改这里。 |
output/ |
编译产物,比如 .o 文件、.elf 文件。 |
Makefile |
编译脚本。EB tresos 用 Makefile 来驱动编译器。 |
你想想看,config/ 文件夹里每个子文件夹对应一个 AUTOSAR 模块。比如 Mcu/ 管时钟和复位,Port/ 管引脚配置,Dio/ 管数字输入输出。每个模块下都有一个 .arxml 文件,那是 AUTOSAR 的标准化配置文件。
generated/ 里的代码,结果下次重新生成时,我的修改全被覆盖了。记住,generated/ 是只读的,要改配置去 config/ 里改。
2.4 构建第一个工程
好,现在我们来编译它。
构建之前,先确认一下你的编译器路径配好了没。上一章我们配了环境变量,但 EB tresos 还需要知道编译器具体在哪。
检查步骤:
- 菜单栏选 Window → Preferences
- 展开 C/C++ → Build → Environment
- 确保
CC、CXX、AR这些变量指向了你的编译器路径
确认无误后,开始构建:
- 在 Project Explorer 里右键点击你的工程
- 选 Build Project
- 看下方的 Console 窗口,会滚动输出编译信息
如果一切顺利,你会看到类似这样的输出:
**** Build of configuration Default for project Demo_MCAL ****
make all
Compiling Mcu.c...
Compiling Port.c...
Compiling Dio.c...
...
Linking...
Build Finished. 0 errors, 0 warnings.
看到 0 errors, 0 warnings 的时候,恭喜你,第一个工程构建成功了!
Console 里的错误信息,如果是 command not found,那就是路径问题。如果是语法错误,那可能是示例工程版本和你的工具版本不匹配。
构建成功后,去 output/ 文件夹看看。里面应该有一个 .elf 文件,那就是你的可执行文件。虽然现在它还不能跑在真正的芯片上(因为没有烧录),但至少证明你的工具链是通的。
嗯,到这里,你已经完成了 EB tresos 开发的第一个闭环:创建空间 → 导入工程 → 理解结构 → 构建成功。接下来,我们就可以深入每个模块的配置了。
下一章,我会带你手把手配置第一个 MCAL 模块——GPIO。到时候你会看到,配置界面其实没那么可怕。