序:开始行动前需要先明确一下目标整个系列的文章目前都是朝着唯一的一个终极目标前进: 从零实现抢占式多任务。在RTOS领域,其核心之一就是任务,且在实现抢占式多任务的过程中会涉及到所有资源:串口打印、内存…
这款开发板基于感芯科技MC3172芯片,业内首发并行多线程实时处理器,也就是可以完全硬件级实现多线程同时运行,最多支持64同步线程,不同于普通单片机运行RTOS,有点类似FPGA的并行执行方式,但它又是一颗MCU。 和普通的MCU相比,芯片本身特殊在哪里?开发方式又有什么区别呢? 本文将从硬件和软件两个方向来进行评测,硬件主...
FreeRTOS-metal 是运行在机器模式和用户模式,适用于大多数简单应用场景,不过对于需要运行多运行区域隔离的场景(比如运行多个 RTOS),则需要 FreeRTOS 运行在 S-U 模式,M 模式运行监视软件,我们姑且称为FreeRTOS-metal-SU,这就是本文的成果,后续可能有机会合并入 FreeRTOS-metal。 GitHub - sifive/FreeRTOS-metal ...
今年Embedded World,Think Silicon又展示了用在MCU上的GPGPU方案NEOX-GA100,也是业界首个基于RISC-V的GPGPU架构,同时该公司拥有RISC-V RV64架构的全部权利。 根据官网显示,作为轻量级3D图形系统,整个3D、VG和2.5DAPI需要不到150KB的内存和10mW的功率,非常适合从低功耗裸机到RTOS和基于Linux的高性能系统。此外,该产品...
今天聊下需要移植RTOS时RISC-V内核单片机需要保存的寄存器。 RISC-V寄存器如下图1所示,其中x0-x31为整形寄存器,f0-f31为浮点寄存器(青稞V3没有浮点寄存器)。所有带caller的寄存器,当发生中断时需要保存,值得注意的是,WCH的硬件压栈保存的寄存器仅仅保存整数的16个caller saved 寄存器。正常一个中断函数的寄存器保存我...
在谷歌、GitHub、百度搜索,还真发现了一个大佬移植的源码包直接挂在了21IC那里,简单粗暴只有一个标题和附件(原址:gd32vf103在NucleiStudio上的freertos工程),非常感谢这位无私奉献的大佬。 2、FreeRTOS移植系统(2) 由于下载的这个包刚好是基于NucleiStudio的,在我的电脑上装的是NS 2019版的可以直接导入并编译,(NS...
最近,Vitalik 发布了关于长期 L1 执行层的提案全文,提出用 RISC-V 取代 EVM(以太坊虚拟机)[1],这引发了广泛的讨论。 有人认为 EVM 的架构已经陈旧,且在不断模仿其他系统的同时缺乏创新,也有人觉得以太坊现在才开始讨论这个问题似乎已经有些晚了,尤其是很多 zkVM 项目已经开始使用 RISC-V 指令集(如Awesome Z...
【为RISC-V MCU移植RTOS系列干货教程】- 5.RTOS启动后第一个任务执行的地方与汇编实现(中) 592 0 11:52 App 【为RISC-V MCU移植RTOS系列干货教程】-14.RISC-V链接脚本实战 189 0 14:38 App 【为RISC-V MCU移植RTOS系列干货教程】- 9.RISC-V的六个典型内核寄存器(1) 170 0 07:51 App 【为RISC...
RISC-V MCU移植RTOS系列教程(二) 接着以WCH沁恒微电子的赤菟V103(CH32V103)和赤菟V307(CH32V307)两款RISC-V内核芯片来详细说下针对RISC-V平台,移植实时操作系统的注意点。 今天聊下移植RTOS时RISC-V内核时单片机任务栈保存哪些内容。 上一章中列举了所有的寄存器,当需要切换任务时刻的寄存器值,除x0恒为0,...
FreeRTOS任务调度器开启依赖svc中断与vTaskStartScheduler函数,在cortex-m4系列芯片完成CPU、外设与中断等硬件资源初始化进入到主要函数main函数后,创建项目运行的所需任务,调用vTaskStartScheduler函数开启FreeRTOS任务调度(如下图所示)。 FreeRTOS在任务调度器的启动阶段,会默认自动创建idle任务,idle任务优先级默认为系统最...