在创建一个GD32的Keil工程时,为了保持工程文件组织的清晰性和易于维护,通常会按以下结构来创建工程文件夹。这个结构适用于任何GD32系列的嵌入式开发,并包含必备的文件和推荐的文件夹分类:
1. 文件夹树参考
GD32_Project/
│
├── Application/ # 应用代码
│ ├── main.c # 主程序入口
│ ├── app.c # 应用程序相关逻辑
│ └── app.h # 应用程序头文件
│
├── Drivers/ # 驱动文件
│ ├── CMSIS/ # CMSIS库文件(包含芯片相关的启动代码)
│ │ ├── core_cm4.h # 例如:Cortex-M4的核心文件
│ │ ├── system_gd32f4xx.c # 系统初始化文件
│ │ └── startup_gd32f4xx.s # 启动汇编文件
│ ├── Device/ # 设备驱动库
│ │ └── gd32f4xx_*.c # 设备相关的源文件,如GPIO、USART等
│ └── Include/ # 驱动库头文件
│ ├── gd32f4xx.h # 芯片头文件
│ ├── gd32f4xx_usart.h # 例如:USART驱动头文件
│ └── ... # 其他设备驱动头文件
│
├── RTE/ # Runtime Environment (Keil自动生成)
│ └── RTE_Components.h # RTE配置文件
│
├── Keil/ # Keil相关的工程文件
│ ├── project.uvprojx # Keil工程文件
│ ├── project.uvoptx # Keil工程的用户选项配置
│ └── project.sct # 链接脚本文件(如果需要手动配置内存映射)
│
├── Middlewares/ # 中间件
│ └── FreeRTOS/ # 例如:FreeRTOS或其他RTOS的源码及配置
│
├── Libraries/ # 静态库或第三方库
│ ├── bsp.c # 板级支持包相关的代码
│ ├── bsp.h
│ └── other_lib.c # 其他静态库
│
└── Build/ # 编译输出文件
├── Objects/ # 编译过程中生成的对象文件 (.o)
└── Output/ # 最终生成的hex、bin文件等
2. 方法
我采用的方法是直接从 GD32F4xx_Firmware_Library_V3.2.0 进行更改,保留其中的 template魔改成一个可用的工程
原版的 firmware lib 包含了一堆用不着的东西,需要做裁剪
2.1. 通过代码更改 keil 工程文件
使用 vscode 直接打开GD32F4xx_Firmware_Library_V3.2.0\Template\Keil_project中的Project.uvprojxkeil 工程文件夹
keil 的工程文件夹本质上是一个 xml 配置文件,所以可以使用 vscode进行快速编辑,相比 Keil 的 GUI 更快

2.1.1. Groups
- 💡keil 中的管理包含文件可以直接在 xml 中更改

- ✅直接搜索对应的 groups 即可批量快速更改

主要是可以更改 groups 包含的文件对应的地址,以及包含的文件
2.1.2. 头文件地址
- 💡头文件地址也可以在 xml 中快速更改,相比使用 keil 的 GUI 更改,速度更快
- GUI 中更改在魔术棒 -
C/C++中

- XML 更改直接搜索
IncludePath,更改其中的头文件包含地址
<IncludePath>..\..\Firmware\CMSIS\GD\GD32F4xx\Include;..\..\Utilities;..\..\Firmware\CMSIS;..\..\Template;..\..\Firmware\CMSIS\GD\GD32F4xx\Source\ARM;..\..\Firmware\GD32F4xx_standard_peripheral\Include</IncludePath>
359

被折叠的 条评论
为什么被折叠?



