一 GD32 MCU 开发环境搭建

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.rhkb.cn/news/376599.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF学习(2) -- 样式基础

一、代码 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008&…

Contact Form联系表单自动发送邮件(超级简单)

前几天发现了aoksend推出的这个联系表单的组件&#xff0c;非常好用&#xff0c;只有一个php文件&#xff0c;把php文件放到网站主目录里面。然后去aoksend注册和配置好域名和发信邮箱&#xff0c;可以得到发送密钥&#xff1a;app_key&#xff0c;然后配置好邮件模板&#xff…

Linux常见配置

linux 常见配置 一、配置固定IP Centos配置固定IP 使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件&#xff0c;填入如下 二、配置环境变量 1、将要配置的环境变量写入相应文件 ~/.bashrc # 用户环境变量配置文件 /etc/profile # 全局环境变量配置文件2、执行…

安防视频监控/云存储/视频汇聚EasyCVR平台播放设备录像不稳定,是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供7*24小时实时高清视频监控、云端录像、云存储、录像检索与回看、智能告警…

无障碍全免费上手智能体:Autogen Studio结合Deepseek Coder打造一款AI旅游规划师

本文的唯一目的是通过打造一款AI旅游规划师&#xff0c;通俗易懂、深入浅出的讲清楚AI应用的大方向-智能体-的原理。 无需科学上网&#xff0c;无需付费API&#xff0c;无需编程能力&#xff0c;一小时即可部署、搭建一款复杂的、多代理交互的AI智能体-旅游规划师&#xff0c;…

【Linux】:文件fd

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家带来关于文件fd的相关知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据…

FastAPI 学习之路(四十一)定制返回Response

接口中返回xml格式内容 from fastapi import FastAPI, Responseapp FastAPI()# ① xml app.get("/legacy") def get_legacy_data():data """<?xml version"1.0"?><shampoo><Header>Apply shampoo here.</Header&…

[笔记] SEW的振动分析工具DUV40A

1.便携式振动分析仪 DUV40A 文档编号&#xff1a;26871998/EN SEW是一家国际化的大型的机械设备供应商。产品线涵盖电机&#xff0c;减速机&#xff0c;变频器等全系列动力设备。DUV40A是他自己设计的一款振动分析工具。 我们先看一下它的软硬件参数&#xff1a; 内置两路传…

国内外大模型 SuperCLUE 基准测试

本心、输入输出、结果 文章目录 国内外大模型 SuperCLUE 基准测试前言国内外大模型 SuperCLUE 基准测试榜单什么是中文大模型基准 SuperCLUE国内外大模型 SuperCLUE 基准测试 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_15071263 如果觉得本文对你有帮助,…

大数据开发中的数据驱动决策:关键问题与实践指南

目录 决策前的准备工作1. 我已经掌握了哪些信息&#xff1f;2. 我们已经做出决定了吗&#xff1f;3. 我们需要哪些额外信息以及何时需要&#xff1f; 决策过程中的关键问题1. 我们需要做这个决定吗&#xff1f;2. 错误地做出这个决定的代价是什么&#xff1f; 决策后的反思1. 我…

Excel第28享:如何新建一个Excel表格

一、背景需求 小姑电话说&#xff1a;要新建一个表格&#xff0c;并实现将几个单元格进行合并的需求。 二、解决方案 1、在电脑桌面上空白地方&#xff0c;点击鼠标右键&#xff0c;在下拉的功能框中选择“XLS工作表”或“XLSX工作表”都可以&#xff0c;如下图所示。 之后&…

数据库-三范式

第一范式 1 数据库所有字段都只有单一属性。 2 单一属性由基本数据类型构成。 3 数据库的表都是二维的行与列。 例如上面的例子就不满足第一范式&#xff0c;因为是可以继续拆分的&#xff0c;拆分为更多的属性。 第二范式 1 符合第一范式 2 表必须有个主建 3 其它字段可以…

印尼Facebook直播网络需要达到什么要求?

在全球化浪潮的推动下&#xff0c;海外直播正受到企业、个人和机构的广泛关注和青睐。无论是用于营销、推广还是互动&#xff0c;海外直播为各种组织提供了更多机会和可能性。本文将探讨在进行印尼Facebook直播前&#xff0c;需要满足哪些网络条件以确保直播的质量和用户体验。…

解决安卓tv 蓝牙遥控器配对后输入法弹不出来的问题

t972在蓝牙配对后&#xff0c;自带的LatinIME 输入法会出现弹不出来的现象。 经过分析&#xff0c;主要为蓝牙的kl 文件适配存在问题。解决如下&#xff1a; 1.新建 kl文件 这个需要结合选用的遥控器来设定名称&#xff0c;我这边的遥控器是按照如下配置的 Vendor_2b54_Pr…

初步探究Rust生态与图形界面编程

引言 Rust作为一种现代的、安全的系统编程语言&#xff0c;自2010年问世以来&#xff0c;逐渐在开发社区中崭露头角。它的内存安全保证、并发处理能力、以及无需垃圾回收机制的高性能特性&#xff0c;使得它成为了开发系统工具、网络服务、以及嵌入式系统的热门选择。然而&…

8-1 搭建solidity开发环境,自己定制一个truffle

8-1 搭建solidity开发环境&#xff0c;自己定制一个truffle&#xff08;react区块链实战&#xff09; 从零开始搭建一个项目 自己实现一套类似truffle的自动编译系统&#xff0c;加深理解 此处可以跳过无需自己实现编译合约的模块&#xff0c;使用已有的truffle模块即可 项目…

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的语法元素2. 使用了不正确的字符或符号3. JSON 格式错误4. 字符串未正确闭合 四、解决方案与预防措施1. 检查语法元素2. 正确使用符号和字符3. 修正 JSON 格式4. 字符串闭合 五、示例代码和实践建议…

go 切片进行链式操作并支持泛型

背景&#xff1a; 由于团队不是专业级别的go开发人员&#xff0c;主开发还是java&#xff0c;用惯了java的lambda表达式特别是流式操作&#xff0c; 所以在用go语言时&#xff0c;发现切片处理起来比较麻烦&#xff0c;看看能不能支持类似流式操作&#xff0c;我这边就研究了下…

PDF公式转Latex

文章目录 摘要数据集 UniMER介绍下载链接 LaTeX-OCRUniMERNet安装UniMER 用的数据集介绍下载链接 PDF-Extract-Kit整体介绍效果展示评测指标布局检测公式检测公式识别 使用教程环境安装参考[模型下载](models/README.md)下载所需模型权重 在Windows上运行在macOS上运行运行提取…

ESP-IDF升级到V5.2.x碰到的问题,lvgl移动v9.x。

近日在学习IDF,将原有IDF代码,升级到IDF 5以上时。发现一些API的变化,具体如下(今后碰到再继续补充): 一、官网上找到部分。截图如下 二、网上找到部分 The fixes I attempted which got the file to compile: replace gpio_pad_select_gpio() with gpio_pin_reset()re…