一 GD32 MCU 开发环境搭建

news2024/9/20 16:57:02
GD32 系列为通用型 MCU ,所以开发环境也可以使用通用型的 IDE ,目前使用较多的是 KEIL、 IAR
GCC Embedded Builder ,客户可以根据个人喜好来选择相应的开发环境。

目录

1、使用 Keil 开发 GD32


目前市面通用的MDK for ARM版本有Keil 4Keil 5:使用Keil 4建议安装4.74及以上;使用Keil 5建议安装5.25以上版本(注意:GD32E23x系列和GD32W515x系列必须使用Keil5开发)。

1.1 在Keil4中添加GD32 MCU Device

1.1.1 从GD32官网下载相关系列插件。 下面以GD32F30x为例,在官网上下载MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如图所示

1.1.2 双击解压安装至Keil 4的目录,一般都会默认选择,如若同时安装了Keil 4和Keil 5才需要手动选择。

1.1.3 安装成功后,重新打开Keil 4,则可以在File->Device Database中出现Gigadevice的下拉选项,点击可以查看到相应的型号。

1.1.4 为了后续debug工作的顺利进行,建议检查一下安装路径下是否有下载算法,可以通过如下方式查看:打开一个工程,将型号选为GD32F30x的型号,然后Options for Target -> Debug ->Settings -> Flash Download-> Add,如果下拉选项中有GD32F30x的下载算法则完全安装成功。

1.2 在Keil 5中添加GD32 MCU Device

1.2.1 从GD32官网下载相关系列插件。 下面以GD32F30x为例,在官网上下载MDK-ARM_AddOn_GD32F30x_V1.0.0.rar。

1.2.2 解压并安装至Keil 5的目录,一般都会默认选择。

1.2.3 安装完后重新打开keil5工程,即可在Device->Database中出现Gigadevice的型号。

1.2.4 在Options for Target -> Debug ->Settings ->Flash Download 中添加flash算法,会出现GD32F30X的算法,即说明安装成功。根据相应的芯片选择合适的算法,即可下载仿真。

1.2.5 用Keil 5打开Keil 4工程,如果报找不到器件信息等错误,将Keil 4的插件安装在Keil 5的目录下,具体操作方式参考Keil 4插件相关内容。

1.3 使用GD-Link开发GD32

GD32部分开发板自带GD-link,可以用电路板上的GD-link调试仿真代码,不带的可外接GD-link模块,具体操作方法如下。

1.3.1 第一次使用GD-link插入电脑后,会自动安装驱动。 在Options for Target -> Debug 中选择“CMSIS-DAP Debugger”,部分客户反馈找不到这一驱动器选项,那是因为MDK版本过低,只有Keil4.74以上的版本和Keil5才支持CMSIS-DAP Debugger选项。

1.3.2 在Options for Target -> Utilities,也要选择“CMSIS-DAP Debugger”。

1.3.3 在Options for Target -> Debug ->Settings勾选SWJ、Port选择 SW。右框IDcode会出现”0xXBAXXXXX”。

1.3.4 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.3.5 单击下图的快捷方式“debug”,即可使用GD-Link进行仿真。

1.4 使用J-Link开发GD32

使用J-Link来debug GD MCU,具体配置如下:

1.4.1 在Options for Target -> Debug中选择“J-LINK/J-Trace Cortex“

1.4.2 在Options for Target -> Debug ->Utilities,也要选择“J-LINK/J-Trace Cortex”。

1.4.3 在Options for Target -> Debug ->Settings勾选SWJ,Port选择 SW。右框IDcode会出现“0xXBAXXXXX”。 

1.4.4 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.4.5 单击下图的快捷方式“debug”,即可使用J-Link进行仿真。

1.5 使用ULink2开发GD32

使用ULink2来debug GD MCU,具体配置如下:

1.5.1 在Options for Target -> Debug中选择“ULINK2/ME Cortex Debugger”

1.5.2 在Options for Target -> Debug ->Settings勾选SWJ,Port选择 SW。右框IDcode会出现“0xXBAXXXXX”。

1.5.3 在Options for Target -> Debug ->Settings -> Flash Download中添加GD32的flash算法。

1.5.4 单击下图的快捷方式“debug”,即可使用ULink2进行仿真。

1.6 MDK使用常见问题解答

1.6.1 Keil4打开Keil5工程

如果没有安装Keil 5,也是能够使用Keil 4来编译Keil 5的工程,具体做法就是修改工程的后缀名,将Keil5工程的后缀名xxxx.uvprojx修改为xxxx.uvproj,即可使用Keil 4来查看编译了。

1.6.2 Keil5打开Keil4工程

如果使用Keil 5打开Keil 4工程,打开时会遇到找不到MCU器件的情况,这种可以直接将Keil4工程的后缀名xxxx.uvproj修改为xxxx.uvprojx,即可正常使用Keil 5来查看编译了。

1.6.3 Keil5打开Keil4工程,编译报错

错误原因是core_cmInstr.h文件的路径在Keil5和Keil4中不同,可在Option for Target的C/C++中添加core_cmInstr.h的文件路径,如图文件路径添加示意图所示:

2. 使用 IAR 开发 GD32

IAR版本众多,版本之间的兼容性并不好,如果初次使用建议安装7.3以上的版本,安装好IAR以后再根据该文档来添加GD的器件型号,进行相关的debug工作。

2.1 在IAR中添加GD32 MCU Device

2.1.1 从官网上下载相应的GD32系列插件。

下面以GD32F30x系列为例,下载插件IAR_GD32F30x_ADDON.1.0.0.exe:

2.1.2 运行IAR_GD32F30x_ADDON.1.0.0.exe,单击start开始安装插件。

2.1.3 安装成功后单击Finish,结束插件安装。

2.2 在IAR中编译调试GD32

在上一小节中我们已经添加了GD32F30x系列的插件,这一小节我们介绍应如何使用它。 使用 IAR 编译 GD 的型号,有两个办法,一种是使用现有的工程进行修改,还有就是重新建立工程,这里就不细说具体工程应该如何建立,GD 的工程建立和别的平台都一致,建立工程时选择GD的相应型号。

6.1以后的IAR不需要添加CMSIS文件(core_cm4.c和core_cm4.h),但是需要勾选General Options->Library Configuration的Use CMSIS,如果软件代码有使用到printf函数,还需要修改Library为FULL。

芯片的Link文件建立工程时会默认根据型号选定,但是编译前还是要有检查的习惯,检查一下ICF文件是否有配置,是否正确。

配置Debugger->Setup选项,新建立的工程默认是Simulator模拟,如果需要调试那么需要根据实际情况来选择:

1.使用GD-Link选择CMSIS DAP(兼容性不好,不建议在IAR下使用);

2.使用J-Link选择J-Link/J-Trace;

3.使用ULink2选择CMSIS DAP。

配置Debugger->Download选项,新建的工程有可能没有配置download选项,如果我们需要调试代码那么务必要勾选User flash loader选项,且保证board file准确,否则程序无法正常下载至芯片内部。

如果选择了Debugger选项,那么还需要根据Debugger选项设定对应的调试选项;如果选择的是GD的型号,在IAR下面已经固定将所有的调试接口都配置为SWD接口,可以忽略该选项配置,直接进行相关的代码debug工作。

3. 使用 Embedded Builder 开发 GD32

3.1 安装 JAVA 环境

Embedded Builder 是一款基于 Eclipse 和 Java 平台的软件,需要安装 java 环境,在 Oracle 官 网下载 Java Downloads | Oracle, 以 jdk-8u152-windows-x64.exe 为例,下载后管理员身份打开并安装,记住安装路径,如“D:\Program Files\Java\jdk1.8.0_351”。

编辑系统变量,将 Java 环境添加到系统环境中。首先在系统变量中添加JAVA_HOME 这个变量。

编辑系统变量中的 Path 变量,单击新建,添加如下两个变量。

在系统变量中新建 CLASSPATH 变量

至此,Java环境便配置完了。Windows+R 键,输入cmd并点击确认,打开 dos 窗口。分别输入java和javac,如果能正常输出java提示信息则说明配置成功。

3.2 创建一个新的工程

双击压缩包下面的 Embedded Builder.exe 打开 IDE,选择一个路径作为 workspace 的存放位置,确认之后即可进入 IDE 页面。在导航栏依次单击“File->New->Project…”开始新建项目。在 New Project 页面 C/C++ 选项卡下选择 C Project,并单击 Next >。

C 工程选项页面中,在可执行文件“Executable”选项卡下选择“GigaDevice ARM C Project”,填好项目名字之后选择下一步,在下一步中选择对应的芯片,剩余的配置模块即可。

3.3 导入工程

在导航栏处依次选择“File->Import”,开始导入工程。在导入页面的 General 选项卡下选择Existing Projects into Workspace,开始导入现有工程。

在弹出的页面中选择原有工程的路径,IDE 会自动检索该路径下的工程配置文件并列出存在的 Embedded Builder 项目。勾选需要导入的项目后单击 Finish 即可完成工程的导入。

3.4 在 Embedded Builder IDE 中编译调试 GD32

右键工程打开工程选项,选择“Build Project”开始编译工程,编译的 Log 信息会在下方的 console窗口打印,编译效果如下图所示。

单击导航栏上的 debug configuration,可以进入 Debug 配置页面。

单击 Debugger 选项卡,可以选择需要的调试器,默认为 GD-Link,这里切换为 J-Link。单击Debug 按钮进入 Debug 页面。

Debug页面如下,左侧为文件导航栏,中间为文件编辑器,右侧包含寄存器、内存、断点及其他调试信息,下方是终端提示信息,Debug信息及其他提示信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java代码初始化块

目录 实例域代码块 静态域代码块 初始化代码块分为静态域代码块和实例域代码块,静态域代码块在类第一次被加载时被执行,实例域代码块在创建对象时被执行,一个类中可以有多个代码块。 实例域代码块 使用方法 可以有输出语句 可以对类的属…

02. Hibernate 初体验之持久化对象

1. 前言 本节课程让我们一起体验 Hibernate 的魅力!编写第一个基于 Hibernate 的实例程序。 在本节课程中,你将学到 : Hibernate 的版本发展史;持久化对象的特点。 为了更好地讲解这个内容,这个初体验案例分上下 2…

自学第十六天----深入理解函数中

4. 函数的调用: 4.1 传值调用 函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。 4.2 传址调用 传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。 这种传参方式可以让函数和函数外边的变量建立起真正的联系&…

在 vite+vue3+electron 中使用 express

文章目录 一、Vite Vue3 Electron 项目的搭建二、搭建 express 环境1、安装 express 框架所需依赖2、创建 express 项目3、配置路由4、启动 express 服务5、启动 electron 并获取数据 三、项目打包 一、Vite Vue3 Electron 项目的搭建 详细的项目构建和打包可参考另一篇文…

【第32章】MyBatis-Plus之代码生成器配置

文章目录 前言一、概述1.特点说明2.示例配置3. 数据库配置 (DataSourceConfig) 二、全局配置 (GlobalConfig)1.方法说明2.示例配置 三、包配置 (PackageConfig)1. 方法说明2. 示例配置 四、模板配置 (TemplateConfig)1. 方法说明2. 示例配置 五、注入配置 (InjectionConfig)1. …

第三期书生大模型实战营之Python前置知识

闯关任务1 请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。 算法流程 1. 去除标点:使用string.punctuation和str.translate去除文本中的标点符号。 2. 转换…

制造业ERP源码 ERP系统源码 ERP小程序源码

制造业ERP源码 ERP系统源码 ERP小程序源码 资料: 委外工厂管理 客户列表 车间管理 供应商管理 账户管理 商品管理 仓库管理 职员管理 自取地址管理 司机管理 辅助资料 客户等级 供应商分类 客户分类 商品分类 支出类别管理 收入类别管…

第一次构建一个对话机器人流程解析(一)

1.问答机器人的组成 1.1 问答机器人的组成结构图 2. 问答机器人的组成-机器人的个人属性 所谓的机器人一般具备有个人的属性,这些属性固定,形成了机器人的个人偏好 在实现过程中,此处使用一个xml配置文件,配置了机器人的个人年…

Jetbrains IDEA中Git常用操作

Git简介与使用 Intro Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git是一款分布式版本控制系统(VSC),是团队合作开发…

通信协议 | 一文玩转UART协议就够了

文章目录 协议基础1、UART简介2、UART特性3、UART协议帧3.1、起始位3.2、数据位3.3、奇偶校验位3.4、停止位 4、UART通信步骤 最详细的UART通讯协议分析Verilog代码实现UART接口模块驱动 协议基础 1、UART简介 UART(Universal Asynchronous Receiver/Transmitter&…

注意!避免计算组覆盖!

问题描述: PowerBI在实际使用中,针对于某些数据,需要呈现文本类型的标签,一般这类需求,都是通过计算组来解决的。 但计算组在使用中,也会存在一些问题,就是一旦点击交互,就会影响到其…

vue 自定义滚动条同步拖动(移动端)

实现效果&#xff0c;拖动左右箭头实现图片区域同步滚动&#xff0c;到边缘停止拖动。 HTML代码 <template><div touchstart"onClick"><!--使用draggable组件 图片列表区域--><draggablev-model"select_list"end"onEnd"cl…

2024软件测试面试题汇总【备战金九银十】内容较长建议收藏

一、面试基础题 简述测试流程: 1、阅读相关技术文档&#xff08;如产品PRD、UI设计、产品流程图等&#xff09;。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例&#xff08;等价类划分法、边界值分析法等&#xff09;。 5、用例评审(…

鸿蒙语言基础类库:【@ohos.convertxml (xml转换JavaScript)】

xml转换JavaScript 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

【Python】日期和时间模块

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言时间元组datetime 模块datetime类获取当前日期和时间 timedelta类日期和时间运算 strftime()方法格式化时间日期格式化符号 strptime()方法 Time 模块Time 模块内置函数Time 模…

牛客小白月赛98 (个人题解)(待补完)

前言&#xff1a; 昨天晚上自己一个人打的小白月赛&#xff08;因为准备数学期末已经写烦了&#xff09;&#xff0c;题目难度感觉越来越简单了&#xff08;不在像以前一样根本写不了一点&#xff0c;现在看题解已经能看懂一点了&#xff09;&#xff0c;能感受到自己在不断进步…

LLM基础模型系列:Prompt-Tuning

------->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<------ 大型预训练语言模型的规模不断扩大&#xff0c;在许多自然语言处理 &#xff08;NLP&#xff09; 基准测试中取得了最先进的结果。自GPT和BERT开发以来&#xff0c;标准做法一直是在下游…

802.11ax RU - 传输的最小单元

子载波 无线信号是加载在某个固定频率上进行传输的&#xff0c;这个频率被称为载波。802.11标准中&#xff0c;对传输频率有更新的划分&#xff0c;而这些划分的频率被称为子载波。Wi-Fi 6中&#xff0c;以20Mhz信道为例&#xff0c;20Mhz信道被划分成256个子载波&#xff0c;…

Go-知识测试-子测试

Go-知识测试-子测试 1. 介绍2. 例子3. 子测试命名规则4. 选择性执行5. 子测试并发6. testing.T.Run7. testing.T.Parallel8. 子测试适用于单元测试9. 子测试适用于性能测试10. 总结10.1 启动子测试 Run10.2 启动并发测试 Parallel 建议先看&#xff1a;https://blog.csdn.net/a…

LinK3D: Linear Keypoints Representation for 3D LiDAR Point Cloud【翻译与解读】

LinK3D: Linear Keypoints Representation for 3D LiDAR Point Cloud 摘要 特征提取和匹配是许多机器人视觉任务的基本组成部分&#xff0c;如 2D 或 3D 目标检测、识别和配准。2D 特征提取和匹配已取得巨大成功。然而&#xff0c;在 3D 领域&#xff0c;当前方法由于描述性差…