GD32F4开发 -- 工程模板创建

参看:STM32开发 – 开发环境搭建
参看:STM32F4 HAL库开发 – 新建基于 HAL 库的工程模板
之前已经有创建STM32标准库和HAL库的经验了。这次安装一下GD32F4试一下,有何区别。

一、器件包安装

离线安装:
直接从官网下载器件包。
下载链接:GD32F4xx AddOn
选择 GD32F4XX AddOn
在这里插入图片描述
下载完成之后进行解压,有一个器件包,双击这个进行安装。
在这里插入图片描述

二、标准固件库获取

标准固件库获取我们可以从官网进行下载。
下载链接:GD32F4xx Firmware Library
找到 GD32F4xx Firmware Library 这个压缩包:
在这里插入图片描述
下载完成后,进行解压。

三、标准固件库目录介绍

打开下载的 GD32F4xx 标准固件库,里面的目录如下图:
在这里插入图片描述
Examples:此文件夹包含的是官方编写的示例代码,涉及芯片的大部分功能。
Firmware:此文件夹里面有 3 个文件夹,包含 CMSIS,标准外设库和 USB 库,存放官方封装的一些库函数,方便用户开发使用。
Template:此文件夹是工程模板文件夹,里面包含 IAR 和 Keil 的工程示例。
Utilities:此文件夹包含一些第三方组件和 GD32 配套的开发板文件。

1、Examples

打开 Examples 文件夹之后,内容如图
在这里插入图片描述
从上图可以看出,这个文件夹是各种外设资源的例程,每个文件夹里面还有更为详细的功能示例。

2、Firmware

打开 Firmware 文件夹之后,内容如图:
在这里插入图片描述
CMSIS:微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard) 是Cortex-M 处理器系列的与供应商无关的硬件抽象层。
GD32F4xx_standard_peripheral: 从名称也可以看出,这个是 GD32F4 系列的标准外设库,存放一些封装了寄存器的库函数,我们后面编程也是依赖于这个库进行开发。
GD32F4xx_usb_library: 这个是 GD32F4 系列的 USB 库函数,可以帮助我们开发一些关于 USB 的应用,如鼠标,键盘,CDC 串口,模拟 U 盘等等。

CMSIS 目录:

各个文件的相关介绍如
在这里插入图片描述

GD32F4xx_standard_peripheral 目录

这个里面都是一些外设库文件,覆盖 GD32F4 芯片的绝大部分功能,包含 ADC,CAN,SDIO,SPI 等等。

GD32F4xx_usb_library 目录:

这个里面的内容很多,有音频类,CDC 类,DFU 类,HID 类等。

3、Template

各个文件的相关介绍
在这里插入图片描述

4、Utilities

这个是第三方组件文件夹,我们不必太关注。

四、创建固件库模板

1、前提条件

  • 已经安装好 Keil 软件
  • 已经安装好 GD32F4xx 的 Pack 包
  • 已经下载好 GD32F4xx 标准固件库

2、新建工程目录

新建文件夹,命令为 GD32F407_OS_Temp,用来保存新创建的工程
然后在该文件夹下新建 6 个文件夹,分别命名为:
APP: 放应用层文件。
Libraries:放 ARM 内核文件,标准外设库文件等。
Project:放工程文件,编译文件等。
BSP:放开发板的硬件驱动文件。
User:放 main 函数,gd32f4xx_it 文件,systick 文件。
Doc: 放 readme.txt 文件,工程说明文件。

在这里插入图片描述

3、拷贝工程文件

找到我们的固件库的下载目录,如下将Firmware 文件夹下的内容CMSIS、GD32F4xx_standard_peripheral拷贝到新建工程的Libraries文件夹下,并将GD32F4xx_standard_peripheral重命名为FWLib。
在这里插入图片描述
将固件库Template 文件夹的除工程文件夹、readme.txt 文件不拷贝之外全拷贝到新建的
User 文件夹下。
在这里插入图片描述
在 Doc 文件夹下新建一个 readme.txt 文件
在这里插入图片描述

4、新建 Keil 工程

打开 keil,点击最上面的 Project 选项卡,选择 New uVision Project 选项新建一个工程。
在这里插入图片描述
选择保存路径为我们刚才创建的文件夹下的 Project,文件名为 GD32F407demo,然后点击保存。
在这里插入图片描述

5、器件选择

点击保存之后,弹出工程配置窗口,选择所需芯片,这里依次选择
GigaDevice->GD32F4xx Series->GD32F407->GD32F407RK,然后点击 ok
在这里插入图片描述

6、组件选择

确定所需芯片之后,弹出 RTE 的环境配置对话框,选择工程所需的组件,不用配置点击取消。
在这里插入图片描述

7、创建分组并添加源文件

这时我们的工程已经创建完成,但是可以看到工程里面还没有文件,我们可以创建一些分组和添加一些文件。我们打开管理工程项去创建分组和添加文件。
在这里插入图片描述
输入Project Targets: GD32F407
新建分组,点击新建按钮,然后输入要新建的分组名
现在需要创建User、FWlib、Doc、CMSIS、APP、BSP 等分组
在这里插入图片描述

User

添加以下文件。

文件在新建工程的 User 目录下
在这里插入图片描述

FWlib

添加标准外设库文件,需要用到的时候再添加,也可以全部添加(编译速度慢)。必须添加的是 rcu 这个外设库,这个是和时钟相关的,另外这里还需要添加一个 gpio 的外设库文件。

文件在新建工程的 Libraries\FWLib\Source目录下
在这里插入图片描述

CMSIS

添加 startup_gd32f450_470.s 启动文件和和 system_gd32f4xx.c 文件。
注意:添加启动文件需要勾选文件类型为All files(*.),因为启动文件是以.s 结尾。

文件在新建工程的 CMSIS\GD\GD32F4xx\Source\ARM和CMSIS\GD\GD32F4xx\Source目录下。
在这里插入图片描述

Doc

然后添加 readme.txt 文件。

文件在新建工程的 Doc 目录下。
在这里插入图片描述

APP和BSP

暂时不添加任何文件。

新建完成点击 ok 之后,工程目录如下:
在这里插入图片描述

8、添加宏和头文件路径

添加宏是为了去使能这个芯片的头文件,这个宏在 GD32f4xx.h 中有定义,添加头文件路径是为了使编译器能够去寻找到对应的头文件。

添加宏:

在 Define 下填写 USE_STDPERIPH_DRIVER,GD32F407
在这里插入图片描述

添加头文件路径:

点击 Include Paths 后面的三个小点
在这里插入图片描述
点击 New 按钮进行添加一条路径
在这里插入图片描述
依次选择:
新建工程的 User 目录
新建工程的 Libraries\FWLib\Include 目录
新建工程的 Libraries\CMSIS 目录
新建工程的 Libraries\CMSIS\GD\GD32F4xx\Include 目录

9、配置工程

勾选使用 Use MicroLIB。

这是一个 Keil 自带的简易的库,一般在串口进行重定向的时候使用。
在这里插入图片描述

修改 ARM Compiler 版本

编辑器版本选择 5,默认使用 6,如果用 6 的话编译可能会有警告,可能是支持问题。
在这里插入图片描述

查看.elf文件,路径和名字

查看.elf文件,路径和名字
在这里插入图片描述

生成bin文件:
在这里插入图片描述
选中 Run #1,在后边的文本框中输入fromelf.exe --bin -o …\BIN\GD32F407demo.bin .\Objects\GD32F407demo.axf
注意: - 的中英文 和必须加 .

编译就可以生成bin文件了。
在这里插入图片描述

优化选择项

有Level0 - Level3四个选项。
初学者、在线调试建议使用Level0,也就是不优化,这样执行的效果才和代码一样。如果配置成Level3,在线调试可能有些地方优化而不能打断点。
在这里插入图片描述Level0 - Level3四个选项。

10、修改工程代码

打开 main.c 文件,删除一些不必要的代码,剩余部分如下:
在这里插入图片描述
打开 gd32f4xx_it.c 文件,拉到最后面,然后删掉 Systick_Handler 下面的代码。
在这里插入图片描述

11、编译

点击编译按钮进行编译。
在这里插入图片描述
可以看到 0 个错误,0 个警告,至此,工程模板创建完成。

示例工程:
链接:GD32F407_OS_Temp_20240913.rar
提取码:djse

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚优致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值