1.1 ubuntu环境下搭建gd32vf103
1 资料下载
1.1 芯片介绍
GD32VF103系列MCU是基于RISC-V内核的32位通用微控制器,具备均衡的处理效能和系统资源,适用于工业控制、消费电子、新兴IoT等嵌入式市场应用。
内核:芯来科技Bumblebee内核(RV32IMAC)
主频:108MHz
内存:内置16KB~128KB Flash、6KB~32KB SRAM
工作电压:2.6~3.6V
外设资源:Timer(高级16位定时器,通用16位定时器)、U(S)ART、I2C、SPI/I2S、CAN、USBFS、ADC(16路外部通道)、DAC、EXMC、GPIO
1.2 开发板介绍
Longan Nano 是基于兆易创新(GigaDevice)RISC-V32位内核的GD32VF103CBT6单片机的极简开发板。
片上资源:128K flash, 32K ram
开发板资料:
http://dl.sipeed.com/shareURL/LONGAN/Nano
1.3 源码下载
源码使用芯来科技的Nuclei SDK
https://gitee.com/Nuclei-Software/nuclei-sdk
1.4 其他资料
gd32vf103官网介绍:
https://www.gigadevice.com/zh-hans/products/microcontrollers/gd32/risc-v/mainstream-line/gd32vf103-series/
芯片及内核介绍:
https://www.rvmcu.com/site/gd32vf103/
Nuclei Processor Core资料
https://www.rvmcu.com/site/nuclei_n_isa/
2 交叉编译工具链
交叉编译工具使用芯来科技的工具链
https://www.nucleisys.com/download.php
选择RISC-V GNU Toolchain Centos/Ubuntu x86-64
3 下载工具
ubuntu下使用dfu-util
https://sourceforge.net/projects/dfu-util/files/
这选择最新的版本dfu-util-0.11-binaries.tar.xz
4 环境搭建
在电脑的合适位置创建3个文件夹分别是
nuclei-sdk:芯来sdk
compile_tools:交叉编译工具链
download_tools:ubuntu下的下载工具,这里只拷贝了dfu-util中的linux-amd64
进入nuclei-sdk目录
创建文件setup_config.sh,写入内容
NUCLEI_TOOL_ROOT=/xxx/compile_tools
注意这里要写绝对路径,相对路径编译会报错,找不到gcc…
注意这里不要使用开发板网站上提供的dfu-util,那个版本是0.9,测试发现下载后没有反应
5 编译
5.1 编译步骤
- source setup.sh
- which riscv-nuclei-elf-gcc openocd make rm
第2条命令主要是测试是否有相关工具,这里openocd不是必须的 - make PROGRAM=application/baremetal/helloworld SOC=gd32vf103 BOARD=gd32vf103c_longan_nano all
这里会生成helloworld.elf文件
5.2 生成bin文件
对于dfu-util需要下载的是bin文件,所以修改Makefile生成bin文件
make PROGRAM=application/baremetal/helloworld SOC=gd32vf103 BOARD=gd32vf103c_longan_nano bin
这样就可以生成helloworld.bin文件
6 下载
- 进入下载模式
按住boot0按键,按一次reset键,然后boot0松开就进入了dfu模式 - 使用dfu-uitl下载
sudo …/download_tools/dfu-util -s 0x08000000 -D application/baremetal/helloworld/helloworld.bin
会出现下面的信息,表示下载成功
Found GD32VF103, which reports a bad page size and count for its internal memory.
Fixed layout based on part number: page size 1024, count 128.
Downloading element to address = 0x08000000, size = 9296
Erase [=========================] 100% 9296 bytes
Erase done.
Download [=========================] 100% 9296 bytes
Download done.
File downloaded successfully
- 下载完成后连接串口,波特率115200,按一下reset键
可以看到打印信息
Hello World From Nuclei RISC-V Processor!
7 其他
这里记录一下偷懒方法
使用脚本进行编译下载
- 编译
创建build.sh 写入以下内容:
make PROGRAM=application/baremetal/$1 SOC=gd32vf103 BOARD=gd32vf103c_longan_nano $2
后面编译可以这样
./build.sh helloworld - 下载
创建download.sh 写入以下内容:
sudo …/download_tools/dfu-util -s 0x08000000 -D $1
下载可以这样
./download.sh application/baremetal/helloworld/helloworld.bin