4. 创建第一个DAVE项目:新建XMC项目向导、选择目标芯片、项目模板选择、项目结构解析
本章是DAVE工具链实战的起点。你将通过新建项目向导,完成从芯片选型、模板选择到项目结构解析的完整流程。掌握这一基础操作后,后续所有外设驱动开发都将基于此项目模板展开。
4.1 新建XMC项目向导
启动DAVE后,通过以下步骤进入新建项目向导:
- 点击菜单栏 File → New → DAVE Project,或使用快捷键 Alt + Shift + N。
- 在弹出的对话框中选择 XMC Project,点击 Next。
- 输入项目名称(如
XMC4700_First_Project),选择工作空间存储路径。 - 点击 Next 进入芯片与模板选择界面。
提示:项目名称建议使用“芯片型号_功能描述”的命名规则,便于后期多项目管理。DAVE不支持中文项目名,请使用英文、数字和下划线。
4.2 选择目标芯片
在芯片选择界面,DAVE提供了按系列、封装、Flash大小等多维度筛选功能。XMC系列主要分为以下子系列:
| 系列 | 内核 | 典型应用 | 最大Flash |
|---|---|---|---|
| XMC1000 | ARM Cortex-M0 | 低成本传感器、电机控制 | 64 KB |
| XMC4000 | ARM Cortex-M4 | 工业自动化、逆变器 | 2 MB |
| XMC7000 | ARM Cortex-M7 | 高性能伺服驱动、边缘计算 | 8 MB |
选择步骤:
- 在 Device Selection 区域,展开 XMC4000 系列。
- 找到 XMC4700-F144x2048(2048 KB Flash,144引脚封装)。
- 双击或选中后点击 Next。
注意:芯片选择后不可在项目中直接更改。如需更换芯片,必须新建项目。建议在项目初期确认好目标芯片型号,避免后期迁移成本。
4.3 项目模板选择
DAVE提供三种项目模板,分别对应不同的开发模式:
| 模板类型 | 描述 | 适用场景 |
|---|---|---|
| Empty Application | 仅包含最小启动代码和链接脚本,无外设配置 | 从零开始,手动配置所有外设 |
| DAVE APPS | 包含DAVE APPS图形化配置框架,自动生成初始化代码 | 快速原型开发,推荐初学者使用 |
| FreeRTOS | 集成FreeRTOS实时操作系统内核 | 多任务、实时性要求高的项目 |
本课程选择 DAVE APPS 模板,因为它能最大化发挥DAVE工具链的图形化配置优势,降低外设驱动开发门槛。
选择操作:在 Project Template 区域勾选 DAVE APPS,点击 Finish。DAVE将自动生成项目骨架并打开DAVE APPS透视图。
4.4 项目结构解析
项目创建完成后,在 Project Explorer 中可以看到以下目录结构。理解每个文件夹的用途是高效开发的基础。
4.5 关键文件与用户代码入口
在DAVE APPS项目中,用户代码的入口和生成代码的调用关系如下:
- main.c:位于项目根目录,是用户主函数的入口。DAVE APPS生成的初始化函数在此调用。
- DAVE_Init():在
Dave/Generated/src/DAVE_Init.c中定义,负责初始化所有已配置的外设。用户必须在main()开头调用此函数。 - 中断处理函数:在
Startup/startup_XMC4700.s中声明弱定义,用户可在任意.c文件中重定义。
/* main.c 典型结构 */
#include "DAVE.h"
int main(void)
{
// 1. 初始化所有DAVE APPS配置的外设
DAVE_Init();
// 2. 用户应用程序主循环
while(1)
{
// 用户代码
}
return 0;
}
最佳实践:不要修改
Dave/Generated 目录下的任何文件。如需自定义外设行为,应通过DAVE APPS图形界面重新配置,或在外设的回调函数中编写用户逻辑。
4.6 项目编译与验证
完成项目创建后,建议立即进行一次编译,验证工具链配置是否正确:
- 右键项目名称,选择 Build Project(或按 Ctrl + B)。
- 观察 Console 窗口的输出,确认编译无错误(Error)和警告(Warning)。
- 编译成功后,Debug 目录下会生成
.elf和.hex文件。
常见问题:如果编译报错“undefined reference to `DAVE_Init'”,说明项目未正确关联DAVE APPS生成代码。请检查
Dave/Generated 目录是否存在,若不存在,重新执行 Project → Clean 并勾选自动生成选项。