[分享] 在RISC-V上使用RT-Thread完全学习手册(基于龙眼Longan开发板)

Fillmore   2020-12-2 17:50 楼主

RISC-V完全学习手册(基于龙眼Longan开发板)

前言

前段时间本人对RISC-V产品产生了浓厚的兴趣, 希望能够上手一探究竟, 在此背景下, 入手了某宝最便宜的龙眼开发板, 在此分享一下上手过程做抛砖引玉之用. 由于兆易创新RISC-V系列处理器与其现有Arm® Cortex®-M内核产品布局相似, 因此如果您渴望获得该技术的实际操作经验, 兆易创新RISC-V系列处理器是一个很好的开始. 从软件开发人员的角度来看,固件库非常相似.

第一章. 初识龙眼开发板

1. 开发板简介

Longan矽速科技推出的一款极简开发板, 板上搭载的主控芯片GD32VF103CBT6是由兆易创新(GigaDevice)开发的, 基于RISC-V内核 (芯来科技Bumblebee), 可以方便广大学生、工程师和极客爱好者低成本接触新一代的RISC-V处理器,了解其特性.
image.png    

第二章. 初识GD32VF103芯片

1. GD32VF103 数据手册解读

GD32VF103系列MCU全球第一款基于RISC-V内核的32位通用微控制器,适用于工业控制、消费电子、IoT等嵌入式市场应用.

image.png

龙眼板载的GD32VF103CBT6芯片具备以下基本特性:

(来源: GD32VF103数据手册Table 2-2. GD32VF103 devices features and peripheral list)

  • 内核:芯来科技Bumblebee内核
  • 主频:108MHz
  • 内存:内置128KB Flash32KB SRAM
  • 工作电压:2.6~3.6V
  • 外设资源:TimerU(S)ARTI2CSPI/I2SCANUSBFSADCDACEXMCGPIO

GD32VF103系列引脚定义(这里以GD32VF103CBT6LQFP48封装为例):

image.png

(具体引脚的定义参见GD32VF103数据手册Table 2-6. GD32VF103Cx LQFP48 pin definitions)

2. GD32VF103 用户手册解读

系统及存储器架构: 基于32RISC-V处理器, 哈佛架构, 预定义的内存映射和高达4GB的内存访问空间.

image.png

闪存控制器(FMC): 存储了引导装载程(boot loader)的块, 不能被用户编程或擦除.

image.png

电源管理单元(PMU): 功耗设计是 GD32VF103 系列产品比较注重的问题之一. 电源管理单元提供了三种省电模式

  包括睡眠模式, 深度睡眠模式和待机模式. 这些模式能减少电源能耗, 且使得应用程序可以在CPU 运行时间要求、速度

  和功耗的相互冲突中获得最佳折衷.

image.png

 

具体的模式和唤醒机制如下所示:

image.png  

 

备份寄存器(BKP): 位于备份域中的备份寄存器可在 VDD 电源关闭时由 VBAT 供电, 备份寄存器有 4216位(84字节)寄存器可用来存储并保护用户应用数据, 从待机模式唤醒或系统复位也不会对这些寄存器造成影响. 此外, BKP 寄存器也可实现侵入检测和 RTC 校准功能.

 

复位和时钟单元(RCU):

GD32VF103复位控制包括三种控制方式:电源复位、系统复位和备份域复位. 电源复位又称为冷复位, 其复位除了备份域的所有系统. 系统复位将复位除了JTAG控制器和备份域之外的其余部分, 包括处理器内核和外设. 备份域复位将复位备份区域.

时钟控制单元提供了一系列频率的时钟功能, 包括一个内部8M RC振荡器时钟(IRC8M)、一个外部高速晶体振荡器时钟(HXTAL)、一个内部40K RC振荡器时钟(IRC40K)、一个外部低速晶体振荡器时钟(LXTAL)、三个锁相环(PLL)、一个HXTAL时钟监视器、时钟预分频器、时钟多路复用器和时钟门控电路. 

备注: 设备上电后CPU默认选择IRC8M做为系统时钟源.

image.png

 

中断/事件控制器(EXTI):

RISC-V集成了改进型内核中断控制器(ECLIC)来实现高效的异常和中断处理. ECLIC旨在为RISC-V系统提供低延迟、矢量化、 抢占式的中断. ECLIC被激活后,它将包含并替换现有的RISC-V处理器局部中断控制器. 

EXTI触发源包括来自I/O管脚的16根线以及来自内部模块的3根线 (包括LVDRTC闹钟、 USB唤醒).

除了中断, EXTI还可以向处理器提供事件信号. RISC-V内核完全支持等待中断(WFI) ,等待事件(WFE)和发送事件(SEV)指令.

备注: 可以阅读RISC-V的技术参考手册,了解有关ECLIC的更多详细信息.

 

通用输入/输出接口(GPIO):

每个 GPIO 引脚可以由软件配置为输出(推挽或开漏)、输入、外设的备用功能或者模拟模式. 每个 GPIO 引脚都可以配置为上拉、下拉或无上拉/下拉.

 

直接存储器访问(DMA):

DMA 控制器提供了一种硬件的方式在外设和存储器之间或者存储器和存储器之间传输数据,而无需 CPU 的介入,从而使 CPU 可以专注在处理其他系统功能上.

DMA 控制器和 RISC-V 内核共享系统总线. DMA CPU 访问同样的地址空间时,DMA 访问可能会阻挡 CPU 访问系统总线几个总线周期. 总线矩阵中实现了循环仲裁算法来分配 DMACPU 的访问权,它可以确保 CPU 得到至少一半的系统总线带宽.

每个 DMA 通道都有一个专用的中断. 中断事件有三种类型:传输完成,半传输完成和传输错误.

 

其他功能...

3. GD32VF103 内核简单解读

GD32VF103系列MCU是兆易创新(Gigadevice)携手芯来科技(Nuclei System Technology)合作研发并发布的全球一款基RISC-V内核的量产通用MCU产品. MCU中使用的Bumblebee内核是芯来科技针对GD32VF103定制,授权以及提供工具链和技术支持的一款面向物联网及其它超低功耗场景应用自主联合开发的一款商用RISC-V处理器内核.

image.png

(图片来自: https://www.nucleisys.com/product/site/lcxp/)

 

RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)建立的开放指令集架构(ISA), V表示为第五代, 它虽然不是第一个开源的的指令集(ISA),但它很重要,因为它第一个被设计成可以根据具体场景选择适合的指令集的指令集架构. 比如Bumblebee内核就是基于RV32IMAC的指令集.

备注: RISC-V 基金会的网站上下载指令集标准规范https://riscv.org/specifications.

第三章. 初识GD32VF103编程

1. 设置软件开发环境

我选择的是SEGGEREmbedded Studio. 大家可以根据自己的喜好选择其它的开发环境.

1, 登陆官网下载Embedded Studio并完成本地的安装.

image.png

 

 

2, 打开Embedded Studio, 安装GD32V软件包( 可以看到目前支持RISC-V的厂家还不是很多...)

  image.png

 

2, 新建一个工程(选择模板,目标芯片,以及需要添加到工程的文件)

   image.png

  image.png

image.png

3, 编译一下这个工程, 确保配置没有问题.

 

 

image.png

2. 编写代码点亮LED

写代码的时候需要首先查阅龙眼开发板的原理图, 详细了解端口的配置情况.

image.png

 

添加文件到工程(可以参考GD32VF103固件库给出的示例工程).

image.png

 

注意: GD32VF103固件库给出的示例工程不是针对龙眼开发板的, 因此我们需要对代码进行一些必要的修改.

以下是我修改过的文件: gd32vf103v_eval.h,  gd_eval_led_off,  gd_eval_led_on, 设置工程的预编译宏GD32VF103C_START

 

image.png

 

 

3. 下载程序到开发板

可以选择ISP方式下载(需要USB转串口线)或者DFU方式下载(仅需一条USB Type-C数据线), 这里选择使用DFU方式下载.

1) 首先下载官方的DFU工具: https://cn.dl.sipeed.com/LONGAN/Nano/Tools

image.png

2) 解压之后会出现如下2个文件.

image.png

3) 安装驱动程序, 64位和32位之分, 根据电脑配置选择即可.

image.png

4) 运行图形化下载工具 GD32 MCU Dfu Tool.exe, Longan插到电脑, 按住Boot0, 短按Reset, 再松开Boot0, 可以进入DFU模式, 此时可以看到DFU工具识别到GD32VF芯片, 然后选择对应的固件文件, 点击OK, 即可进行烧录.

image.png

注意: 烧录完成之后不会自动复位, 需要在上面的DFU工具中选择Leave DFU, 查看运行效果.

 

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复