固件库文件结构
上一节我们安装部署了Keil5,也安装了GD32F10x系列的板极主持包,那么这一篇就可以开始对官方的固件库进行移植了,移植完我们才能很好的玩耍GD32的单片机。
打开我们之前解压好的固件库
里面有4个文件夹
“Example”文件夹里面存放的是每个外设的参考程序;“Firmware”文件夹里面存放的是固件库核心文件;“Template”文件夹里面存放的是官方的固件库移植示例;“Utilities”文件夹里面存放的是一些第三方固件驱动。
我们只需要使用“Firmware”和“Template”文件夹里面的文件即可。
新建项目
打开Keil5,点击上方“Project”,选择新建项目。
接着选择自己的单片机型号。
固件库文件移植
进入到项目的根目录,新建一个“Firmware”文件夹,将固件库“Firmware”文件夹内“CMSIS”和“GD32F10x_standard_peripheral”文件夹复制到里面。
将固件库“Template”文件夹内的“gd32f10x_it.c”、“gd32f10x_it.h”、“gd32f10x_libopt.h”文件复制到项目根目录的“Firmware”文件夹内。
移植好后的文件夹内容是这样的。
在根目录新建“User”文件夹,将固件库“Template”文件夹下的“main.c”、“main.h”文件复制到里面。
移植好后的文件夹内容是这样的。
Keil内配置
文件移植好后要进入到IDE内进行其他的配置。
首先把所有需要的文件导入到项目中。点击红框中的按钮,进入项目文件管理器;根据自己的需要新建并命名文件夹,可以参考我的项目文件结构。
“FW”文件夹放的是所有外设的驱动,将路径“.\Firmware\GD32F10x_standard_peripheral\Source”所有的文件添加进去;“CMSIS”文件夹放的是跟CMSIS规范相关的文件,将路径“.\Firmware\CMSIS\GD\GD32F10x\Source”下的“system_gd32f10x.c”文件添加进去;“StartUp”文件夹放的是单片机的启动文件,将路径“.\Firmware\CMSIS\GD\GD32F10x\Source\ARM”下的“startup_gd32f10x_md.s”文件添加进去;“User”文件夹放的是用户的文件,一般这里面的文件都是用户可修改的文件,将路径“.\Firmware”下的"gd32f10x_it.c"和路径“.\User”下的“main.c”、“main.h”文件复制进去。
导入好后的项目文件结构是这样的。
需要注意的是,启动文件并不是每个型号的单片机都添加“startup_gd32f10x_md.s”这个文件,需要根据自己使用的单片机型号所决定,我在官方的固件库中找不到说明,但是我们可以对比ST官方的说明。
简单翻译就是,如果使用的是低密度的单片机,闪存在64-128KB的用md后缀的启动文件;使用高密度的单片机,闪存在256-512KB的用hd后缀的启动文件;使用超高密度的单片机,闪存在512-1024KB的用xd后缀的启动文件;使用互联型单片机的用cl后缀的启动文件。
点击红框内按钮,进入项目设置。
“Target”标签页,右边选择对应的编译器,下面“Use MicroLIB”选项勾上,这样我们就能使用像stdio.h、stdlib.h这样的c语言库。
“C/C++”标签页,“Define”栏写上全局宏定义,下方“C99 Mode”打勾,“Include Paths”填写项目所用到的所有头文件的路径。
头文件路径参考
编译项目
接下来就可以对项目进行编译了,点击下方红色框内的按钮进行编译。
如果你看到下面的提示,说明成功编译了!
调试器配置
编译好项目后,我们需要配置调试器,这样我们才能把代码烧录进单片机中。点击下方红框内按钮,进入“Debug”标签页。
选择自己对应的调试器型号,点击“Settings”按钮。在“Debug”标签页选择时钟频率,一般肯定越高越好。如果你插入了调试器并接上开发板,这个页面会显示调试器和开发板的信息,因为我没插所以这里没有显示。
“Flash Download”标签页,勾选“Reset and Run”,这样程序下载后调试器会自动复位。
程序下载
配置好调试器后,点击红框内的按钮即可下载程序到单片机中。