这是描述信息

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程

智能家居matter模块乐鑫esp32代理商RISC-V异常和中断响应过程,对于 RISC-V 处理器内核,如果 mstatus.MIE=1,且 mie.MSIE=1、mie.MEIE=1和 mie.MTIE-1,则发生中断请求后,内核在当前指令执行结束后响应中断请求。


RISC-V处理器内核中断响应过程

切换到机器模式(M)--mepc--mtval--mstatus--mcause--mip--条状到mtvec定义的PC地址


智能家居matter模块乐鑫esp32代理商RISC-V 处理器内核首先进入机器模式,然后更新相关的 CSR 寄存器,从 mtvec寄存器中获取中断向量表的基地址。如果是向量中断响应,则将 PC 指向中断向量表中对应的向量位置,获取相应的异常和中断服务程序人口地址,后执行中断服务程序。如果是非向量中断响应,则将 PC 指向所有中断统一的服务程序人口地址。


如果发生中断,则 mepc 寄存器保存当前指令的下一条指令地址 NPC。如果发生异常,则在 mepc 寄存器中保存当前指令地址 PC。
更新 mcause 寄存器,如果是中断,则 mcause[31]=1,mcause[30:0]=中断编码;如果是异常事件,则 mcause[31]=0,mcause[30:0]=异常编码。
更新 mstatus 寄存器,mstatus.MIP=mstatus.MIE。将 mip 寄存器中与中断类型对应的位置 1。例如,对于外中断,智能家居matter模块乐鑫esp32代理商mip.MEIP=1将处理器内核所定义的与该中断对应的信息值(如果已定义)写入 mtval寄存器。完成异常处理或中断服务后,处理器内核恢复异常或中断前的特权模式,并返回到主程序继续执行。


RISC-V 架构提供了不同模式退出异常服务程序的指令。MRET、SRET 和 URET 分别是机器、管理员和用户模式下退出异常处理程序的指令。智能家居matter模块乐鑫esp32代理商所有 RISC-V 架构处理器必须支持MRET 指令,SRET 和 URET 是可选指令。


RISC-V 退出异常处理过程:
MRET--更新mstatus--更新mie--更新mip--恢复中断前模式--跳转mepc保存的PC地址--继续执行主程序


智能家居matter模块乐鑫esp32代理商处理器内核执行 MRET 指令后,自动完成步骤,然后继续执行主程序,具体操作包括:

1、更新 mie,重新打开中断使能位,mstatus.MIE=1;
2、更新 mip,清除 mip 状态位,mstatus.MIP=0;
3、读取 mstatus.MPP,恢复到中断前的特权模式。

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图

 

免责声明:本网站部分图片和文字内容可能来源于网络,转载目的在于传递更多信息,并不代表本网站赞同其观点或证实其内容的真实性。如涉及作品内容、版权和其它问题,请在30日内与本网站联系,我们将在第一时间删除内容!本站拥有对此声明的最终解释权。