1392|5

6480

帖子

8

TA的资源

管理员

楼主
 

阅读打卡第五站:异常处理、中断处理与中断控制器——《RISC-V体系结构编程与实践 》 [复制链接]

活动详情: 一起围读《RISC-V体系结构编程与实践 》

本次是《RISC-V体系结构编程与实践 》阅读打卡第五站,跟帖回复作者提出以下问题。

 

笨书助力读书打卡题目(提醒:听说阅读完书籍的第八章异常处理和第九章中断处理与中断控制器就可以啦):

18. 在RISC-V处理器中,异常发生后CPU自动做了哪些事情?软件需要做哪些事情?
19. 当返回时,异常是返回到发生异常的指令还是下一条指令?
20. 异常发生后,软件需要保存异常上下文,异常上下文包括哪些内容?
21. 什么是中断现场?对于RISC-V处理器来说,中断现场应该保存哪些内容?

 

参与活动的小伙伴们,阅读的怎样了呢?快快打卡走起

@jobszheng5 @1nnocent @子期非女 @常见泽1 @我爱下载

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

最新回复

18. 在RISC-V处理器中,异常发生后CPU自动做了哪些事情?软件需要做哪些事情? CPU做的事情     保存当前 PC 值到mepc 寄存器中     把异常的类型更新到mcause 寄存器     把发生异常时的虚拟地址更新到 mtval 存器中     保存异常发生前的中断状态,即把异常发生前的 MIE 字段保存到 mstatus 寄存器的MPE 字段中     保存异常发生前的处理器模式(如U 模式、S 模式等),即把异常发生前的处理器模式保存到mstatus 寄存器的MPP 字段中     关闭本地中断,即设置mstatus 寄存器中的MIE字段为0     设置处理器模式为M模式     跳转到异常向量表,即把 mtvec 寄存器的值设置到PC 寄存器中 系统需要做的事情。     保在异常发生时的上下文,上下文包括所有通用存器的值和部分 M模式下的寄存器的值。上下文需要保存到栈里。     查询 mcause 寄存器中的异常以及中断编号,跳转到合适的异常处理程序中     异常或者中断处理完成之后,恢复保存在栈里的上下文     执行MRET指令,返回异常现场 19. 当返回时,异常是返回到发生异常的指令还是下一条指令? 是否返回下一条指令,要做不同情况下的分析:     对于异步异常(中断),它的返回地址是第一条还没执行或由于中断没有成功执行的指令。     对于不是系统调用的同步异常,如数据异常、访问没有映射的地址等,它返回的是触发同步异常的那条指令。     系统调用返回的是系统调用指令(如 ECALL 指令)的下一条指令。 20. 异常发生后,软件需要保存异常上下文,异常上下文包括哪些内容? 异常发生时,需要在栈空间里保存如下内容: x1~x31 通用寄存器的值 spec 寄存器的值 sstatus 寄存器的值 sbadaddr 寄存器的值 scause 寄存器的值 注意:这个栈空间指的是发生异常时进程的内核模式的栈空间。 21. 什么是中断现场?对于RISC-V处理器来说,中断现场应该保存哪些内容? 中断现场指:MCU在执行中断服务程序前的运行状态,包括内部寄存器,断点地址等。 RISC-V将按下列流程处理: 1. 保存中断发生前的中断状态,即把中断发生前的SIE位保存到sstatus 寄存器中的SPIE字段 2. 保存中断发生前的处理器模式状态,即把异常发生前的处理器模式编码保存到 sstatus寄存器的 SPP 字段中。 之后触发中断处理流程   详情 回复 发表于 2023-5-26 10:32
点赞 关注
个人签名微信搜索公众号“EEWORLDBBS”快去添加关注吧!

回复
举报

7221

帖子

192

TA的资源

五彩晶圆(高级)

沙发
 

 当返回时,异常是返回到发生异常的指令还是下一条指令?

_____

分情况

1.对于异步异常,它的返回地址是第一条还没执行或由于中断没有成功执行的指令

2.对于不是系统调用的异常,如数据异常等,返回额是触发同步异常的那条指令

3.系统调用返回的是系统调用指令的下一条指令

 

点评

有点绕口,但是大概意思能懂!RISC-V可以判断异常的类型吗?  详情 回复 发表于 2023-4-24 13:28
 
 

回复

7221

帖子

192

TA的资源

五彩晶圆(高级)

板凳
 

异常上下文包括哪些内容?

_____

上下文包括所有通用寄存器的值和部分M模式下的寄存器的值

 
 
 

回复

7205

帖子

2

TA的资源

版主

4
 
常见泽1 发表于 2023-4-24 09:47  当返回时,异常是返回到发生异常的指令还是下一条指令? _____ 分情况 1.对于异步异常,它 ...

有点绕口,但是大概意思能懂!RISC-V可以判断异常的类型吗?

 
 
 

回复

337

帖子

2

TA的资源

纯净的硅(初级)

5
 

18. 在RISC-V处理器中,异常发生后CPU自动做了哪些事情?软件需要做哪些事情?

    异常发生时,CPU自动完成:保存当前PC到mepc寄存器中;把异常类型更新到mcause寄存器中;把发生异常时的虚拟地址更新到mtval寄存器中;保存异常发生前的中断状态;保存异常发生前的处理器模式;关闭本地中断;设置处理器模式为M模式;跳转到异常向量表。

   异常发生后,软件需要做的事情:保存异常发生时的上下文;查询mcause寄存器中的异常及中断编号,跳转到合适的异常处理程序;执行MRET指令,返回异常现场。

    
19. 当返回时,异常是返回到发生异常的指令还是下一条指令?

     对于异步异常,返回地址是第一条没有执行或没有成功执行的指令;

     对于同步异常,返回到触发异常的那条指令;

     对于系统调用,返回到系统调用指令的下一条指令。
20. 异常发生后,软件需要保存异常上下文,异常上下文包括哪些内容?

      异常上下文包括:所有通用寄存器的值和部分M模式下的寄存器。

 
 
 

回复

670

帖子

0

TA的资源

纯净的硅(高级)

6
 

18. 在RISC-V处理器中,异常发生后CPU自动做了哪些事情?软件需要做哪些事情?
CPU做的事情
    保存当前 PC 值到mepc 寄存器中
    把异常的类型更新到mcause 寄存器
    把发生异常时的虚拟地址更新到 mtval 存器中
    保存异常发生前的中断状态,即把异常发生前的 MIE 字段保存到 mstatus 寄存器的MPE 字段中
    保存异常发生前的处理器模式(如U 模式、S 模式等),即把异常发生前的处理器模式保存到mstatus 寄存器的MPP 字段中
    关闭本地中断,即设置mstatus 寄存器中的MIE字段为0
    设置处理器模式为M模式
    跳转到异常向量表,即把 mtvec 寄存器的值设置到PC 寄存器中
系统需要做的事情。
    保在异常发生时的上下文,上下文包括所有通用存器的值和部分 M模式下的寄存器的值。上下文需要保存到栈里。
    查询 mcause 寄存器中的异常以及中断编号,跳转到合适的异常处理程序中
    异常或者中断处理完成之后,恢复保存在栈里的上下文
    执行MRET指令,返回异常现场
19. 当返回时,异常是返回到发生异常的指令还是下一条指令?
是否返回下一条指令,要做不同情况下的分析:
    对于异步异常(中断),它的返回地址是第一条还没执行或由于中断没有成功执行的指令。
    对于不是系统调用的同步异常,如数据异常、访问没有映射的地址等,它返回的是触发同步异常的那条指令。
    系统调用返回的是系统调用指令(如 ECALL 指令)的下一条指令。
20. 异常发生后,软件需要保存异常上下文,异常上下文包括哪些内容?
异常发生时,需要在栈空间里保存如下内容:
x1~x31 通用寄存器的值
spec 寄存器的值
sstatus 寄存器的值
sbadaddr 寄存器的值
scause 寄存器的值
注意:这个栈空间指的是发生异常时进程的内核模式的栈空间。
21. 什么是中断现场?对于RISC-V处理器来说,中断现场应该保存哪些内容?
中断现场指:MCU在执行中断服务程序前的运行状态,包括内部寄存器,断点地址等。
RISC-V将按下列流程处理:
1. 保存中断发生前的中断状态,即把中断发生前的SIE位保存到sstatus 寄存器中的SPIE字段
2. 保存中断发生前的处理器模式状态,即把异常发生前的处理器模式编码保存到 sstatus寄存器的 SPP 字段中。
之后触发中断处理流程

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表