码迷,mamicode.com
首页 > 其他好文 > 详细

教大家如何创建GD32工程模板

时间:2020-07-09 15:10:23      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:msi   程序代码   div   start   创建工程   pac   startup   搭建   int   

简介

本文以Keil 5.24a为开发环境为例搭建GD32F130F8P6工程。如果你使用的芯片不是GD32F130F8P6,也没关系,本文介绍的方法比较通用,可以举一反三。

准备工作

一、下载安装Keil 5.24a
二、下载GD32F1x0的标准外设固件库(例如GD32F1x0_Firmware_Library_v3.1.0)
三、下载GD32F130的Keil pack文件(例如GigaDevice.GD32F1x0_DFP.3.1.0.pack),并安装

 

创建工程模板目录

①创建如下目录结构(可以根据个人习惯自己调整)
GD32F1x0_Proj_Template
  |--App              #应用程序代码,以main.c为主
  |--CMSIS            #CMSIS层代码
  |--StdPeriphLib     #标准外设驱动库代码
  |--Hardware         #开发项目中的硬件驱动代码,与实际开发相关
  |--Utilities        #开发项目中使用的工具代码,例如串口驱动代码,I2C驱动代码等

 

②把固件库【GD32F1x0_Firmware_Library_v3.1.0\Examples\GPIO\Running_led】下的
  • gd32f1x0_it.c
  • gd32f1x0_it.h
  • gd32f1x0_libopt.h
  • main.c
拷贝到工程模板的App目录下。修改main.c为最简洁状态(如下)。在gd32f1x0_it.c中删除最开始的#include "systick.h",屏蔽SysTick_Handler函数。
#include "gd32f1x0.h"
#include <stdio.h>

int main(void)
{
    while(1)
    {
        
    }//main loop
}

 

③把固件库【GD32F1x0_Firmware_Library_v3.1.0\Firmware\CMSIS】下的
  • gd32f1x0.h
  • startup_gd32f1x0.s(ARM目录下的版本,因为用的是Keil编译器而非IAR)
  • system_gd32f1x0.c
  • system_gd32f1x0.h
拷贝到工程模板的CMSIS目录下。还有一个core_cm3.h没有拷贝,因为GD32F1x0的固件库中使用的core_cm3.h版本太旧(2014年编写的),会导致在Keil524a下编译错误(因为缺少相关头文件:core_cmInstr.h等),所以我们到Keil524a的安装目录下去拷。进入到{Keil安装目录}\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include目录下,拷贝
  • core_cm3.h
  • cmsis_compiler.h
  • cmsis_armcc.h
到工程模板的CMSIS目录下。提示:core_cm3.h依赖cmsis_compiler.h文件,而cmsis_compiler.h文件又依赖cmsis_armcc.h文件,所以需要拷这3个文件。
 
④把固件库【GD32F1x0_Firmware_Library_v3.1.0\Firmware\GD32F1x0_standard_peripheral】下的Include和Source文件拷贝到工程模板的StdPeriphLib目录下。
 
⑤由于Hardware和Utilities与实际开发相关,所以构建模版的时候不需要放文件进去。

根据已有的模板创建Keil工程

上面创建好的工程模板GD32F1x0_Proj_Template是可以重复使用的,这样就可以大大提高开发效率。
①将上面创建好的工程模板GD32F1x0_Proj_Template拷贝到自己的工作目录下,例如 【D:\GD32\workspace】,重命名为自己想要的名称,例如led_test。
技术图片

 

②打开Keil524a,【New uVision Project】,选择上面的led_test目录,将工程命名为led_test,保存。
接下来选择芯片型号,以GD32F130F8P6为例:
技术图片

 ③点击Cancel

 技术图片

 
 ④创建分组,然后添加代码源文件到分组中

注意:添加到分组中的为源文件,例如c文件,cpp文件,.s汇编文件等。不添加的文件不会参与编译。

技术图片

 

⑤指定编译工程所需头文件的目录(include path)
所有需要用到的头文件必须指定其目录,这样编译器才能知道去哪里找到这些头文件。如果没指定就会编译报错。
技术图片

 

 

⑥最后,勾选Create HEX,编译。
技术图片

 

 需要定义这些宏吗?

比较老的教程说要手动定义宏:GD32F1x0、 GD32F130_150、 USE_STDPERIPH_DRIVER等。实际上对于新版的Keil5来说这是没必要的。
我们可以发Keil自动在编译器的命令参数上添加了对这些宏的定义,这正是GD32提供的芯片的pack文件起到的效果,pack文件里面对每个芯片需要定义哪些基本的宏都做了默认的处理。
技术图片

 

 

 

 

 

教大家如何创建GD32工程模板

标签:msi   程序代码   div   start   创建工程   pac   startup   搭建   int   

原文地址:https://www.cnblogs.com/lulipro/p/13273367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!