学习RISC-V 抢占式多任务

THU-OS rCore学习总结 基于Rust + RISC-V 2021课程主页 源码 指导书 Rust编程之道 视频 阅读详情

从零到一:在RISC-V裸机上实现一个抢占式多任务调度器(基于M模式中断) 本文详细介绍了在RISC-V裸机上实现抢占式多任务调度器的核心技术,重点解析了M模式中断机制、任务控制块设计、时钟中断触发及临界区保护等关键环节。通过实战示例展示如何构建多任务LED闪烁系统,并提供了高级优化技巧与调试方法,帮助开发者深入理解RISC-V特权架构下的中断与异常处理。 阅读详情

相关推荐

CH32V208 RISC-V MCU移植FreeRTOS实战:从环境搭建到多任务调试

实时操作系统(RTOS)是嵌入式开发中管理多任务、确保系统实时性的核心软件架构,其通过任务调度、中断管理和进程间通信等机制,为复杂应用提供清晰的结构与及时的响应。FreeRTOS作为一款开源、轻量级的RTOS内核,凭借其可裁剪性和可移植性,成为资源受限微控制器(MCU)项目的热门选择。在RISC-V架构的国产芯片如沁恒CH32V208上移植FreeRTOS,能充分发挥其硬件性能,构建高效可靠的应用系统。本文聚焦于**FreeRTOS移植**与**RISC-V MCU**开发,详细解析从开发环境搭建、工程配置

weixin_34357436的博客 344

制作一个RISC-V的操作系统十三-抢占式多任务和兼容协作式多任务

RISC-V 规范定义了多种处理器模式,其中之一是 Machine 模式,这是一种最高权限模式,用于实现操作系统内核或 hypervisor 等核心功能。在RISC-V体系结构中,当一个hart(硬件线程)需要向另一个hart发送软件中断时,可以通过向另一个hart的MSIP位写入1来发起中断请求。MSIP映射到寄存器MSIP上的一个位,这个寄存器映射到内存上,即MSIP是memory-mapped的,这意味着可以通过内存访问指令(如load/store指令)来读写这个位,进而触发或清除中断。

llovewuzhengzi的博客 1065

如何在 Ubuntu 24.04 或 22.04 上安装和使用 GDebi

本文介绍了在Ubuntu 24.04上安装和使用GDebi的方法。GDebi是DPKG的轻量级替代品,能够自动解析并安装.deb包的依赖项。文章详细说明了系统更新、安装GDebi的步骤,并演示了通过GUI和CLI两种方式安装.deb包的操作流程。此外,还提供了验证安装和卸载包的方法。GDebi虽然非必需,但为用户提供了处理依赖项的另一种选择,适合需要安装本地Debian包的用户。

山岚的运维笔记 1993

开发一个RISC-V上的操作系统(八)—— 抢占式多任务(Preemptive Multitasking)

在第五节的内容中,我们实现了协作式多任务,这一节我们要实现的是抢占式多任务。

欢迎一起交流问题! 1031

cadence—virtuosoic617的使用技巧收集区

cadence使用

qq_33599939的博客 3万+

SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验

阿里开源语音大模型:语音识别效果和性能强于 Whisper,还能检测掌声、笑声、咳嗽等

u010522887的专栏 4万+

RISC-V (九)抢占式多任务

定时器中断,跳到trap handler函数,同时系统自动将下一条指令的地址存到mepc中。执行完trap handler函数,遇到mret指令,系统根据mepc寄存器的值跳到了原先程序的下一条指令继续执行。抢占式多任务:改写trap handler函数,跳到trap handler函数,首先是保存上下文文,即将32个寄存器的值存起来,同时将mepc的值也存起来。等待下一次的定时器中断再次发生,保存任务B的上下文,包括保存mepc值,调用switch函数,回复任务A的上下文,包括回复mepc值......

weixin_44194690的博客 606

OI 生涯回忆录 《Pilgrimage》

前言 于 NOI2020 后写下本文。 本文简单提及了在写作时尚能回忆起来的,在我的 OI 生涯中对我的影响重大的人、事、比赛等。 写作本文,旨在在回忆允许的范围内,对 OI 生涯进行一定程度上的梳理,总结。 开端 入门 我最早接触计算机程序设计,是在小学。 那时候,我的数学成绩不错,就被老师推荐去学习编程。 就这样,我在局前街小学的何静老师的指导下,走上了编程的道路。 小学时的编程,与其说是 “竞赛” ,不如说是 “兴趣班” 。 当时,包括我在内,很多小孩子天性是浮躁的。支撑我对着无聊的代码学下去的,并不

cz_xuyixuan的博客 1万+

[笔记三] 学习开发一个RISC-V上的操作系统

主要介绍RVOS的实现过程

Only love Can resist the Long Years! 唯有热爱,可抵岁月漫长! 1549

从深算一号到三号:海光DCU的技术演进与国产超算突围之路

本文梳理了海光DCU从深算一号到三号的技术演进历程,展现了国产高性能计算芯片从填补空白到追赶并行的突围之路。文章重点分析了深算系列在性能提升、软件生态(DTK)建设及超算平台构建方面的关键进展,并探讨了其在AI大模型训练、科学计算等领域的应用实践与未来挑战。

ipfs8storage的博客 1062

SpringBoot项目搭建

SpringBoot项目搭建

私信可回答各种问题~ 1026

制作一个RISC-V的操作系统九-上下文切换和协作式多任务(任务 任务上下文 多任务 多任务系统分类 协作式多任务 代码实现 )

SW 和 LW 指令是 RISC-V 指令集中最基本和最常用的两个指令,它们为 RISC-V 提供了在内存和寄存器之间高效传输数据的能力,是构建复杂计算系统的基础。这三个寄存器在 RISC-V 体系结构中扮演着重要的角色,为 RISC-V 系统提供了高效的全局数据访问、线程管理和基本操作支持。初始化就是设置各个任务的上下文(各个任务的上下文保存到内存中),如设置上下文的ra(返回地址)为任务的第一条指令。当执行的核数小于要执行的任务时,此时任务会轮流运转到CPU上,以保证各个任务在宏观上被执行着。

llovewuzhengzi的博客 1577

基于STM32设计的智能井盖(Lora组网+4G上云)_423

设计并实现了一种基于 STM32 与 Lora 通信技术的智能井盖监测系统。系统采用 STM32F103C8T6 作为核心控制器,在井盖节点端集成水位检测、有害气体检测、倾斜角度检测以及 GPS 定位等功能模块,对井盖内部环境状态和姿态变化进行实时监测。各井盖节点通过 Lora 无线通信方式组成网络,将采集的数据发送至主机(网关)进行汇聚处理。

719

RISC-V 32架构实践专题十(从零开始写操作系统-抢占式多任务的实现)

在抢占式多任务的实现中,由操作系统来进行任务的调度,并且每个任务执行的时长通常被称为时间片。在抢占式多任务中,操作系统对队列中挂起的任务进行优先级排列;一般同一优先级的任务,会进行时间片的调度执行,也就是每个任务执行一段时间后,操作系统将调度下一个任务继续执行。所以对于要实现抢占式多任务的功能,需要依赖与划分时间片的定时器;而定时器完成定时后,又将以中断的形式来告诉CPU,因此我们要实现抢占式多任务,那么我们需要实现中断注册、定时器初始化以及基于时间片的任务调度。

weixin_53479532的博客 1375

Open3D 点云重叠区域检测【2025最新版】

本文介绍了一种基于八叉树和KD树的点云重叠区域检测方法。算法提供两种检测模式:八叉树(快速)和KD树(精确),支持可视化显示和详细统计信息输出。实现功能包括边界扩展、索引去重、精度调节等,可通过max_depth参数控制八叉树细分程度,distance_threshold调整检测精度。代码使用Open3D库,能自动计算并显示各点云的重叠比例和点数统计,最终结果以不同颜色区分重叠与非重叠区域。该方案适用于三维点云数据处理中的重叠分析任务。

点云侠的博客 599

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[rCore学习笔记 025]分时多任务系统与抢占式调度

写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 本节重点 本章最开始的时候讲解了有类似于多道程序与协作式调度的区别. 回想上一节,我们提到的,如果我们仍然是不使用上一节实现的yeild,仍然和上上节(多道程序加载)的实现效果是一样的. 因为如果我们不主...

weixin_36846441的博客 322

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RVOS-7.实现抢占式多任务

定义不同的软中断类型,这些类型将对应于不同的操作。

张哈哈的博客 1067

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Mini-RISC-V OS 开源项目教程

Mini-RISC-V OS 开源项目教程 1. 项目介绍 Mini-RISC-V OS 是一个为 RISC-V 架构设计的最小化多任务操作系统内核。本项目旨在从零开始构建一个可以在 RISC-V 平台上运行的简单操作系统。它受到 jserv 的 mini-arm-os 项目的启发,但针对 RISC-V 架构进行了重写,并且可以在 Windows 10 系统上运行。 2. 项目快速启动 以下是快速...

gitblog_00100的博客 1130

从零手写操作系统之RVOS抢占式多任务实现-06

实现抢占式多任务

m0_53157173的博客 1112

开发一个RISC-V上的操作系统(五)—— 协作式多任务

那么,什么是多任务呢?百度百科是这样解释的:当多任务操作系统使用某种任务调度策略允许两个或更多任务并发共享一个处理器时,事实上处理器在某一时刻只会给一件任务提供服务。因为任务调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。因此,多任务可以看作多个任务函数的执行流,但光有多个任务还不够,还要实现任务的并发执行​。

欢迎一起交流问题! 1415

mini-riscv-os:构建 RISC-V 最小多任务 OS 内核

mini-riscv-os:构建 RISC-V 最小多任务 OS 内核 项目介绍 mini-riscv-os 是一个开源项目,致力于从零开始构建一个针对 RISC-V 架构的最小多任务操作系统的内核。该项目受到 mini-arm-os 的启发,但由 ccckmit 针对RISC-V架构进行了重写,并能在 Win10 系统上运行,而不是仅在 Linux 系统上。 项目提供了一系列逐步深入的教程,从基...

gitblog_00342的博客 376

【Ucore 操作系统】3. 多道程序与分时多任务

计算机科学家很快发现,编写应用程序的科学家(简称应用程序员)来自不同的领域,他们不一定有友好互助的意识,也不了解其他程序的执行情况,很难(也没必要)有提高整个系统利用率上的大局观。比如:在从作为外部存储的磁盘上读取数据的时候,CPU 将要读取的扇区的编号以及读到的数据放到的物理地址传给磁盘,在磁盘对请求进行调度并完成数据拷贝之后,就能在物理内存中看到要读取的数据。在计算机发展的早期,由于应用基本上都是一些简单的计算任务,且程序员都比较遵守规则,因此内核可以信赖应用,这样协作式的制度是没有问题的。

普罗米修斯的博客 1223

RISC-V (五)上下文切换和协作式多任务

协作式多任务演变而来。抢占式环境下,操作系统完全决定任务调度方案,操作系统可以剥夺当前任务对处理器的使用,将处理器提供给其它任务。有一点像函数跳转,但是跟函数跳转又不太一样,函数跳转不会改变上下文,多任务协作会改变context的内容。-smp后面的数字指的是hart的个数,qemu模拟器最大可以有8个核,此文围绕一个核来讲。协作式环境下,下一个任务调度的前提是当前任务主动放弃处理器。所谓的任务就是寄存器的当前值。

weixin_44194690的博客 774

RISC-V OS(老师的OS) 基于 汪辰老师的视频笔记

对于 RISC-V OS 的学习

嵌入一下?的博客 2202

操作系统中抢占式和非抢占式内核的区别

编排 |strongerHuang微信公众号 |嵌入式专栏操作系统分为抢占式内核和非抢占式内核,通常RTOS都是抢占式内核。下面就来讲讲抢占式内核和非抢占式内核的内容。非抢占式内核非抢...

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 4241

opuntiaOS任务调度算法深度剖析:抢占式多任务实现机制

opuntiaOS是一款针对x86、ARM和RISC-V架构设计的开源操作系统,其高效的任务调度系统是实现多任务并发的核心。本文将深入解析opuntiaOS的抢占式多任务调度机制,带你了解操作系统如何在不同硬件架构上实现任务的高效切换与资源分配。 ## 任务调度核心组件架构 opuntiaOS的任务调度系统采用模块化设计,主要由进程管理、线程调度和CPU控制三大组件构成。核心实现代码集中在[k

gitblog_01128的博客 246
上一篇: 学习RISC-V 外部设备中断
下一篇: 学习RISC-V 任务同步和锁
TheAnswerisy
博客等级 码龄8年 43粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值