zoukankan      html  css  js  c++  java
  • 教大家如何创建GD32工程模板

    简介

    本文以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.0ExamplesGPIORunning_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.0FirmwareCMSIS】下的
    • 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安装目录}ARMPACKARMCMSIS5.0.1CMSISInclude目录下,拷贝
    • 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.0FirmwareGD32F1x0_standard_peripheral】下的Include和Source文件拷贝到工程模板的StdPeriphLib目录下。
     
    ⑤由于Hardware和Utilities与实际开发相关,所以构建模版的时候不需要放文件进去。

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

    上面创建好的工程模板GD32F1x0_Proj_Template是可以重复使用的,这样就可以大大提高开发效率。
    ①将上面创建好的工程模板GD32F1x0_Proj_Template拷贝到自己的工作目录下,例如 【D:GD32workspace】,重命名为自己想要的名称,例如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文件里面对每个芯片需要定义哪些基本的宏都做了默认的处理。
     
  • 相关阅读:
    JavaScript——面向对象的程序设计——创建对象与继承
    JavaScript 引用类型
    JavaScript 变量、作用域和内存问题
    JavaScript基本概念——操作符
    JavaScript基本概念
    在HTML中使用JavaScript
    JavaScript简介
    记录前端遇到的坑
    第八次作业
    电脑上下载b站视频到本地
  • 原文地址:https://www.cnblogs.com/lulipro/p/13273367.html
Copyright © 2011-2022 走看看