mstatus 寄存器:提供全局中断使能控制,通过 MIE 位来启用或禁用所有机器模式的中断。 mie 寄存器:提供具体类型的中断使能控制,通过各个位来启用或禁用特定类型的中断。 Xie寄存器 mstatus 寄存器位的描述 xIE 开启之后,可以响应中断,比如 M模式下可以响应中断的话,就开启MIE UIE (User Interrupt Enable) 位:总开关 ...
表15 指令集寄存器 6.mstatus(硬件线程状态寄存器) mstatus 寄存器用来标识和控制 HART 的操作状态,其各位完整的定义可以在 RISC-V 官方标准中找到。对于只支持单个 HART 和机器模式的处理器来说,需要 注意表16 中的两个位。 表16 硬件线程状态寄存器 7.mscratch(草稿寄存器) 在RV32 下,这是一个 32 位的读...
应首先通过将 mstatus.MIE 写入 0(默认复位值)来全局禁用中断。 将机器模式异常处理程序的基地址写入 mtvec CSR。这是任何引导流程中的必需步骤。 将mstatus.MPP 写入 0 以将之前的模式设置为 User,这允许我们返回到该模式。 设置物理内存保护 (PMP) 区域以将所需区域授予用户和主管模式,并可选择从机器模式撤...
mstatus(Machine Status)它保存全局中断使能,以及许多其他的状态 mstatus mstatus.MIE置 1 时才会产生中断。 mstatus.PMIE它在异常/中断发生后保存MIE的旧值 mie 每个中断在控制状态寄存器 mie 中都有自己的使能位。这些位在 mie 中的位置对应于图[[RISC-V 异常和中断的原因.png]]。例如,mie[7]=1对应于 ...
机器模式状态寄存器mstatus (Machine Sauns Register) 下文将分别予以详述。 1.1 从mtvec定义的PC地址开始执行 RISCY架构规定,在处理器的程序执行过程中,一旦遇到异常发生, 则终止当前的程序流,处理器被强行跳转到个新的PC地址。该过程在RISCV的架构中定义为“陷阱(trap)”,宇面含义为“跳入陷阱”,更加准确的意泽...
RISC-V 定义了控制和状态寄存器CSR (Control and Status Register),用于配置或记录处理器的运行状态, RISC-V 特权指令就是通过控制CSR来实现的。CSR 使用专有的 12 位地址空间,因此理论上能够支持最多 4096 个 CSR。但实际上,这个地址空间大部分是空的,RISC-V 手册中实际只定义了数十个 CSR,访问不存在的 CSR...
此外,RISC-V还定义了一组控制和状态寄存器(Control and Status Registers,CSR),用于记录内核运行状态。详情参考特权指令集规范:https://riscv.org/technical/specifications/ 特权级别 RISC-V规定如下四个特权级别(privilege level):RISC-V 处理器在复位后自动进入机器模式(M),因此,机器模式是所有RISC-V...
第29~33行,写mstatus寄存器。 最后就是发出中断信号,中断信号会进入到执行阶段。 有两种情况需要发出中断信号,一种是进入中断,另一种是退出中断。 9~12行,写完mstatus寄存器后发出中断进入信号,中断入口地址就是mtvec寄存器的值。 第13~15行,发出中断退出信号,中断退出地址就是mepc寄存器的值。
mstatus(Machine Status)它保存全局中断使能,以及许多其他的状态。 2.3.1.1 mstatus 寄存器 mstatus 寄存器在处理中断时会经常用到,且较为复杂,位域包含的信息较多,其结构如下图所示: 图2-4 RV32mstatus寄存器结构 图2-5 RV64mstatus寄存器结构 在中断使能方面,MIE 、SIE 、UIE 分别提供了 machine mode 、supe...