【沁恒 CH32V208 开发板免费试用】CH32V208开发环境搭建(基于VS Code) - RISC-V MCU技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

[文章]

【沁恒 CH32V208 开发板免费试用】CH32V208开发环境搭建(基于VS Code)

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平台上才能运行。

做过嵌入式开发的朋友都知道,在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。

C:\Users\BruceOu\Desktop\20210829-stm32-t34.png

嵌入式开发流程大致就是在宿主机完成目标的开发工具,使用功能交叉编译工具生成固件,将固件烧写到目标机,在开发初期,还需要在线调试等工作,这就需要诸如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/

16815618466664eayjpn4j1

根据自己系统下载相应的软件包,笔者使用的是Windows 10 64位的。

下载后解压,并把安装目录下的bin文件夹添加到环境变量:

1681561847080ococ3rnqmm

然后在命令窗口中输入下面的命令验证安装是否成功:

# riscv-none-embed-gcc -v

1681561847518hym0dibtbg

如果有信息输出,那就是装好了。

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/

16815618480209xgznjv8vu

下载make-4.1-2-without-guile-w32-bin.zip 文件。

把该文件进行解压,把解压出来的文件全部拷贝的git的安装目录下:

C:\Program Files\Git\mingw64

把文件夹进行合并,如果跳出来需要替换的文件要选择不替换。

1681561848289f11haxy7vw

这样在git bash窗口下就可以执行make了。

1681561848606zujo7c85ni

没有安装Git先安装Git工具。

Git下载地址:https://git-scm.com/download/win

1681561848961e84vjvq1ro

1.3 Visual Studio Code安装与配置

1. Visual Studio Code安装

根据使用的操作系统,直接从 Visual Studio Code 官网下载安装最新版。

下载地址:https://code.visualstudio.com/Download

1681561849293gepupqxs04

安装很简单,这里就不在赘述了。

2.插件安装

打开 VS Code,点击 “Extensions” 图标,搜索 C/C++ 插件(由 Microsoft 提供),点击安装。

1681561849658cuyr6bs5ey

安装中文插件。

16815618502964m67k318if

重启应用,Visual Studio Code就是中文界面了。

16815618507343e5wgdz33h

1.4 OpenOCD安装

OpenOCD是用于对RISC-V进行下载仿真的工具,是一个开源软件包。

下载地址:https://gnutoolchains.com/arm-eabi/openocd/

下载后解压即可。

C:\Users\BruceOu\Desktop\1.png

打开share/openocd/scripts,里面有很多提前写好的配置文件:

1681561851434y0owhxkfog

其中interface目录下都是接口相关配置文件,例如jlink.cfg,stlink.cfg;target目录下都是芯片相关的配置文件。

然后配置下环境变量:

1681561851790i6xahn3hvb

然后在命令窗口中输入下面的命令验证安装是否成功:

1681561852178aqzatutz11

表示安装成功。

1.5 编译

使用make编译下前文新建的工程,编译通过显示如下:

$ make -j12 all

1681561852521gmpw37mz6e

也可以编译成功。

16815618528138onv9wcw9g

根据自己喜好吧,但是后面的方法需要安装Git和make工具。

1.6 下载

1.6.1OpenOCD下载

首先打开OpenOCD服务。

$ openocd -f ./tools/wch-riscv.cfg

1681561853124w4g8y2bt1n

打开另一个终端:

$ telnet localhost 4444

等待连接成功。

1681561853496a41natxzoi

接下来就可以烧写程序了。

$ program build/ch32v208wbu6.elf verify exit

16815618537867tn050hnrd

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工具下载程序,这里需要根据需求选择相应的配置方案。

1681561854118az5hpx1ueq

【注】如果烧写不成功,可以尝试点击‘解除保护’。

1681561854625px3qz2q1s9

第三步:切换启动模式,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

1681561855196x8xh3292i6

关于GDB的使用请看笔者文章:

https://bruceou.blog.csdn.net/article/details/88634967

接下来需要连接openocd服务,openocd给GDB的TCP/IP端口是3333。

# target remote localhost:3333

16815618555965a2k27o5w4

接下来和在Linux中调试一样。

在 gdb 中键入"l"(list)就可以查看所载入的文件,如下所示。

1681561855968hokgyqekt0

自行参考笔者关于GDB的博文去调试吧。

更多回帖

×
发帖