CSR 位字段

RISC-V mncause CSR 寄存器详解

地址 0x742特权级 M 模式访问 读写 / MXLEN机器安全配置 CSR

Smrnmi 的 MXLEN 位 RNMI 原因 CSR。

字段映射

按 bit 字段理解 mncause

2 个关键字段
XLEN-1

Interrupt

硬件更新

RNMI 为中断时为 1;由 Smdbltrp 造成的 M 模式双重陷阱异常时为 0。

这个字段控制什么

  • - RNMI 为中断时为 1;由 Smdbltrp 造成的 M 模式双重陷阱异常时为 0。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

XLEN-2:0

Exception Code

WARL

中断时为 RNMI 原因;未支持 RNMI 原因时硬件写入 0;双重陷阱时为导致该陷阱的异常代码。

这个字段控制什么

  • - 中断时为 RNMI 原因;未支持 RNMI 原因时硬件写入 0;双重陷阱时为导致该陷阱的异常代码。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

官方依据与检索要点

Smrnmi 的 MXLEN 位 RNMI 原因 CSR。

最高位区分中断与双重陷阱异常;其余低位保存相应原因编码。

读这个 CSR 时先看什么

  • - mncause 仅由 Smrnmi 定义;未实现时不存在。
  • - RNMI 中断的原因不被支持时,Interrupt 为 1 且低位写入 0。

写入前的风险检查

  • - 将该 CSR 视为 RNMI 入口写入的架构状态;原因字段的合法值受实现的 RNMI 原因限制。

放回真实流程里理解

1

确认 Smrnmi 已实现。

2

在 RNMI 处理程序中读取最高位和原因字段。