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

news2024/9/21 10:44:10

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.coloradmin.cn/o/2152102.html

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

相关文章

[产品管理-30]:NPDP新产品开发 - 29 - 产品生命周期管理 - 可持续产品创新

目录 一、可持续开发与可持续创新 可持续开发 可持续创新 可持续开发与可持续创新的关系 二、循环经济 1、循环经济的定义 2、循环经济的起源与发展 3、循环经济的原则 4、循环经济的实践案例 5、循环经济的意义与展望 三、三重底线 1. 财务底线 - 企业。赚钱 2. …

11. DPO 微调示例:根据人类偏好优化LLM大语言模型

在部署大模型之后,我们必然要和微调打交道。现在大模型的微调有非常多的方法,过去的文章中提到的微调方法通常依赖于问题和答案对,标注成本较高。 2023 年所提出的 Direct Preference Optimization(DPO)为我们提供了一…

卡牌抽卡机小程序:市场发展下的创新

今年以来,卡牌成为了行业中的黑马,在国内迅速流行,成为消费者的心头好。小小的卡牌创下了百亿的市场规模,发展前景巨大! 不过,随着卡牌市场的不断增长,市场发展也需要进行创新。线上抽卡机小程…

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

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

信息安全数学基础(19)同余式的基本概念及一次同余式

一、同余式概念 同余式是数论中的一个基本概念,用于描述两个数在除以某个数时所得的余数相同的情况。具体地,设m是一个正整数,a和b是两个整数,如果a和b除以m的余数相同,则称a和b模m同余,记作a≡b(mod m)。反…

C语言 | Leetcode C语言题解之第421题数组中两个数的最大异或值

题目: 题解: const int HIGH_BIT 30;struct Trie {// 左子树指向表示 0 的子节点struct Trie* left;// 右子树指向表示 1 的子节点struct Trie* right; };struct Trie* createTrie() {struct Trie* ret malloc(sizeof(struct Trie));ret->left re…

SpringBoot 数据库表结构文档生成

官方地址&#xff1a;https://github.com/pingfangushi/screw screw 螺丝钉&#xff0c;支持以下数据库 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB&#xff08;2016&#xff09; 生产文档支持 html word markdown 开始 添加依赖 <!-- 螺丝钉 --><…

CompletableFuture-详解使用及源码解析

背景 上一篇文章我们看了FutureTask&#xff0c;分析了他的问题&#xff0c;异步编程并不方便。 问题1&#xff1a; FutureTask获取执行结果前&#xff0c;主线程需要通过get()方法一直阻塞等待子线程执行完成call方法&#xff0c;才可以拿到返回结果问题2&#xff1a;如果不…

电竞显示器哪个牌子好

电竞显示器哪个好&#xff1f;你想成为电竞选手吗&#xff1f;显示器很关键&#xff0c;下面我就列举7款市面流行的电竞显示器给大家看看&#xff0c;总有一款适合你。 1.电竞显示器哪个好 - 蚂蚁电竞 ANT255VF电竞显示器 一、产品概述 蚂蚁电竞 ANT255VF电竞显示器是一款专为…

2024/9/21 leetcode 21.合并两个有序链表 2.两数相加

目录 21.合并两个有序链表 题目描述 题目链接 解题思路与代码 2.两数相加 题目描述 题目链接 解题思路与代码 --------------------------------------------------------------------------- 21.合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返…

ChatCADChatCAD+:Towards a Universal and Reliable Interactive CAD using LLMs

ChatCAD&#xff08;论文链接&#xff1a;[2302.07257] ChatCAD: Interactive Computer-Aided Diagnosis on Medical Image using Large Language Models (arxiv.org)&#xff09; 网络流程图&#xff1a; 辅助阅读&#xff1a; 基于大型语言模型的医学图像交互式计算机辅助诊…

【运维自动化-作业平台】如何使用全局变量之字符串类型?

使用变量是脚本很常见的处理场景&#xff0c;作业平台中主要有全局变量和魔法变量两类&#xff0c;全局变量又区分了字符串、命名空间、主机列表、密文、数组5种类型。字符串类型变量 最简单、使用频率最高的全局变量类型&#xff0c;可以跨主机、跨步骤使用。目前在作业平台中…

uniApp微信小程序扫描普通二维码跳转到小程序指定页面操作方法

这篇文章主要给大家介绍了关于微信小程序扫描普通二维码跳转到小程序指定页面操作的相关资料,需要的朋友可以参考下 1、首先我们需要在微信公众平台的开发管理——>开发设置&#xff0c;找到&#xff08;扫普通链接二维码打开小程序&#xff09;&#xff0c;点击添加,根据提…

vue3-05-Element-plus中表单校验:校验对象中的对象的属性,校验对象中的数组中的对象的属性,校验嵌套对象

目录 一、校验对象中的普通属性二、校验对象中对象的属性三、校验对象中的数组中的对象的属性 这两天写vue3项目&#xff0c;用了element-plus库&#xff0c;到了表单规则验证的环节&#xff0c;我发现我只会校验对象中的普通属性&#xff0c;如果校验嵌套对象&#xff0c;我就…

ML 系列:多元线性回归 (MLR)(04)

图 1.多元线性回归与简单线性回归 一、说明 线性回归从一维推广到多维&#xff0c;这与单变量线性回归有很多不同&#xff0c;情况更加复杂&#xff0c;而在梯度优化也需要改成向量梯度&#xff0c;同时&#xff0c;数据预处理也成了必要步骤。 二、综述 多元线性回归是简单线性…

C++:分苹果【排列组合】

描述 把M个同样的苹果放到N个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f;&#xff08;用K表示&#xff09;&#xff0c;5&#xff0c;1&#xff0c;1和1&#xff0c;5&#xff0c;1是同一种分法。 输入描述 两个整数M和N&…

C语言 | Leetcode C语言题解之第420题强密码检验器

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b))int strongPasswordChecker(char * password) {int n strlen(password);bool has_lower false, has_upper false, has_digit false;for …

YOLOv9改进系列,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…

【重磅发布】大模型在金融领域的价值、治理和生态进阶之路白皮书

引言 金融行业天然具备数据和信息密集型的特点,在数字化成熟度方面处于领先地位。此外,金融行业的数字化投入持续稳步增长,汇集了大量具备数字化技能的人才。这些优势使得金融行业在AI技术的应用和创新方面具备独特的条件,能够在推动技术革新和提升行业效率方面起到示范作…

NLP(二)-文本表示

One-hot One-hot&#xff08;独热&#xff09;编码是一种最简单的文本表示方式。如果有一个大小为V的词表&#xff0c;对于第i个词$w_i$&#xff0c;可以用一个长度为V的向量来表示&#xff0c;其中第i个元素为1&#xff0c;其它为0.例如&#xff1a; 减肥&#xff1a;[1, 0,…