VScode开发GD32移植(标准库通用),保姆级!!!!!!!

VScode开发GD32移植(标准库通用),保姆级!!!!!!!

文章目录

  • `VScode开发GD32移植(标准库通用),保姆级!!!!!!!`
    • `前言`
    • `一、准备所需GD32文件`
      • `1、下载对应的固件库和芯片包`
      • `2、找出固件库用到的文件`
      • `3、STM32cubeMX获取启动文件和连接文件`
      • `4、汇总所需文件`
    • `二、VScode配置`
      • `1、下载VScode`
      • `2、下载插件`
      • `3、创建工程`
      • `4、【项目资源】创建虚拟文件夹`
      • `5、【项目资源】将文件添加到虚拟文件夹`
      • `6、【芯片支持包】将芯片包添加到工程里`
      • `7、【构建配置】选择芯片类型 和 添加链接文件`
      • `8、【烧录配置】选择烧录工具 和 芯片名称`
      • `9、【项目属性】-【包含目录】将文件路径添加到工程`
      • `10、【项目属性】-【预处理宏定义】将预处理的宏定义添加到工程里`
    • `三、报错`
      • `报错1`
      • `报错2`
      • `报错3`
  • `如果对你有帮助,就点赞收藏把!(。・ω・。)ノ♡`




前言

众所周知,MDK是很多人手上最常用的开发软件的
之周所众,MDK的版本已经落后到 “ 要不是没有替代品狗都不用 ” 的地步了

stm32cubeMX解决了很多人的困扰,但是不能编写代码且不能烧录!还得用回MDK!
stm32cubeIDE解决了更多人的困扰,但是stm32cubeIDE只能烧录ST的芯片啊!!!

笔者花了近两天的摸索和朋友的帮助,终于总结出了使用VScode来取代MDK
既可以代码编写方便,又可以烧录,还可以兼容各个常见的芯片
移植和配置过程挺复杂的,笔者已经尽量写的通俗易懂了

如果使用的时HAL库,可以看笔者的另一篇文章:
【STM32cubeMX + VScode开发GD32移植(HAL库通用),保姆级!!!!!!!】



一、准备所需GD32文件

1、下载对应的固件库和芯片包

官网:【兆易创新GigaDevice-资料下载兆易创新GD32MCU】

在这里插入图片描述
固件库:GD32F10x_Firmware_Library_V2.3.0.7z
芯片包:GD32F10x_AddOn_V2.3.0
选择自己的芯片和版本

2、找出固件库用到的文件

解压固件库:GD32F10x_Firmware_Library_V2.3.0.7z
在这里插入图片描述
在这里插入图片描述
可以创建两个文件夹分别放置这写文件
笔者这里创建了Library文件夹和User文件夹

3、STM32cubeMX获取启动文件和连接文件

启动文件: startup_stm32f103xe.s
链接文件: STM32F103RCTx_FLASH.ld
(注意自己用的芯片型号,不要无脑移植)

可以到别人的工程里面找,也可以自己生成
可以使用STM32cubeMX生成(STM32cubeIDE也行)
笔者这里用STM32cubeMX

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,拿到了启动文件和链接文件,笔者创建一个project文件夹放置

4、汇总所需文件

自此就获取到了所需的所有文件了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当然,也可以不按照笔者的文件安置风格,可以参照生成的STM32cibeMX工程的文件安置风格


二、VScode配置

1、下载VScode

官网:【Visual Studio Code - Code Editing.Redefined】
自己下载,没什么难点

2、下载插件

需要下载两个插件
C/C++
Embedded IDE
不过,这两个插件附带会下载其他插件,该下载就下载
在这里插入图片描述

3、创建工程

在这里插入图片描述
选择工程的地址,并且将上面的准备的文件放入工程文件夹里面
在这里插入图片描述

4、【项目资源】创建虚拟文件夹

在这里插入图片描述

5、【项目资源】将文件添加到虚拟文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、【芯片支持包】将芯片包添加到工程里

在这里插入图片描述
在这里插入图片描述

7、【构建配置】选择芯片类型 和 添加链接文件

在这里插入图片描述

8、【烧录配置】选择烧录工具 和 芯片名称

在这里插入图片描述
在这里插入图片描述

9、【项目属性】-【包含目录】将文件路径添加到工程

在这里插入图片描述
在这里插入图片描述

10、【项目属性】-【预处理宏定义】将预处理的宏定义添加到工程里

USE_STDPERIPH_DRIVER:标准库就必须要加这个
GD32F10X_xx:根据实际情况
在这里插入图片描述


三、报错

报错1

在这里插入图片描述

解决办法

在这里插入图片描述


报错2

在这里插入图片描述

解决办法
在这里插入图片描述

在这里插入图片描述


报错3

在这里插入图片描述




┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈ ┈┈┈┈▕▔╲┈┈┈┈┈┈┈┈
┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈┈┈┈┈▏▕┈┈┈┈┈┈┈ ┈
┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈┈┈┈┈▏ ▕▂▂▂▂▂┈┈┈
▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈ ▂▂▂▂╱┈┈▕▂▂▂▂▏┈┈
▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈
▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈ ▉▉▉┈┈┈┈▕▂▂▂▂▏ ┈
▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈ ▔▔▔▔╲▂▂▕▂▂▂▂▏┈┈

如果对你有帮助,就点赞收藏把!(。・ω・。)ノ♡

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

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

相关文章

稳联Profinet转Canopen网关携手伺服,高效提升生产效率

在当今的工业生产领域,追求高效、精准和可靠的生产方式是企业不断努力的方向。稳联技术Profinet转Canopen(WL-ABC3033)网关与伺服系统的携手合作,为提高生产效率带来了新的机遇和突破。 实现无缝通信,优化生产流程稳联…

煤矿智慧矿井数据集 (1.煤矿采掘工作面智能分析数据集2.煤矿井下钻场智能分析数据集 )

智慧矿井智能分析数据集 数据1:数据1包含煤矿采掘工作面工人安全帽检测,工人行为检测(行走,站立,坐,操作,弯腰,靠,摔,爬),液压支撑防护…

python内置装饰器,解决接口自动化中公共方法(如,读excel),无需实例化即可调用...

Python 还提供了一些内置的装饰器,比如 staticmethod 和 classmethod,用于定义静态方法和类方法。 如接口自动化中,公共的方法,在一个文件夹,其他文件需要调用;

【题库制作】对于一个文档题库,将3或4个选项的题目分别放在单独的区域

原文链接:https://www.cnblogs.com/MrFlySand/p/18422619 操作步骤 如下图,对于一个文档题库,将3或4个选项的题目分别放在单独的区域 多添加一行D:将答案:替换为D.\n答案: 删除多余的D行:将D\…

HTML粉色烟花秀

目录 系列文章 写在前面 完整代码 代码分析 写在最后 系列文章 序号目录1HTML满屏跳动的爱心(可写字)2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心(简易版)7HTML粒子爱心8HTML蓝色…

CSP-J2024年全真模拟题 阅读程序篇2

因为明天考试,这回给大家准备了超详细的解析~ 22.程序中 n 和 m 只有输入正整数,程序的输出值才可能是 YES A.对B.错 23.程序中用到了递归函数 bool fun(int n) A.对B.错 24.若输入 n 和 m 都是素数,程序的输出值…

powerbi- l6-获取文件的动态链接

需求: 需要对文件夹中的文件进行处理处理的文件名包含当天的日期,格式为年月日 在powerbi 中打开高级编辑,将文件夹的名称中动态内容进行修改,按照如下的格式, 比如文件名为:fixed_name_20240930_abc.pdf…

生活小助手系统小程序的设计

管理员账户功能包括:系统首页,个人中心,客户管理,社区公告管理,反馈信息管理,生活缴费处管理,物品分类管理,二手物品管理,系统管理 微信端账号功能包括:系统…

股指期权交易详细基础介绍

股指期权是期权市场中的一种特定类型,其标的资产为股票指数。简而言之,它允许投资者在未来某个特定时间,以预先约定的价格,买入或卖出股票指数的权利。在中国,已上市的股指期权包括上证50、沪深300和中证1000股指期权&…

Yocto - 使用Yocto开发嵌入式Linux系统_02 认识 Yocto 项目

Meeting the Yocto Project 本章向你介绍 Yocto 项目。这里讨论的项目主要概念将贯穿全书。此外,我们还将简要讨论 Yocto 项目的历史、OpenEmbedded、Poky、BitBake、元数据和版本模式。系好安全带,欢迎加入我们的行列! This chapter introdu…

NC65客开常见问题以及解决方案

NC65客开常见问题以及解决方案 元数据实体对应的数据库表没有创建: 参照发布元数据第三步,生成数据库表 元数据名称和字段名称不一致导致报错: 更改为一致,删除原有的数据库表,重新生成数据库表并且重新发布元数据(如…

【Qt之·文件操作·类QTextStream、QDataStream】

系列文章目录 文章目录 前言一、概述1.1 QTextStream类1.2 QTextStream类的作用和用途 二、基本用法2.1 QTextStream成员函数2.2 QTextStream格式描述符、描述符方法2.3 QDataStream成员函数2.4 创建QTextStream对象并关联输入/输出设备(如文件、标准输入/输出流等&…

34. 模型材质父类Material

学习到现在大家对threejs的材质都有简单的了解,本节课主要结合文档,从JavaScript语法角度,给大家总结一下材质API的语法。 材质父类Material 查询threejs文档,你可以看到基础网格材质MeshBasicMaterial、漫反射网格材质MeshLamb…

C语言中的一些小知识(三)

一、你了解printf()吗? 你知道下面代码的输出结果吗? int a123; printf("%2d \n",a); printf() 函数是 C 语言中用于格式化输出的标准函数,它允许你将数据以特定的格式输出到标准输出设备(通常是屏幕)。p…

中电信翼康基于Apache Dolphinscheduler重构“星海·济世医疗数据中台”实践经验分享

文章作者:尚志忠 编辑整理:曾辉 行业背景 随着大数据、云计算、5G、人工智能等技术的快速发展,以及医疗信息化建设的不断深入,数据中台作为打通医疗数据融合壁垒、实现数据互通与共享、构建高效数据应用的关键信息平台&#xf…

松材线虫目标检测数据集,12522张图-纯手工标注

松材线虫目标检测数据集,12522张图像,专家纯手工标注。 松材线虫目标检测数据集 数据集描述 该数据集是一个专门用于松材线虫(Bursaphelenchus xylophilus)检测的数据集,旨在帮助研究人员和开发者训练和评估基于深度…

Python 操作 Arduino 入门

本文翻译整理自:Arduino With Python: How to Get Started https://realpython.com/arduino-python/ 文章目录 一、Arduino平台1、Arduino硬件2、Arduino软件 二、“Hello, World!”与Arduino1、上传眨眼示例草图2、连接外部组件3、使用面包板 三、“Hello, World!”…

技术美术百人计划 | 《5.1.1 PBR-基于物理的材质》笔记

1. PBR定义-基于物理的材质 PBR,或者用更通俗一些的称呼是指基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。 正因为基于物理的渲染目的便是为了使用一种更…

利用Metasploit进行信息收集与扫描

Metasploit之信息收集和扫描 在本文中,我们将学习以下内容 使用Metasploit被动收集信息 使用Metasploit主动收集信息 使用Nmap进行端口扫描 使用db_nmap方式进行端口扫描 使用ARP进行主机发现 UDP服务探测 SMB扫描和枚举 SSH版本扫描 FTP扫描 SMTP枚举 …

关于机器学习和深度学习的区别有哪些?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于机器学习和深度学习区别的相关内容&…