RV-STAR是一款基于GD32VF103 MCU的RISC-V评估开发板,提供了板载调试器、Reset和Wakeup用户按键、RGB LED、USB OTG,以及EXMC、Arduino和PMOD扩展接口等资源。
本教程以点亮RV-STAR开发板上的板载LED为目标,从工具安装开始一步一步详细介绍了VSCode环境下的用PlatformIO IDE进行RISC-V嵌入式开发的方法。
本教程以板上按键控制点亮RV-STAR开发板上的LED为目标,从IDE的下载安装开始详细介绍了使用SEGGER Embedded Studio+蜂鸟调试器进行RISC-V嵌入式开发的方法。
本教程以板上按键控制点亮RV-STAR开发板上的LED为目标,从IDE的下载安装开始详细介绍了使用SEGGER Embedded Studio+JLink调试器进行RISC-V嵌入式开发的方法。
本教程以板上按键控制点亮RV-STAR开发板上的LED为目标,从IDE的下载安装开始详细介绍了使用Nuclei Studio+蜂鸟调试器进行RISC-V嵌入式开发的方法。
本教程以RV-STAR开发板上使用JLink调试器下载运行helloworld并输出到RTT Viewer为目标,从IDE的下载安装开始详细介绍了使用Nuclei Studio+JLink进行RISC-V嵌入式开发的方法。
最近发布的202102版本的Nuclei Studio IDE增加了QEMU仿真器,可支持RV-STAR开发板的仿真,本教程旨在介绍如何使用该仿真环境进行RISC-V嵌入式开发。
相对于抽象层次更高的C/C++语言,汇编语言是一门抽象层次比较低的语言,面向的是最底层的硬件,直接使用处理器的基本指令。虽然现在大多数的程序设计已经不再使用汇编语言,但是在一些特殊的场合,譬如底层驱动、引导程序、高性能算法库等领域,汇编语言还经常扮演着重要的角色。
前篇介绍了如何编写RISC-V汇编语言程序,但是在实际工程中,目前的编程主要使用C/C++这样的高级语言,因此使用汇编语言的情形更多是将汇编程序嵌入C/C++语言编写的程序中。
在Windows环境下,使用RVSTAR开发板进行下载运行时,若出现OpenOCD找不到设备及串口无法识别,该如何处理?
芯来科技N级别内核支持内部中断和外部中断,其中内部中断包括计时器中断和软件中断。这里我们以Nuclei SDK中demo_timer为例,简单讲解内部中断的非向量处理模式。
GPIO是通用输入输出接口(General Purpose Input Output)的简称,是微控制器最基本也是最常用的外设,本期内容将介绍GPIO的基本原理,然后通过「点亮LED」与「按键控制LED」两个小实验带领大家了解GPIO基本输出与输入功能的使用方法。
外部中断是单片机实时地处理外部事件的一种机制。具体指的是,当某种外部事件发生时,单片机的中断系统迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行下去。这里我们以Nuclei Board Labs中exti_key_interrupt应用程序为例,简单讲解外部中断的非向量处理模式。
串行通信(Serial Communication)是一种常见的通信方式,指的在发送或接收数据时逐位传输,一次只传输一位;与此相对的是并行通信,一次可传输多个数据位。相比于并行通信,串行通信虽然数据传输速率较慢,但其占用资源少、成本低、实现简单,因此在嵌入式系统中应用十分广泛,而UART(通用异步收发器)则是众多串行通信协议中最典型的一种。本期内容将通过PC主机与RV-STAR开发板间的三个通信小实验,简单讲解UART串口通信的应用方法。
上期内容讲解了UART串口通信的应用方法,本期内容的主角是另一种嵌入式系统中常用的通信协议——I²C(Inter-Integrated Circuit)。本期内容将带领大家使用RV-STAR开发板来控制OLED液晶屏显示不同的字符和图像,从而初步了解I²C总线通信的应用方法。
SPI是一种同步、高速、全双工的通信总线,全称为Serial Peripheral Interface(串行外设接口),由Motorola公司提出。在嵌入式系统设计时,常使用SPI接口连接一些传感器、外接存储器或通信模组,本期内容将通过RV-STAR和Arduino UNO间的SPI通信例程,带领大家了解SPI的应用方法。
PWM(脉冲宽度调制)可用于电机的调速、LED的亮度调节、无源蜂鸣器输出音调等,是嵌入式系统开发中经常采用的方法。本期内容以一个用无源蜂鸣器播放音乐的例子,带领大家了解使用定时器PWM输出功能的方法。
上期内容我们介绍了定时器的PWM输出功能,本期内容来介绍一下定时器的正交译码器功能(编码器接口)。正交译码器是和正交编码器外设配合使用的,可对编码器输入的脉冲进行计数进而实现速度测量,本期内容我们通过一个使用旋转编码器的计数小实验,来初步了解它的应用方法。
在之前的内容里,我们使用过UART、SPI、I2C等接口进行过数据传输,在处理通信数据时,几乎都是在主程序或中断服务程序中进行数据的转存,这样耗费了大量的CPU时间。幸运的是,微控制器的设计者也考虑到这个问题,设计出了DMA(Direct Memory Access,直接存储器访问)传输功能,使得数据可以从一个地址空间复制到另一个地址空间,而不经过CPU,从而让CPU专注在其他功能上。本期内容我们以UART的DMA传输为例,简单介绍DMA的应用方法。
在之前的内容里,我们介绍了很多通信协议,不过仅讲解了数据的收发方法,而在实际的通信系统中,除了要实现收发外,还要尽量保证数据尽量不出差错。为尽量提高接收方收到数据的正确率,在接收数据时要对数据进行差错检测,检测的方式有很多种,常见的有奇偶校验、海明校验和CRC(循环冗余校验)。其中CRC的检错正确率、速度和成本等方面都具有优势,也被广泛应用于计算机网络通信中,本期内容我们就通过一个小实验,带领大家了解GD32VF103片内CRC单元的应用方法。
实时时钟(Real-Time Clock,RTC)常用于制作时钟日历。RTC电路分属于两个电源域:备份域和VDD电源域。RTC的核心计数部分在备份域中,可在VDD断电VBAT供电时保持RTC的计数,当系统复位或者从待机模式唤醒时,RTC的设置和时间也都保持不变。本期内容将通过一个显示当前时间的例程带领大家初步了解GD32VF103的RTC外设的使用方法。
看门狗定时器(Watch Dog Timer,WDT或WDGT),是一种微控制器为了防止程序“跑飞”而设计的一种硬件机制,让系统在因电磁干扰或者软件错误而当机的时候可以复位系统,从而具备自修复的能力。本期内容将带领大家了解看门狗的基本原理和RV-STAR的独立看门狗(FWDGT)的使用方法。
ADC(Analog to Digital Converter,模数转换器)是指将连续变化的模拟信号转换为离散的数字信号的电子器件。ADC可以将真实世界的模拟信号,例如温度、压力、声音等,转换成更容易储存、处理和发射的数字形式,因此被广泛应用在各种产品中。本期我们将通过一个读取电位器电压值的小实验来了解RV-STAR开发板上ADC的使用方法。
上期内容我们介绍了可以将模拟信号转化为数字信号的ADC,其实还有另一种与ADC相对的,能够将数字信号转化为模拟信号输出的外设——DAC(Digital to Analog Converter,数字/模拟转换器)。这期内容我们将通过一个用旋钮控制LED亮度的小实验带领大家了解RV-STAR开发板上的DAC的基础用法。
低功耗设计是嵌入式系统中一个很重要的设计要素,尤其对于使用电池供电的设备,让微控制器主动进入低功耗模式可以有效降低系统整体的功耗,同时还能有效降低外部干扰带来的影响。RVSTAR使用的GD32VF103微控制器提供了电源管理单元(Power Management Unit,PMU),它提供了三种省电模式,本期内容将介绍其中一种模式的应用,帮助大家学习PMU的用法。