一、使用VSCode开发GD32的原因

1-单片机开发用的最多的IDE为Keil,而Keil为商用软件,并非开源,而且只支持windows环境,介于当前关系,有断供的风险在。

2-其他IDE类似第1条。

3-VSCode为开源的编辑器,不存在授权一说,界面比较简约和优雅。可扩展性强。

二、VSCode开发环境搭建

下面用GD32F303介绍下环境的搭建。

1-下载VSCode: 参考网址https://code.visualstudio.com/docs/setup/setup-overview

2-下载编译工具arm-none-eabi-gcc: 点击https://developer.arm.com/downloads/-/gnu-rm

3-安装工具pyocd: pip3 install pyocd: 安装完毕后检查pyocd版本:pyocd --version,如果遇到PyYAML问题可pip install --ignore-installed PyYAML

4-安装VSCode扩展Cortex-Debug: 打开VSCode并搜索Cortex-Debug

5-安装c、c++支持: 打开VSCode并搜索c/c++

5-下载实例程序: 打开兆易官网https://www.gd32mcu.com,点击资料下载-开发板资料,点击左边GD32F3 MCU,选择GD32F30x Demo Suites

6-打开实例程序: 解压下载好的GD32F30x Demo Suites。点击GD32303B_START_Demo_Suites,找到 Projects文件夹里的示例01_GPIO_Running_LED。将整个文件夹拖入VSCode.

7-导入GD3230系列库函数: 点击GD32303B_START_Demo_Suites, 把GD32F30x_Firmware_Library里的CMSIS和GD32F30x_standard_peripheral拖入VSCode

三、生产Makefile文件

在Linux环境或mac环境下,使用GNU make来构建和管理自己的工程。整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行

1-在本案例里,使用python脚本toMakefile.py来产生makefile文件

toMakefile.py脚本如下:

import os
def main():
cFileList = []
hPathList = []
sFileList = []
ldFileList = []
for root,dirs,files in os.walk("./"):
for file in files:
if file.endswith(".c"):
cFile = os.path.join(root,file)#.decode('gbk').encode('utf-8')
cFileList.append(cFile)
if file.endswith(".h"):
hPath = os.path.join(root)#.decode('gbk').encode('utf-8')
if hPathList.count(hPath) == 0:
hPathList.append(hPath)
if file.endswith(".s"):
sFile = os.path.join(root,file)#.decode('gbk').encode('utf-8')
sFileList.append(sFile)
if file.endswith(".ld"):
ldFile = os.path.join(root,file)#.decode('gbk').encode('utf-8')
ldFileList.append(ldFile)
print(cFileList)
print(hPathList)
print(sFileList)
print(ldFileList)
cFileStr = ""
hPathStr = ""
sFileStr = ""
ldFileStr = ""
for listStr in cFileList:
# cFileStr += " \\\n" + listStr
cFileStr += "C_SOURCES += " + listStr + "\n"
for listStr in hPathList:
# hPathStr += " \\\n-I" + listStr
hPathStr += "C_INCLUDES += -I" + listStr + "\n"
for listStr in sFileList:
# sFileStr += " \\\n" + listStr
sFileStr += "ASM_SOURCES += " + listStr + "\n"
for listStr in ldFileList:
# ldFileStr += " \\\n" + listStr
ldFileStr += "LDSCRIPT += " + listStr + "\n"
try:
f = open("./Makefile.template", "r")
fileStr = f.read()
f.close()
fileStr = fileStr.replace("@@C_SOURCES@@", cFileStr)
fileStr = fileStr.replace("@@C_INCLUDES@@", hPathStr)
fileStr = fileStr.replace("@@ASM_SOURCES@@", sFileStr)
fileStr = fileStr.replace("@@LDSCRIPT@@", ldFileStr)
f = open("./Makefile", "w")
f.write(fileStr)#.decode('gbk').encode('utf-8'))
f.close()
finally:
f.close()
if __name__ == '__main__':
main()

2-代码编译

在项目终端下输入make,再回车,之后会看到项目目录出现build文件夹,即编译完成

四、代码调试

使用USB线连接上开发板,点击VSCode上的运行和调试,再点击开始调试, 即可进入调试状态

五、参考文献

1-极术社区 LJL 《【GD32F310开发板试用】MAC开发&调试环境搭建》

2-简书 _空格键_  《使用VS Code开发单片机程序》

1-VSCode搭建GD32开发环境的更多相关文章

  1. 2019-04-03 Anaconda+VSCode搭建python开发环境,并连接GIthub

    1.最好的Python开发环境 :Anaconda+VSCode搭建python开发环境,conda提供了python开发环境和大量的你不用安装的库 conda的环境变量: 直接在conda 中下载启 ...

  2. Mac环境下使用VSCode搭建Go开发环境

    换新工作啦!!!开心一下.到了新公司一看,乖乖,全MAC办公,让我这只用过windows的土包子怎么活,而且公司的人都好高冷,于是自己摸索着搭建go语言开发环境了. go语言的ide挺多的,JetBr ...

  3. VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)

    源码地址:https://github.com/YANGKANG01/Spring-Boot-Demo 安装扩展 安装如下两个主要扩展即可,这两个扩展已关联java项目开发主要使用的maven.spr ...

  4. 使用VSCode搭建TypeScript开发环境 (重点)

    下载TypeScript 在CMD(Windows系统)或者终端(macOS系统)中输入一下命令: npm install -g typescript 下载VSCode VSCode是我使用过最棒的编 ...

  5. [转]VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)

    源码地址:https://github.com/YANGKANG01/Spring-Boot-Demo 安装扩展 安装如下两个主要扩展即可,这两个扩展已关联java项目开发主要使用的maven.spr ...

  6. vsCode 搭建Java开发环境

    1.安装扩展 Java Extension Pack Spring Boot Extension Pack 2.配置Maven 打开设置 搜索maven 找到并打开  在 settings.json ...

  7. windows下vscode 搭建python开发环境

    1.vscode https://code.visualstudio.com/ 下载 2.python下载 https://www.python.org/downloads/windows/  exe ...

  8. VsCode搭建Java开发环境

    1:在 Visual Studio Code 中打开扩展视图(Ctrl+Shift+X),输入关键词java.spring分别下载Java开发插件包和springboot插件包 2:配置参数 点击设置 ...

  9. vscode搭建springboot开发环境

    1. JDK,Maven 1.1 下载略 1.2 设置系统环境变量 jdk增加环境变量JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191(安装路径) 增加路径Pa ...

随机推荐

  1. 基于yum安装CDH集群

    一.环境准备 准备至少3台设备:CentOS7系统: 如果是在实验环境下,给虚拟机的内存至少4G,根建议1T,数据盘1T,由于是虚拟机,所以根分区和数据盘放心大胆的给:如果是在生产环境则多多益善:我这 ...

  2. 判断语句的嵌套和switch判断

    Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();int i2 = scanner.nextInt();if (i& ...

  3. python打开文件、文件夹窗口、终端窗口

    简介 在一些项目中,我们会需要在生成完文件后打开某些文件或者文件夹窗口,这就需要使用到内置的文件打开方式了. 打开文件或文件夹 Windows import os import subprocess ...

  4. 一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_185 2021年,君不言容器技术则已,欲言容器则必称Docker,毫无疑问,它是当今最流行的容器技术之一,但是当我们面对海量的镜像 ...

  5. 众妙之门玄之又玄,游戏系统中的伪随机(Pseudo-Randomization)和真随机(True-Randomization)算法实现Python3

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_212 有人说,如果一个人相信运气,那么他一定参透了人生.想象一下,如果你在某款moba游戏中,在装备平平,队友天坑的情况下,却刀刀 ...

  6. google nexus5x 刷机抓包逆向环境配置(三)

    本文仅供学习交流使用,如侵立删! google nexus5x 刷机抓包逆向环境配置(三) 安装抓包证书(Fiddler.Charles) 操作环境 nexus5x kaliLinux win10 准 ...

  7. Spring的简单使用(3)

    一:SM框架的整合: 所需要的依赖: <dependency> <groupId>junit</groupId> <artifactId>junit&l ...

  8. 微服务性能分析|Pyroscope 集合 Spring Cloud Pig 的实践分享

    随着微服务体系在生产环境落地,也会伴随着一些问题出现,比如流量过大造成某个微服务应用程序的性能瓶颈.CPU利用率高.或内存泄漏等问题.要找到问题的根本原因,我们通常都会通过日志.进程再结合代码去判断根 ...

  9. 垃圾收集器 参阅<<深入理解JAVA虚拟机>>

    一.新生代 1.Serial收集器 新生代单线程复制算法GC(暂停工作线程)---------- 支持组合老年代Serial odl和CMS 2.ParNew Serial多线程版本 支持组合cms| ...

  10. 一次较波折的MySQL调优

    春节长假某日,阳光明媚,春暖花开,恰逢冬奥会开幕,想着一定是一个黄道吉日,必能顺风顺水.没想到却遇到一个有点小波折 的客户报障. 01故障起因 故障起因是客户前一天从自建MySQL迁移到云上RDS,在 ...