【GD32F427开发板试用】Windows系统VSCode+pyOCD开发环境搭建
本文参考了大量网上已有工作,尤其是社区的HonestQiao发表的文章,在此一并感谢。
一、安装依赖的软件
由于VSCode本身只具有代码编辑功能,因此,搭建GD32F427 VSCode开发环境过程中,除了需要安装VSCode外,还需要安装其他一些软件,下面分别介绍。
1.1 安装交叉编译工具链
首先需要安装交叉编译工具链,因为GD32F427是ARM Cortex-M4内核的,我们需要下载ARM官方维护的”Arm GNU Toolchain“。
如果你的系统已有arm-none-eabi-gcc
命令了,可以跳过此步骤。
最新版本的下载页面(可以下载到11.2及之后版本):Arm GNU Toolchain Downloads – Arm Developer
或者下载稍早版本的(只有10.3版本):Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
例如,我下载的10.3-2021.10版本:gcc-arm-none-eabi-10.3-2021.10-win32.exe
PS:10.3版本安装包较小,例如我这里下载的exe版本仅有127.75MB。而11.2版本的zip包有1.0GB。
下载完成后,安装没啥难度,记得最后一步勾选“Add path to environment variable”,如下图所示:
这一步可以将arm-none-eabi-gcc.exe
所在目录添加到PATH
环境变量中,如果忘记勾选该选项,需要在完成安装后,手动添加。
arm-none-eabi-gcc.exe
所在目录添加到PATH
环境变量之后,就可以在命令行中使用arm-none-eabi-gcc
命令了,例如查看版本:
1.2 安装TDM-GCC
由于后面我们需要使用Makefile作为项目的构建规则文件,也就是使用GNU Make进行项目构建。因此,需要让系统有make
命令,这里下载TDM-GCC只是其中一种方法,其他方法也是可以的。
如果你的系统上已有make
命令了,可以跳过此步骤。
TDM-GCC下载页面:https://jmeubank.github.io/td...
64+32位版本下载链接: tdm64-gcc-10.3.0-2.exe
PS:国内下载速度慢的朋友,可以厂商使用带有加速功能的下载软件,如某雷等。
下载完成就可以安装了,安装TDM-GCC开始时需要注意,建议取消“Check updated files on the TDM-GCC server”,如下图所示:
PS:因为勾选了这个选项会github.com下载最新版本信息,可能会下载失败。
之后步骤,默认选项继续进行即可,无需修改。
安装完成后,Win+R键打开运行窗口,输入cmd回车,打开命令行,可以查看版本信息:
之后,打开安装目录,找到mingw32-make.exe
文件,如下图所示:
将其复制一份,重命名为make.exe
。
复制一份mingw32-make.exe
文件为make.exe
后,即就可以在命令行中使用make
命令了,如下图所示:
1.3 安装Python
如果你的系统已经安装了Python,则可以跳过此步骤。
后续的烧录会用到pyocd命令,它是一个Python软件包,需要先安装Python才能安装pyocd。
如果你的Windows系统上还没有Python,需要安装Python。
下载页面:https://www.python.org/downlo...
Python安装过程中也有一步,勾选添加到PATH环境变量的,记得勾选;如果没有勾选,需要手动添加python.exe所在目录到PATH环境变量。
1.4 安装pyocd
Python安装成功后,命令行中就可以使用python和pip命令了。
1.4.1 配置pip源
pip命令默认会从pypi.org
下载软件包,国内网络环境从该网站下载文件速度较慢,建议配置国内pip源。
例如,使用阿里云pip镜像,使用如下命令进行配置:
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
pip config set global.timeout 120
配置后,可以使用pip config list
命令查看配置:
1.4.2 安装pyocd
pip设置后,就可以使用如下命令安装pyocd了:
pip install pyocd
如下图所示:
1.4.3 安装gd32f427支持包
接下来需要为pyocd安装GD32F427支持包,首先pyocd pack find gd32f427
命令搜索GD32F427支持包:
由于我手里拿到的板子的主控芯片是——GD32F427VK。
因此,我安装的是GD32F427VK支持包:
PS:由于我截图的时候已经安装过这个包了,所以没有下载的进度。
1.5 安装Git
如果你的Windows系统上还没有Git,需要安装Git;如果已经有了,则可以跳过此步骤。
下载页面:https://git-scm.com/download/win
当前最新版本下载链接:64-bit Git for Windows Setup
安装过程比较容易,不再赘述。
1.6 安装VSCode
如果你的Windows系统上还没有VSCode,需要安装VSCode;如果已经有了,则可以跳过此步骤。
VSCode下载页面:https://code.visualstudio.com...
个人比较喜欢System Installer版本。
安装过程比较容易,不再赘述。
1.7 安装VSCode Cortex-Debug插件
VSCode中调试GD32F437项目,需要使用到Cortx-Debug插件。打开VSCode,点击左侧扩展图标,搜索“Cortex-Debug”,安装Cortex-Debug插件。
二、VSCode项目模板
打开GD32F4xx_Demo_Suites压缩包解压后的的目录,找到如下子目录:
鼠标右击空白出,选择Git Bash Here菜单,打开一个新的bash窗口。
在此窗口内,使用如下命令下载VSCode模板项目:
git clone https://gitee.com/swxu/GD32F427V_START_Template_VSCode.git
使用如下命令,用VSCode打开目录:
code GD32F427V_START_Template_VSCode
2.1 关键文件说明
模板项目中,关键文件作用说明如下:
路径 | 说明 |
---|---|
.vscode/tasks.json | 任务配置 |
.vscode/launch.json | 调试配置 |
support_files/Makefile.template | Makefile模板 |
support_files/toMakefile.py | 生成Makefile的脚本 |
support_files/GD32F427VK_FLASH.ld | 链接脚本 |
support_files/startup_gd32f4xx.s | 启动代码 |
三、编译、烧录、调试
3.1 生成Makefile
VSCode中,使用菜单“终端(T) -> 运行任务”,选择create_Makefile
任务,生成项目的Makefile
文件,终端子窗口可以看到:
运行成功后,目录中会新生成一个Makefile文件。
3.2 编译项目
VSCode中,使用菜单“终端(T) -> 运行任务”,选择Build
任务,编译项目,终端子窗口可以看到:
可以看到elf
和hex
文件均成功生成了。
3.3 烧录固件
烧录固件前,需要将开发板链接到电脑,需要注意的是——开发板连接标有“GD-Link”的USB口。
VSCode中,使用菜单“终端(T) -> 运行任务”,选择flash
任务,终端子窗口可以看到pyocd
的烧录进度:
3.3.1 pyocd烧录报错
使用pyocd pack install
命令安装完GD32F427VK支持包后,使用pyocd flash
命令烧录时会出现如下报错:
这个报错不影响功能,但是看着比较烦。
在社区HonestQiao大佬的指导下,成功解决了这个问题。问题根因是——在pyocd下载的pack文件内部,svd文件开头多了两个空白字符。
解决方法:
- 找到GD32F427VK支持包的
3.0.3.pack
文件,Windows位于%UserProfile%\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\GigaDevice\GD32F4xx_DFP
子目录下; - 将其复制一份,重命名为
3.0.3.zip
文件,使用压缩解压软件(如WinRAR)将其解压开; - 使用文本编辑器打开
SVD\GD32F4xx.svd
文件,删除svd开头的两个空白字符; - 重新将所有内容压缩为
.zip
文件; - 使用重新压缩的zip文件,替换
3.0.3.pack
文件;
3.4 调试项目
VSCode中,打开某个源码文件,在左侧行号旁边点击可以添加断点,如下图所示:
VSCode中,使用菜单“运行(R) -> 启动调试”,开启调试会话,如下图所示:
四、参考链接
- 【极术社区】【GD32F427开发板试用】macOS/Linux系统开发环境搭建(开发、编译、烧录、调试) : https://aijishu.com/a/1060000...
- 【博客园】1-VSCode搭建GD32开发环境: https://www.cnblogs.com/zheng...
- 【ARM官网】GNU工具链下载页面: https://developer.arm.com/dow...
- 【pyOCD官网】 https://pyocd.io/
- 【Python官网】Python下载页面: https://www.python.org/downloads
- 【Git官网】Windows版Git下载页面: https://git-scm.com/download/win
- 【VSCode官网】VSCode下载页面: https://code.visualstudio.com...
- 【TDM-GCC首页】TDM-GCC开源项目: https://jmeubank.github.io/td...
- 【Cortex-Debug首页】Cortex-Debug开源项目: https://github.com/Marus/cort...
- 【GNU Make首页】GNU Make开源项目首页: https://www.gnu.org/software/...