【GD32F303开发之开发工具的安装与配置】

2023-11-14

GD32F303开发系列文章目录

第一章 GD32微控制器开发工具的安装与配置
第二章 GD32基准工程实验
第三章 GD32串口通信实验
第四章 GD32EXMC与LCD显示实验



前言

GD32拥有丰富的外设、强大的开发工具、易于上手的固件库,在32位微控制器选型中,GD32已经成为许多工程师的首选。而且经过8年的积累,GD32的各种开发资料都非常完善,这也降低了初学者的学习难度。因此,本文通过几个实例介绍GD32F303ZET6微控制器开发的过程。


一、GD32微控制器开发工具的安装与配置

自从GD32公司于2013年推出GD32系列微控制器至今,与GD32配套的开发工具有很多,如Keil公司的Keil、ARM公司的DS-5、Embest公司的EmbestIDE、IAR公司的EWARM等。目前国内使用较多的是EWARM和Keil。EWARM(Embedded Workbench for ARM)是IAR公司为ARM微处理器开发的一个集成开发环境(简称IAR EWARM)。与其他ARM开发环境相比较,IAR EWARM具有入门容易、使用方便和代码紧凑的特点。Keil是Keil公司开发的基于ARM内核的系列微控制器集成开发环境,它适合不同层次的开发者,包括专业的应用程序开发工程师和嵌入式软件开发入门者。Keil包含工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM内核的芯片,能帮助工程师按照计划完成项目。

1.安装Keil 5.30

双击运行MDK5.30.exe程序,在弹出的如下图所示的对话框中,单击Next按钮。
Keil 5.30安装步骤1
系统弹出如下图所示的对话框,勾选I agree to all the terms of the preceding License Agreement项,然后,单击Next按钮。
Keil 5.30安装步骤2
如下图所示,选择安装路径和包存放路径。然后,单击Next按钮。
Keil 5.30安装步骤3
随后,系统弹出如下图所示的对话框,在First Name、Last Name、Company Name和E-mail栏输入相应的信息,然后单击Next按钮。软件开始安装。
Keil 5.30安装步骤4
在软件安装过程中,系统会弹出如下图所示的对话框,勾选“始终信任来自"ARM Ltd"的软件(A)”项,然后单击“安装(I)”按钮。
Keil 5.30安装步骤5
软件安装完成后,系统弹出如下图所示的对话框,取消勾选Show Release Notes项,然后单击Finish按钮。
Keil 5.30安装步骤6
在如下图所示的对话框中,取消勾选Show this dialog at startup项,然后单击OK按钮,最后关闭Pack Installer对话框。
Keil 5.30安装步骤7
双击运行GigaDevice.GD32F30x_DFP.2.1.0.pack固件库包,打开如下图所示的对话框,直接单击Next按钮,固件库包即开始安装。
安装固件库包步骤1
固件库包安装完成后,弹出如下图所示的对话框,单击Finish按钮。
安装固件库包步骤2

2.设置Keil 5.30

Keil 5.30安装完成后,需要对Keil软件进行标准化设置,首先在“开始”菜单找到并单击Keil μVision5,软件启动之后,在弹出的如下图所示对话框中单击“是”按钮。
设置Keil 5.30步骤1
然后在打开的Keil μVision5软件界面中,执行菜单栏命令Edit→Configuration,如下图所示。
设置Keil 5.30步骤2
系统弹出如下图所示的Configuration对话框,在Editor标签页的Encoding栏选择Chinese GB2312(Simplified)。将编码格式改为Chinese GB2312(Simplified)可以防止代码文件中输入的中文乱码现象;在C/C++ Files栏勾选所有选项,并在Tab size栏输入2;在ASM Files栏勾选所有选项,并在Tab size栏输入2;在Other Files栏勾选所有选项,并在Tab size栏输入2。将缩进的空格数设置为2个空格,同时将Tab键也设置为2个空格,这样可以防止使用不同的编辑器阅读代码时出现代码布局不整齐的现象。设置完成后单击OK按钮。
设置Keil 5.30步骤3

3.Keil编辑和编译及程序下载过程

首先,用Keil建立工程、编写程序;然后,编译工程并生成二进制或十六进制文件;最后,将二进制或十六进制文件下载到GD32微控制器上运行。
(1)Keil编辑和编译过程
Keil的编辑和编译过程与其他集成开发环境的类似,如下图所示,可分为以下4个步骤:①创建工程,并编辑程序,程序包括C/C++代码(存放于.c文件)和汇编代码(存放于.s文件);②通过编译器armcc对.c文件进行编译,通过编译器armasm对.s文件进行编译,这两种文件编译之后,都会生成一个对应的目标程序(.o文件),.o文件的内容主要是从源文件编译得到的机器码,包含代码、数据及调试使用的信息;③通过链接器armlink将各个.o文件及库文件链接生成一个映射文件(.axf或.elf文件);④通过格式转换器fromelf,将.axf或.elf文件转换成二进制文件(.bin文件)或十六进制文件(.hex文件)。编译过程中使用到的编译器armcc、armasm,以及链接器armlink和格式转换器fromelf均位于Keil的安装目录下,如果Keil默认安装在C盘,这些工具就存放在C:\Keil_v5\ARM\ARMCC\bin目录下。
Keil编辑和编译过程
(2)程序下载过程
通过Keil生成的映射文件(.axf或.elf)或二进制/十六进制文件(.bin或.hex)可以使用不同的工具下载到GD32微控制器上的Flash,上电后,系统将Flash中的文件加载到片上SRAM,运行整个代码。
一般有两种下载程序的方法:①使用Keil将.axf通过GD-Link下载到GD32微控制器上的Flash中;②使用GigaDevice MCU ISP Programmer将.hex通过串口下载到GD32微控制器上的Flash中。

4.GD32工程模块名称及说明

工程建立完成后,按照模块被分为App、Alg、HW、OS、TPSW、FW和ARM。如下图所示。各模块名称及说明如下表所示。
Keil工程模块分组
GD32工程模块名称及说明

5.相关参考资料

在GD32微控制器系统设计过程中,有许多资料可供参考,如《GD32F303xx数据手册》《GD32F30x用户手册(中文版)》《GD32F30x用户手册(英文版)》和《GD32F30x固件库使用指南》等。
(1)《GD32F303xx数据手册》
选定好某一款具体芯片之后,需要清楚地了解该芯片的主功能引脚定义、默认复用引脚定义、重映射引脚定义、电气特性和封装信息等,可以通过《GD32F303xx数据手册》查询这些信息。
(2)《GD32F30x用户手册(中文版)》
该手册是GD32F30x系列芯片的用户手册(中文版),主要对GD32F30x系列微控制器的外设,如存储器、FMC、RCU、EXTI、GPIO、DMA、DBG、ADC、DAC、WDGT、RTC、Timer、USART、I2C、SPI、SDIO、EXMC和CAN等进行介绍,包括各个外设的架构、工作原理、特性及寄存器等。读者在开发过程中,会频繁使用到该手册,尤其是查阅某个外设的工作原理和相关寄存器。
(3)《GD32F30x用户手册(英文版)》
GD32F30x系列芯片的用户手册(英文版)。
(4)《GD32F30x固件库使用指南》
固件库实际上就是读/写寄存器的一系列函数集合,该手册是这些固件库函数的使用说明文档,包括封装寄存器的结构体说明、固件库函数说明、固件库函数参数说明,以及固件库函数使用实例等。不需要记住这些固件库函数,在开发过程中遇到不清楚的固件库函数时,能够翻阅之后解决问题即可。


总结

以上就是今天要讲的内容,本文仅仅介绍了在GD32开发过程Keil 5.30的安装和配置,下一章将通过一个简单实例介绍GD32基准工程的建立。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【GD32F303开发之开发工具的安装与配置】 的相关文章

  • SS626V100 SDK安装编译osdrv问题汇总

    文章目录 前言 1 开发环境 2 在 linux 服务器上安装交叉工具链 2 1 安装 aarch64 mix410 linux tgz 2 2 安装 cc riscv32 cfg11 musl 20211008 elf tar gz 2
  • NXP i.MX6ULL 移植python3.9.5

    项目场景 在眺望电子TW AC6G EVM开发板上移植python3 9 5 编译环境及开发包 主机 ubuntu18 04 交叉编译器 arm linux gnueabihf gcc QT5 12 8 qt everywhere open
  • BES 的蓝牙串口SPP数据收发实验

    1
  • 单播与多播mac地址

    MAC 地址 Media Access Control Address 是一个用于识别网络设备的唯一标识符 每个网络设备都有一个独特的 MAC 地址 用于在局域网中进行通信 单播MAC地址 单播MAC地址用于单播通信 即一对一的通信模式 当
  • 嵌入式Linux入门-彻底理解UART串口,手把手教你写程序

    UART串口这个东西 是嵌入式学习上避不开的 不仅在调试中经常用到 还有很多模块通过串口与SOC相连 这篇文章让你彻彻底底 搞明白串口程序的编写 没有基础的先看 嵌入式Linux学习系列全部文章 嵌入式Linux学习 从裸机到应用教程大全
  • 嵌入式Linux开发环境搭建-2-制作编译工具

    嵌入式Linux开发环境搭建 2 制作编译工具 一 安装基本开发环境 1 1 build essential安装 1 2 bison和flex 4 3 安装C函数库的man手册 二 安装交叉编译工具链 2 1 相关软件下载 2 2 修改一个
  • 【ARM】Linux内核驱动之中断

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏资料 https gitee com stylle linux code 点赞 收藏 再看 养成习惯 订阅的粉丝可通过PC端文末加我微信 可对文章的内容进
  • Linux驱动-编译驱动模块的Makefile和脚本

    Makefile内容 ARCH arm CROSS COMPILE arm poky linux gnueabi 也可以同时编译多个模块 obj m export symbol o export symbol1 o export symbo
  • ubuntu1604 虚拟机启动仅只有桌面文件和壁纸,ctrl+alt+t打不开终端解决办法

    使用ctrl alt f1进入tty命令模式 然后登陆账号密码 最后输入sudo sevice lightdm restart 这样就可以重启桌面 如果还是不行的话就重新装unity sudo apt get update sudo apt
  • 【GD32F303开发之开发工具的安装与配置】

    GD32F303开发系列文章目录 第一章 GD32微控制器开发工具的安装与配置 第二章 GD32基准工程实验 第三章 GD32串口通信实验 第四章 GD32EXMC与LCD显示实验 文章目录 GD32F303开发系列文章目录 前言 一 GD
  • linux 网络

    网络基础 协议的概念 什么是协议 从应用的角度出发 协议可理解为 规则 是数据传输和数据的解释的规则 假设 A B双方欲传输文件 规定 第一次 传输文件名 接收方接收到文件名 应答OK给传输方 第二次 发送文件的尺寸 接收方接收到该数据再次
  • Linux学习第16天:Linux设备树下的LED驱动开发:举一反三 专注专心专业

    Linux版本号4 1 15 芯片I MX6ULL 大叔学Linux 品人间百味 思文短情长 在开题之前 先说一下这次的题目 尤其是后面的 举一反三 专注专心专业 到底想给大家传递什么信息 LED驱动开发 目前为止已经学了好几种方法 包括裸
  • 在ubuntu20.04上安装arm-linux-gcc 4.4.3

    1下载地址 http www friendlyelec com cn download asp 2 将 arm linux gcc 4 4 3 tar gz 拷贝到 bin目录 无法拷贝怎么办 出现这种情况是 Linux 拷贝文件时权限不够
  • ARM架构学习(二)——流水线

    本期主题 ARM流水线 往期地址 ARMv7架构学习 ARM流水线 1 流水线概念 2 指令的分解步骤 1 流水线概念 硬件资源总是有限的 有一个明显的方法能改善硬件资源的利用率 这就是pipeline 流水线 技术 其实就是在当前指令结束
  • lv12 uboot移植深化 9

    u boot 2013 0 1移植 实验目的 了解 u boot 的代码结构及移植 的基本 方法 实验环境 u buntu 14 04
  • 学 Linux 必会的 ARM 汇编指令

    学习 Linux 系统启动流程 必须熟悉几个汇编指令 总结给大家 这里不是最全的 只列出一些最常用的汇编指令 一 数据处理指令 1 数据传送指令 MOV指令 把一个寄存器的值 立即数 赋给另一个寄存器 或者将一个常量赋给寄存器 MOV指令的
  • linux使用文件描述符0、1和2来处理输入和输出

    文件描述符012 在Linux中 文件描述符0 1和2分别代表标准输入 stdin 标准输出 stdout 和标准错误 stderr 它们用于处理进程的输入和输出 文件描述符0 stdin 文件描述符0是进程的标准输入 通常用于读取用户的输
  • linux ARM64 处理器内存屏障

    一 内存类型 ARMv8架构将系统中所有的内存 按照它们的特性 划分成两种 即普通内存和设备内存 并且它们是互斥的 也就是说系统中的某段内存要么是普通内存 要么是设备内存 不能都是 1 普通内存 Normal Memory 普通内存的特性是
  • linux ARM64 处理器内存屏障

    一 内存类型 ARMv8架构将系统中所有的内存 按照它们的特性 划分成两种 即普通内存和设备内存 并且它们是互斥的 也就是说系统中的某段内存要么是普通内存 要么是设备内存 不能都是 1 普通内存 Normal Memory 普通内存的特性是
  • <sa8650>sa8650 CDT-之-汽车CDT配置用户指南(上)

    sa8650 sa8650 CDT 之 汽车CDT配置用户指南 上 2 CDT概述 2 1 Platform ID值 2 2 CDT一般结构 2 3 CDT头 2 4 块元数据 2 5 CDBs 2 6 加载CDT的启动过程

随机推荐