xusiwei1236 · 2022年12月07日 · 江苏

【GD32F427开发板试用】Windows系统VSCode+pyOCD开发环境搭建

【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_GNU_Toolchain_install.png

这一步可以将arm-none-eabi-gcc.exe所在目录添加到PATH环境变量中,如果忘记勾选该选项,需要在完成安装后,手动添加。

arm-none-eabi-gcc.exe所在目录添加到PATH环境变量之后,就可以在命令行中使用arm-none-eabi-gcc命令了,例如查看版本:

arm-none-eabi-gcc-version.png

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”,如下图所示:

TDM-GCC_Setup_no_update.png

PS:因为勾选了这个选项会github.com下载最新版本信息,可能会下载失败。

之后步骤,默认选项继续进行即可,无需修改。

安装完成后,Win+R键打开运行窗口,输入cmd回车,打开命令行,可以查看版本信息:

gcc-version.png

之后,打开安装目录,找到mingw32-make.exe文件,如下图所示:

mingw-bin-files.png

将其复制一份,重命名为make.exe

复制一份mingw32-make.exe文件为make.exe后,即就可以在命令行中使用make命令了,如下图所示:

make-version.png

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命令查看配置:

pip_config_list.png

1.4.2 安装pyocd

pip设置后,就可以使用如下命令安装pyocd了:

pip install pyocd

如下图所示:

pip_install_pyocd.png

1.4.3 安装gd32f427支持包

接下来需要为pyocd安装GD32F427支持包,首先pyocd pack find gd32f427命令搜索GD32F427支持包:

pyocd_pack_find_gd32f427.png

由于我手里拿到的板子的主控芯片是——GD32F427VK。

因此,我安装的是GD32F427VK支持包:

pyocd_pack_install_gd32f427vk.png

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压缩包解压后的的目录,找到如下子目录:

gd32f427v_start_demo_suite_projects.png

鼠标右击空白出,选择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.templateMakefile模板
support_files/toMakefile.py生成Makefile的脚本
support_files/GD32F427VK_FLASH.ld链接脚本
support_files/startup_gd32f4xx.s启动代码

三、编译、烧录、调试

3.1 生成Makefile

VSCode中,使用菜单“终端(T) -> 运行任务”,选择create_Makefile任务,生成项目的Makefile文件,终端子窗口可以看到:

vscode_terminal_create_makefile.png

运行成功后,目录中会新生成一个Makefile文件。

3.2 编译项目

VSCode中,使用菜单“终端(T) -> 运行任务”,选择Build任务,编译项目,终端子窗口可以看到:

vscode_terminal_build.png

可以看到elfhex文件均成功生成了。

3.3 烧录固件

烧录固件前,需要将开发板链接到电脑,需要注意的是——开发板连接标有“GD-Link”的USB口

VSCode中,使用菜单“终端(T) -> 运行任务”,选择flash任务,终端子窗口可以看到pyocd的烧录进度:

vscode_terminal_flash.png

3.3.1 pyocd烧录报错

使用pyocd pack install命令安装完GD32F427VK支持包后,使用pyocd flash命令烧录时会出现如下报错:

这个报错不影响功能,但是看着比较烦。

在社区HonestQiao大佬的指导下,成功解决了这个问题。问题根因是——在pyocd下载的pack文件内部,svd文件开头多了两个空白字符。

解决方法:

  1. 找到GD32F427VK支持包的3.0.3.pack文件,Windows位于%UserProfile%\AppData\Local\cmsis-pack-manager\cmsis-pack-manager\GigaDevice\GD32F4xx_DFP子目录下;
  2. 将其复制一份,重命名为3.0.3.zip文件,使用压缩解压软件(如WinRAR)将其解压开;
  3. 使用文本编辑器打开SVD\GD32F4xx.svd文件,删除svd开头的两个空白字符;
  4. 重新将所有内容压缩为.zip文件;
  5. 使用重新压缩的zip文件,替换3.0.3.pack文件;

3.4 调试项目

VSCode中,打开某个源码文件,在左侧行号旁边点击可以添加断点,如下图所示:

vscode_breakpoint_add.png

VSCode中,使用菜单“运行(R) -> 启动调试”,开启调试会话,如下图所示:

vscode_debug_session.png

四、参考链接

  1. 【极术社区】【GD32F427开发板试用】macOS/Linux系统开发环境搭建(开发、编译、烧录、调试) : https://aijishu.com/a/1060000...
  2. 【博客园】1-VSCode搭建GD32开发环境: https://www.cnblogs.com/zheng...
  3. 【ARM官网】GNU工具链下载页面: https://developer.arm.com/dow...
  4. 【pyOCD官网】 https://pyocd.io/
  5. 【Python官网】Python下载页面: https://www.python.org/downloads
  6. 【Git官网】Windows版Git下载页面: https://git-scm.com/download/win
  7. 【VSCode官网】VSCode下载页面: https://code.visualstudio.com...
  8. 【TDM-GCC首页】TDM-GCC开源项目: https://jmeubank.github.io/td...
  9. 【Cortex-Debug首页】Cortex-Debug开源项目: https://github.com/Marus/cort...
  10. 【GNU Make首页】GNU Make开源项目首页: https://www.gnu.org/software/...
推荐阅读
关注数
10708
内容数
187
中国高性能通用微控制器领域的领跑者兆易创新GD系列芯片技术专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息