CSR 位字段

RISC-V mcontext CSR 寄存器详解

地址 0x7A8特权级 M 模式/Debug 模式访问 读写 / XLEN调试触发器 CSR

mcontext 是可选的 XLEN 位 Machine/Debug 上下文 CSR;若实现 hcontext,则必须实现它。

字段映射

按 bit 字段理解 mcontext

2 个关键字段
XLEN-1:14

Reserved

只读零

保留并读为零。

这个字段控制什么

  • - 保留并读为零。

常见取值

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

13:0

HCONTEXT

WARL

上下文编号;实现可将任意数量的高位固定为零。H 扩展未实现时建议 RV32 实现 6 位、RV64 实现 13 位;实现 H 时建议分别实现 7 位和 14 位。

这个字段控制什么

  • - 上下文编号;实现可将任意数量的高位固定为零。H 扩展未实现时建议 RV32 实现 6 位、RV64 实现 13 位;实现 H 时建议分别实现 7 位和 14 位。

常见取值

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

官方依据与检索要点

mcontext 提供 Machine 模式触发器上下文编号。

mcontext 仅在 M 模式和 Debug 模式可访问。
若实现 hcontext,必须实现 mcontext;HCONTEXT 为 WARL。

读这个 CSR 时先看什么

  • - mcontext 在实现 hcontext 时必须实现,否则为可选;访问未实现的 Trigger Module 寄存器会触发非法指令异常。
  • - 仅 M 模式和 Debug 模式可访问 mcontext。

写入前的风险检查

  • - HCONTEXT 是 WARL;写后读回确认实现接受的上下文编号。

放回真实流程里理解

1

确认 mcontext 已实现。

2

写入并读回 HCONTEXT。

3

结合目标实现支持的触发器配置使用该上下文编号。