- 博客(45)
- 收藏
- 关注
原创 RISC-V MCU 应用教程之RCC
CH32V307提供了3钟复位形式:电源复位系统复位后备区域复位产生电源复位的条件为:上电/掉电复位(POR/PDR复位)从待机模式下唤醒电源复位发生时,将复位除了备份区域的所有寄存器。PC指针固定到0x00000000。:::tip此时的后备寄存器需由VBAT供电,如果同VDD供电,后备区域寄存器将同步复位。:::产生系统复位的条件为:NRST引脚上的低电平信号(外部复位)窗口看门狗计数终止(WWDG复位)独立看门狗计数终止(IWDG复位)软件复位(SW复位)低功耗管理复位:::tip通过配置 寄存器
2022-07-12 09:09:07 624 1
原创 RISC-V MCU 应用教程之RTC自动唤醒
以RISC-V MCU CH32V307为例。 RTC,Real Time Clock,实时时钟,可以在不需要外部中断的情况下唤醒低功耗模式下的MCU。RTC提供的定时闹钟事件,可以周期性的唤醒MCU。RTC唤醒配置步骤如下:配置RTC时钟配置外部中断线17为上升沿触发开启RTC闹钟事件中断:::tip详细的 RTC 配置可参考 RTC章节::: 参考代码 - RTC唤醒停止模式 参考代码 - RTC唤醒待机模式...
2022-07-11 09:05:45 816
原创 RISC-V MCU应用教程之低功耗待机模式
以RISC-V MCU CH32V307为例。待机模式(Standby),芯片的运行功耗最低。该模式下,内核处于深睡眠模式(Sleep Deep), 电压调节器进入停机模式。待机模式唤醒后,MCU将执行电源复位。该模式下的唤醒时间约 8.9ms (LDO稳定时间 + HSI RC时钟唤醒 + 代码加载时间)。此模式下的睡眠电流约为1~2uA。可以通过配置寄存器控制该模式下部分SRAM不掉电,使用变量数据保持,睡眠电流增加约 1.5~2uA 配置方式如下:进入待机模式步骤如下:配置 PFIC_SCTLR 系统
2022-07-01 17:48:13 522
原创 RISC-V MCU应用教程之低功耗之停止模式
以RISC-V MCU CH32V307为例停止模式是在内核深睡眠模式(SLEEPDEEP)基础上结合了外设的时钟控制机制,并可以让电压调节器运行在低功耗模式。此模式下,高频时钟(HSE/HSI/PLL)被关闭,SRAM和寄存器内容保持,IO引脚状态保持。该模式唤醒后,系统可继续运行,特别注意的是,此时默认系统时钟为内部 8MHz HSI,如有需要,可调用 重新初始化时钟 。停止模式下可工作的模块:独立看门狗(IWDG)实时时钟(RTC)低频时钟(LSI/LSE)该模式下的唤醒时间为 HSI RC唤醒时间
2022-06-30 17:47:23 436
原创 RISC-V MCU 应用教程之低功耗之睡眠模式
以RISC-V MCU CH32V307为例睡眠模式下,所有的IO引脚都保持它们在运行模式时的状态。所有的外设时钟都正常工作。进入睡眠前,尽量关闭无用的外设时钟,以降低功耗。该模式唤醒所需的时间最短,几乎不耗时间,约 2~3 us。此模式下,以144MHz运行时,使能所有外设时的睡眠电流约15.1mA,关闭所有外设的睡眠电流约4.1mA(除了唤醒中断引脚时钟和电源模块时钟)。配置内核寄存器 控制位 执行或指令配置内核寄存器 控制位 执行睡眠指令时,配置 控制位 ,系统唤醒后控制器离开中断服务函数时,继续
2022-06-29 17:18:31 735
原创 RISC-V MCU 应用教程之后备数据寄存器
CH32V307后备寄存器(BKP)提供了10个16位的通用数据寄存器(BKP_DATARx),可以用来存储20个字节的用户数据。BKP_DATARx 后备数据寄存器在VDD掉电时,可依靠VBAT电源保持数据。当系统在待机模式下被唤醒,或系统复位或电源复位时,这些数据也不会被复位。BKP_DATARx 后备数据寄存器复位条件:后备域复位(BDRST)侵入引脚事件复位(需开启侵入检测功能,引脚为PC13)微控制器复位后对后备寄存器和RTC 的访问被禁止,需通过以下操作开启对后备寄存器的访问:置寄存器RCC_A
2022-06-23 17:43:26 210
原创 RISC-V MCU 电源系统概述
1. 电源结构CH32V307供电结构如下图所示::::tip为了提高AD等模拟部分的精度,可以使用独立的电源为VDDA和VSSA供电。::::::tip:::2. 电源管理2.1 上电复位和掉电复位系统内部集成了上电复位POR 和掉电复位PDR 电路。当芯片供电电压VDD 和VDDA 低于对应门限电压时,系统被相关电路复位,无需外置额外的复位电路。上电门限电压 VPOR 和掉电门限电压 VPDR 的参数请参考对应的数据手册。2.2 可编程电压监测器(PVD)可编程电压监测器 PVD,主要被用于监控系统主电
2022-06-20 09:22:49 431
转载 RISC-V MCU堆栈机制
在嵌入式的世界里,堆栈通常指的是栈,严格来说,堆栈分为堆(Heap)和栈(Stack)。RISC-V MCU的堆栈大小通常在ld链接脚本中定义,关于ld链接脚本可查看该文:RISC-V MCU ld链接脚本说明。以RISC-V MCU CH32V103为例,在其ld链接脚本中,定义了_stack_size符号,值为 2048 Byte,后面使用该值在.stack段中分配栈空间,可更改此值调整栈空间大小。CH32V103 的RAM共20KB,除去程序用到的data、bss段,剩下空间即为动态数据段,供
2022-06-16 09:15:21 4020
原创 RISC-V MCU 应用教程之ADC(一)
ADC,Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。ADC是MCU的重要外设,主要用于传感器的数据采集,常见的ADC类型一般为逐次逼近型。以沁恒RISC-V MCU CH32V307VCT6为例,内嵌2个12位的ADC模块,共有多达16和外部通道和2个内部通道。CH32V307VCT6 ADC通道对应的引脚如下通道ADC1 / ADC20PA01PA12PA23PA34PA45PA56PA67PA78P
2022-06-15 18:30:00 531
转载 RISC-V MCU将常量定义到指定的Flash地址 -- 以CH32V103为例
Keil MDK开发ARM 内核的MCU时,将常量定义到指定的Flash地址中,使用 _attribute_( at(绝对地址) )即可,如:沁恒RISC-V MCU ,通过Mounriver Studio(MRS)开发时,暂时不支持_attribute_( at(绝对地址) )命令。可通过如下步骤实现:如需将变量定义到Flash的最后,将此段添加到 .text段后面,注意指定的Flash地址要大于程序编译大小。查看map文件,常量地址如下:sections .flash_test_add
2022-06-09 08:45:00 915 1
原创 RISC-V MCU指定变量复位时保持(除掉电复位)
RISC-V MCU开发过程中,需要指定一些变量在MCU复位时能够保持当前变量的值,以CH32V307为例,具体方法如下: 更改ld文件,将指定变量存放到对应的段中ld文件添加段变量添加自定义段的属性描述,测试代码如下...
2022-06-08 14:11:00 307
原创 RISC-V MCU 外部晶振引脚配置为普通io
以沁恒RISC-V MCU CH32V203C8T6为例,当使用内部8MHz高频晶振时,其外接高频晶振的引脚可以配置为普通io。具体方法如下: 打开PD0,PD1映射然后就可以正常配置PD0、PD1两个引脚。Tips:外部低频时钟输入引脚PC14和PC15引脚通过电源开关进行供电,而这个电源开关只能够吸收有限的电流(3mA)。因 此这三个引脚作为输出引脚时有以下限制:在同一时间只有一个引脚能作为输出,作为输出脚时只能工 作在2MHz模式下,最大驱动负载为30pF,并且不能作为电流源(如驱动
2022-06-02 17:39:42 911
原创 RISC-V MCU 调试接口配置为普通io
以沁恒RISC-V MCU CH32V203C8T6为例,其配备了两线仿真调试接口, 用于在线下载和仿真调试。可以看出,上电复位后,PA13、PA14默认的功能为调试接口,方面工程师进行开发调试。如果在项目应用在,功能丰富,io口不够用的情况下,可以不使用调试功能,将其两个引脚配置为普通io用,具体方法如下:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABL
2022-06-01 17:50:49 296
转载 RISC-V MCU 应用笔记之最易变的关键词 - volatile
1、volatile关键字volatile 是易变的、不稳定的意思。和const一样是一种类型修饰符,volatile关键字修饰的变量,编译器对访问该变量的代码不再进行优化,从而可以提供对特殊地址的稳定访问。以前只是听过这个关键词,知道它的存在,但从来没用过。用此文记录下在开发RISC-V MCU过程中,未用volatile修饰标志位变量,编译器进行优化,导致程序运行异常。2、Demo开发中,常见的需求,主循环中根据中断中修改的标志位,运行不同的功能,#include "debug.h"
2022-05-27 17:49:30 293
原创 RISC-V MCU低功耗场景的应用分析
CH32V203系列是基于32位RISC-V内核设计的工业级增强型低功耗通用微控制器,高性能,最高支持144MHz系统主频,低功耗,运行功耗低至45uA/MHz。本文已CH32V203为例,聊聊MCU的低功耗及应用场景。一、低功耗产品低功耗产品一般可配置为两类运行状态: 1.平时低功耗,使用时唤醒;2.平常断电,使用时上电。处在第2 类运行状态的产品,其实现低功耗的原理是减小电源供电时间,这类产品主控MCU唤醒的方法可由外挂低功耗协处理单元(LPCU)控制的供电电路来实现。高性能MCU产品通
2022-05-27 09:55:01 525
原创 高速USB2.0(480Mbps)JTAG调试器单芯片方案
基于RISC-V MCU CH32V305/CH32V307系列MCU实现的USB2.0(480Mbps)转JTAG接口方案,可用于调试或下载CPU、DSP、FPGA和CPLD等器件。方案构成上只需一颗CH32V305/307芯片,无需CPLD和USB PHY辅助芯片。方案结构框图如下所示:与市面上的下载调试器进行下载对比:本方案为开源项目,提供源码及驱动,详细资料参考:https://github.com/openwch/usb-jtag-spi...
2022-05-24 17:56:56 503
转载 RISC-V MCU ld链接脚本说明
1、什么是ld链接脚本?通常,程序编译的最后一步就是链接,此过程根据“*.ld”链接文件将多个目标文件(.o)和库文件(.a)输入文件链接成一个可执行输出文件(.elf)。涉及到对空间和地址的分配以及符号解析与重定位。而ld链接脚本控制这整个链接过程,主要用于规定各输入文件中的程序、数据等内容段在输出文件中的空间和地址如何分配。通俗的讲,链接脚本用于描述输入文件中的段,将其映射到输出文件中,并指定输出文件中的内存分配。2、ld链接脚本的主要内容2.1 链接配置(可选)常见的配置有
2022-05-20 17:31:55 992
转载 RISC-V MCU gp全局指针说明
gp,globalpointer,全局指针寄存器,RISC-V 32个寄存器之一,为了优化±2KB内全局变量的访问。gp寄存器在启动代码中加载为__global_pointer$的地址,并且之后不能被改变。linker时使用__global_pointer$来比较全局变量的地址,如果在范围内,就替换掉lui或puipc指令的 absolute/pc-relative寻址,变为gp-relative寻址,使得代码效率更高。该过程被称为linker relaxation(链接器松弛),也可以使用-Wl.
2022-05-20 11:33:41 742
原创 RISC-V MCU应用教程之DMA(外设到存储器)
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章将讲解DMA外设到存储器传输方式。使用串口1作为外设,通过串口调试助手等向开发板发送数据,数据会被返回给开发板并通过串口调试助手显示。1、DMA简介及相关函数介绍关于D
2022-04-25 10:38:55 321
原创 RISC-V MCU应用教程之DMA(存储器到外设)
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。关于DMA,具有三种数据传输方式:存储器到存储器、存储器到外设、外设到存储器。前面已讲解过关于存储器到存储器数据传输方式,本章将讲解存储器到外设的传输方式以及在下一章将会讲解外设
2022-04-22 08:53:03 398
转载 RISC-V MCU应用方案之Little VGL(LVGL)移植(二)
一、下载需要的移植库及开发环境1. 下载LVGL主代码+Demo代码,防止GitHub地址更换,请直接访问LVGL官网地址:LVGL官网直通GitHub。我们需要下载LVGL移植库与demo例程两个文件。点击GitHub小黑猫图标来到右上方页面,点击master选择release/v7版本。点击左上方蓝色lvgl,进入到左下方页面,下拉找到lv_demos,进入下载release/v7版本。(暂没有试过其他版本,读者可自行尝试,两个文件版本号要保持一致)2. LVGL为了保持移植的通用性,.
2022-04-14 13:40:43 861
原创 RISC-V MCU应用教程之读写内部Flash
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程将通过程序代码进行内部FLASH读写操作。1、CH32V103内部FLASH简介及相关函数介绍CH32V103芯片含有一个内部FLASH,其存储数据在掉电后不会丢失,
2022-04-14 11:14:30 527
转载 RISC-V MCU应用方案之Little VGL(LVGL)移植(一)
一、Little VGL(LVGL)图形库简介1. LVGL是一个开源图形库,提供完善的GUI开发组件,具有易于使用的图形元素,绚丽的界面和占用内存低等特点。LVGL官网2. 几乎所有的MCU都能够支持LVGL的运行,显然您的MCU至少要满足以下参数:1.16, 32 或 64 位微控制器或处理器Clock: >=16MHz主频Flash/ROM:至少> 64 kB (> 180 kB 可运行大部分显示库组件)Stack: 至少> 2kB (推荐> 8 kB)
2022-04-11 09:26:11 1457
原创 RISC-V MCU应用教程之触摸按键
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程使用CH32V103开发板的触摸按键TK1进行触摸按键检测,并将检测信息通过串口调试助手打印显示。1、TKEY简介及相关函数介绍1、TKEY_V 开启TKEY_V
2022-04-02 16:46:52 4205
原创 RISC-V MCU应用教程之PWR停止模式
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程主要讲述如何控制CH32V103进入停止模式以及对其进行唤醒操作。1、PWR-停止模式简介及相关函数介绍停止模式是在内核的深睡眠模式(SLEEPDEEP)基础上结合
2022-04-01 17:28:25 354
原创 RISC-V MCU应用教程之PWR待机模式
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程主要讲述如何控制CH32V103进入待机模式以及对其进行唤醒操作。1、PWR-待机模式简介及相关函数介绍待机模式在某些指定的唤醒条件下退出后,微控制器将被复位,并且执行
2022-03-30 17:25:55 172
原创 RISC-V MCU应用教程之PWR睡眠模式
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程主要讲述如何控制CH32V103进入睡眠模式以及对其进行中断唤醒操作。1、PWR-睡眠模式简介及相关函数介绍在系统复位后,微控制器处于正常工作状态(运行模式),此时可以
2022-03-25 17:02:49 417
原创 RISC-V MCU应用教程之RCC
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程为MCO时钟输出,主要通过CH32V103 PA8引脚对外提供时钟,相当于一个有源晶振。1、RCC简介及相关函数介绍RCC:复位与时钟控制器(Reset Clock
2022-03-24 17:07:07 499
原创 RISC-V MCU应用教程之PWM输出
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程使用定时器1通道1(PA8),通过PA8引脚产生PWM控制LED灯LED1的亮度。1、PWM简介及相关函数介绍脉冲宽度调制(PWM)是一种模拟控制方式,其是利用微处
2022-03-24 09:19:34 783
原创 RISC-V MCU应用教程之定时器中断
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程通过CH32V103开发板板载两个LED灯显示程序运行状态,具体情况如下:(1)串口调式助手大约每隔500ms打印一次”Enter interrupt“;(2)开发
2022-03-22 09:10:42 829
转载 RISC-V MCU应用教程之赤菟V307多UART通信
本文章介绍使用CH32V307单片机实现主机轮回接收从机传输的数据,并在串口软件显示。您需要的资料:CH32V307单片机数据手册及例程一、单片机串口部分简介由上图可知,CH32V307有8个串口(USART+UART)。由数据手册可知,USART有3个,USART1挂接在APB2总线上,USART2和USART2以及7个UART挂接在APB1总线上。为了方便插拔引脚转接线,将数据手册中有关串口引脚陈列如下表格中。防止原有映射引脚被其它外设占用,手册中定义的串口复用引脚陈.
2022-03-18 17:40:02 531
原创 RISC-V MCU应用教程之ADC
简介CH32V103系列是以青稞V3A处理器为核心的32位通用RISC-V MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章教程使用CH32V103开发板的ADC1通道1对开发板的VCC引脚和GND引脚进行采样,并将采样结果通过串口调试助手打印显示。1、ADC及相关函数介绍CH
2022-03-17 17:27:22 815 1
原创 【无标题】
简介CH32V103系列是以青稞V3A处理器为核心的32位通用MCU,该处理器是基于RISC-V开源指令集设计。片上集成了时钟安全机制、多级电源管理、通用DMA控制器。此系列具有1路USB2.0主机/设备接口、多通道12位ADC转换模块、多通道TouchKey、多组定时器、多路IIC/USART/SPI接口等丰富的外设资源。本章通过点亮LED作为CH32V103系列MCU应用开发的第一个教程,其LED灯控制使用到GPIO外设的基本输出功能,本章将通过点亮LED对CH32V103的GPIO进行基本的
2022-03-16 09:26:06 234
原创 RISC-V MCU开发教程之低功耗蓝牙MCU用户程序跳转进boot
的卢CH582M,其采用沁恒自研RISC-V微处理器“青稞V4”,片上集成2Mbps低功耗蓝牙,兼容Bluetooth® low energy 5.3,另外配备SPI、I²C、RTC等丰富外设。使用的卢CH582完成的APP代码很有可能需要进行升级,借助BOOT进行升级的话,可以通过APP跳转进入BOOT,借助芯片自带的BOOT和ISP工具,进行升级(支持串口1和USB下载)跳转实现的代码,BOOT中有一段功能,如果APP起始的至少4字节是默认(无main跳转地址),则认为此芯片无app代码
2022-03-11 09:18:14 267
原创 RISC-V MCU应用之单片赤菟V307实现八串口服务器
简介串口服务器,提供串口转网络的功能,将串口转换成TCP/IP协议网络接口,实现串口和网络接口的数据双向透明传输,扩展串口设备的通讯距离。赤菟V307是搭载沁恒自研RISC-V内核青稞V4F的高性能互联型MCU,主频支持144MHz,支持硬件浮点运算(FPU),提供八个UART接口、USB2.0高速接口(480Mbps)并内置了PHY收发器、千兆以太网MAC并集成10M PHY、2个CAN接口等丰富的外设资源。基于八个UART接口、10M以太网的强大外设,通过单片赤菟V307即可实现八串口服务
2022-03-10 17:26:41 415
原创 RISC-V MCU开发教程之低功耗蓝牙MCU看门狗使用
的卢CH582M,其采用沁恒自研RISC-V微处理器“青稞V4”,片上集成2Mbps低功耗蓝牙,兼容Bluetooth® low energy 5.3,另外配备SPI、I²C、RTC等丰富外设。的卢CH573 、 的卢CH582的看门狗计数器是8位的(计数最大255),计数周期131072/Fsys以卢CH573 、 的卢CH582为例,evt中主频都是60M,看门狗最大时间 (131072/60000000)*255=0.557056s看门狗接口函数在StdPeriphDriver/..
2022-03-10 09:22:46 1044
原创 RISC-V MCU应用之智能手环
的卢CH582M,其采用沁恒自研RISC-V微处理器“青稞V4”,片上集成2Mbps低功耗蓝牙,兼容Bluetooth® low energy 5.3,另外配备SPI、I²C、RTC等丰富外设。WCH Wristband的主控芯片为RISC-V专用低功耗蓝牙MCU:的卢CH582M。WCH Wristband配有血氧心率模块、九轴传感器、电机驱动模块、低功耗触摸检测模块以及0.96寸高清IPS显示屏,满足一般手环的应用需求。项目仓库:https://gitee.com/rvmcu/wch-wri
2022-03-07 09:04:07 353
原创 RISC-V MCU移植RTOS系列教程(四)
接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核单片机来详细说下针对RISC-V平台,移植实时操作系统的注意点。今天聊下移植RTOS时RISC-V内核时单片机任务之间的切换。了解了如何切换至第一个任务,如何实现不同任务之间的切换呢。在这之前想必对“任务优先级”,“时间片轮转”等概念有一定的了解。rt-thread正常运行也需要个定时器为其提供时钟,且任务初始化时设置了任务优先级。调度器在就绪的任务列表中寻找优先级较高的任务切换执行,当
2022-03-03 10:44:41 748
原创 RISC-V MCU移植RTOS系列教程(三)
接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核单片机来详细说下针对RISC-V平台,移植实时操作系统的注意点。今天聊下移植RTOS时RISC-V内核时单片机切换至第一个任务。以RT-Thread为例,rt-thread和其他RTOS有点区别的是其gcc下的入口函数定义为entry,而main函数则可以被初始化为线程之一,图1为rt-thread的详细的启动流程。rt-thread定义一个rt_thread类型的全局指针rt_curren
2022-03-02 10:04:34 1017
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人