Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
risc-v_RISCV
移植问题
RISC-V 内核移植问题请教
发布于 2021-09-06 13:10:14 浏览:1330
订阅该版
[tocm] ## 问题 risc-v内核移植代码,`libcpu/risc-v/common/context_gcc.S`中,上下文切换函数`rt_hw_context_switch_to`,`rt_hw_context_switch`实现中,为什么不是触发soft interrupt, 然后在soft interrupt中进行上下文切换,而是直接在这些函数调用中进行上下文切换?这样做,是不是不太合理,或者有什么特殊考虑? ## 相关代码位置 ![image-20210906130258067](https://gitee.com/chenyingchun0312/article-images/raw/master/Typora02/202109061307476.png) ![image-20210906130633134](https://gitee.com/chenyingchun0312/article-images/raw/master/Typora02/202109061306650.png) 但是在risc-v/nuclei文件夹下,移植实现的上下文切换,是触发了soft interrupt,然后在soft interrupt中进行上下文切换的 ![image-20210906130922894](https://gitee.com/chenyingchun0312/article-images/raw/master/Typora02/202109061309533.png)
查看更多
bigmagic
2021-09-07
这家伙很懒,什么也没写!
arm cortex-m采用pendsv是出于实时性考虑,pendsv优先级最低,而且其中断控制NVIC有中断嵌套和中断咬尾的功能特性,用软中断的方式切换线程,可以充分考虑紧急事件的执行。一般认为,在rtos中,中断的优先级大于任务切换的优先级的,保证了外部事件得到及时响应,也可以让时钟不会产生太大的累计误差。 而一般的riscv core在中断设计上,其中断控制器未考虑中断嵌套和咬尾中断,设计任务切换逻辑时,都会在任务切换入口关闭全局中断(准备压栈操作),而在处理完成中断回调函数后,完成出栈后打开全局中断(出栈操作)。该过程都是临界区,采用中断去切任务或者直接切任务效果一样。 在nuclei的core中,自定义一种中断控制器,eclic本质上也是支持中断咬尾的,这就可以在中断进行切换。
3
个回答
默认排序
按发布时间排序
李肯陪你玩赚嵌入式
认证专家
2021-09-07
2022年度和2023年度RT-Thread社区优秀开源布道师,COC深圳城市开发者社区主理人,专注于嵌入式物联网的架构设计
最近也在研究RISC-V架构在rt-thread上面的移植,楼主提的这个问题,我倒是没有好好思考过。 从你的题干了解,你应该也对RISC-V的移植做过一番研究,有空向你请教请教,一起研究研究。 ----------------- 一般的RTOS做多任务切换,都是通过触发软中断,然后在软中断里面关中断、上下文切换、开中断, 这是一个比较通用的流程。
aozima
2021-09-06
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
效果好像没啥区别!
撰写答案
登录
注册新账号
关注者
0
被浏览
1.3k
关于作者
chenyingchun
这家伙很懒,什么也没写!
提问
22
回答
83
被采纳
16
关注TA
发私信
相关问题
1
RT-Thread 在ARM926 EJSA 内核的移植
2
裸机工程移植 RT-Thread
3
Keil MDK 移植 RT-Thread Nano
4
移植 Nano,rt_thread_mdelay()延迟时间不对
5
裸机工程移植 RT-Thread内核
6
跳转不进去main函数
7
我从KEIL 移植过来的 time外部中断定时器是失败的
8
Ambiq Apollo3 移植链接脚本问题
9
可以把 RT-Thread Studio 创建的项目移植到 Keil上面吗?
10
RT_USING_COMPONENTS_INIT 这部分相关的有没有更详细的介绍
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
2
RT-Thread 发布 EtherKit开源以太网硬件!
3
rt-thread使用cherryusb实现虚拟串口
4
《C++20 图形界面程序:速度与渲染效率的双重优化秘籍》
5
《原子操作:程序世界里的“最小魔法单位”解析》
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
keil_MDK
rt_mq_消息队列_msg_queue
at_device
ulog
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
张世争
8
个答案
2
次被采纳
rv666
5
个答案
2
次被采纳
用户名由3_15位
11
个答案
1
次被采纳
KunYi
6
个答案
1
次被采纳
本月文章贡献
程序员阿伟
6
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
大龄码农
1
篇文章
2
次点赞
ThinkCode
1
篇文章
1
次点赞
Betrayer
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部