1 基于VS Code开发
1.1 GCC编译工具安装
1.编译工具简介
编译代码需要编译器,Linux系统的编译器是GCC,而Windows的C/C++编译器是Microsoft Visual C++,那么要想在Windows也能GCC等一系列编译工具,就需要安装MinGW。
MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。
MinGW 是用于进行 Windows 应用开发的 GNU 工具链(开发环境),它的编译产物一般是原生 Windows 应用,虽然它本身不一定非要运行在 Windows 系统下(是的 MinGW 工具链也存在于 Linux、BSD 甚至 Cygwin 下)。说的通俗点,MinGW就是你在Windows下使用GNU工具链的一个编译工具。
MinGW编译的程序只能在X86上运行,不能运行在嵌入式的硬件平台,因为嵌入式平台大都是ARM体系结构,因此这就需要一个在Windows环境下能使用GNU编译ARM体系结构的编译工具,这也就是交叉编译工具。
所谓交叉编译工具就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行。
做过嵌入式开发的朋友都知道,在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。
嵌入式开发流程大致就是在宿主机完成目标的开发工具,使用功能交叉编译工具生成固件,将固件烧写到目标机,在开发初期,还需要在线调试等工作,这就需要诸如J-link等调试工具。
GD32F103VF属于RISC-V体系结构,在Windows环境下开发也需要借助交叉编译工具。
xPack GNU RISC-V Embedded GCC就是一个基于RISC-V的交叉编译工具链,而且还是开源的,适用于RISC-V系列处理器,不仅适用于Windows,还适用于Linux上的交叉编译。
2.编译工具安装
好了,直接看下载地址吧。
下载地址:https://github.com/xpack-dev-tools/riscv-none-embed-gcc-xpack/releases/
根据自己系统下载相应的软件包,笔者使用的是Windows 10 64位的。
下载后解压,并把安装目录下的bin文件夹添加到环境变量:
然后在命令窗口中输入下面的命令验证安装是否成功:
# riscv-none-embed-gcc -v
如果有信息输出,那就是装好了。
1.2 make工具安装
如果需要编译代码,则需要使用Makefile 来编译工程,那么就需要一个工具来识别Makefile文件,也就是make工具,在Linux中已经自带make了,在Windows就需要安装make工具。
在安装make工具之前,先来看看什么是makefile?Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些文件需要先编译,那些文件需要后编译,那些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。
本文的make工具是依赖Git工具的,我相信很多朋友都用过Git,但是很少使用Git的make等功能。
Git的bash实际上也就是一个mingw,是可以支持部分Linux指令的,但是只有少部分。在编译代码的时候经常会使用make命令反而在bash下默认是不支持的。
Make工具下载地址:https://sourceforge.net/projects/ezwinports/files/
下载make-4.1-2-without-guile-w32-bin.zip 文件。
把该文件进行解压,把解压出来的文件全部拷贝的git的安装目录下:
C:\Program Files\Git\mingw64
把文件夹进行合并,如果跳出来需要替换的文件要选择不替换。
这样在git bash窗口下就可以执行make了。
没有安装Git先安装Git工具。
Git下载地址:https://git-scm.com/download/win
1.3 Visual Studio Code安装与配置
1. Visual Studio Code安装
根据使用的操作系统,直接从 Visual Studio Code 官网下载安装最新版。
下载地址:https://code.visualstudio.com/Download
安装很简单,这里就不在赘述了。
2.插件安装
打开 VS Code,点击 “Extensions” 图标,搜索 C/C++ 插件(由 Microsoft 提供),点击安装。
安装中文插件。
重启应用,Visual Studio Code就是中文界面了。
1.4 OpenOCD安装
OpenOCD是用于对RISC-V进行下载仿真的工具,是一个开源软件包。
下载地址:https://gnutoolchains.com/arm-eabi/openocd/
下载后解压即可。
打开share/openocd/scripts,里面有很多提前写好的配置文件:
其中interface目录下都是接口相关配置文件,例如jlink.cfg,stlink.cfg;target目录下都是芯片相关的配置文件。
然后配置下环境变量:
然后在命令窗口中输入下面的命令验证安装是否成功:
表示安装成功。
1.5 编译
使用make编译下前文新建的工程,编译通过显示如下:
$ make -j12 all
也可以编译成功。
根据自己喜好吧,但是后面的方法需要安装Git和make工具。
1.6 下载
1.6.1OpenOCD下载
首先打开OpenOCD服务。
$ openocd -f ./tools/wch-riscv.cfg
打开另一个终端:
$ telnet localhost 4444
等待连接成功。
接下来就可以烧写程序了。
$ program build/ch32v208wbu6.elf verify exit
1.6.2 WCHISPTool下载
使用 WCHISPTool 工具对芯片进行下载,支持 USB 和串口两种下载方式。USB 管脚为 PA11(DM)、PA12(DP)或 PB6(DM)、PB7(DP),串口管脚为 PA9(TX)、PA10(RX)。下载流程为:
(1) BOOT0 接 VCC,BOOT1 接地,通过串口或者 USB 连接 PC;
(2) 打开 WCHISPTool 工具,选择相应下载方式,选择下载固件,勾选芯片配置,点击下载;
(3) BOOT0 接地,重新上电,运行 APP 程序。
具体方法如下:
第一步:切换启动模式,BOOT0 = 1,BOOT1 = 0
第二步:通过WCHISPTool工具下载程序,这里需要根据需求选择相应的配置方案。
【注】如果烧写不成功,可以尝试点击‘解除保护’。
第三步:切换启动模式,BOOT0 = 0,BOOT1 = 0,复位即可运行程序。
稍等片刻即可下载完成,复位即可看到LED不断闪烁。
1.7 调试
打开OpenOCD服务。
$ openocd -f tools/wch-riscv.cfg
openocd运行时,这个终端就被占用了因此还需要再开一个终端。
GDB也属于GNU项目的一部分,跟在Linux上调试是一样的,只是这里使用的是交叉编译工具中的GDB。
# riscv-none-embed-gdb build/ch32v208wbu6.elf
关于GDB的使用请看笔者文章:
https://bruceou.blog.csdn.net/article/details/88634967
接下来需要连接openocd服务,openocd给GDB的TCP/IP端口是3333。
# target remote localhost:3333
接下来和在Linux中调试一样。
在 gdb 中键入"l"(list)就可以查看所载入的文件,如下所示。
自行参考笔者关于GDB的博文去调试吧。