CSR 位字段

RISC-V dscratch0 CSR 寄存器详解

地址 0x7B2特权级 仅 Debug 模式访问 读写 / DXLEN(hart 支持的最宽 XLEN)Debug、Trace 与 trigger CSR

dscratch0(地址 0x7B2)是 Debug 模式 scratch CSR 0,供调试模式保存临时上下文。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 dscratch0

1 个关键字段
DXLEN-1:0

dscratch0

读写

可选的 Debug scratch 寄存器;调试器只有在 hartinfo 明确声明时才可写入,因为 Debug Module 可能在内部使用它。

这个字段控制什么

  • - 可选的 Debug scratch 寄存器;调试器只有在 hartinfo 明确声明时才可写入,因为 Debug Module 可能在内部使用它。

常见取值

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

打开官方手册

读这个 CSR 时先看什么

  • - 先确认当前 hart 和调试实现是否提供 dscratch0。
  • - dscratch0 位于 0x7B0-0x7BF Debug-mode-only CSR 区间;普通 M 模式软件不能把它当作 Machine CSR 直接访问。
  • - 在 Debug 模式或调试规范定义的上下文中访问,并按 Debug Specification 和实现规则解释字段。

写入前的风险检查

  • - 写入前保留未修改的位,避免把保留位或实现定义位写成非规范值。
  • - 优先使用 CSRRS/CSRRC 做局部置位或清位,避免 CSRRW 覆盖并发更新的状态位。

放回真实流程里理解

1

进入 Debug 模式后按 Debug Specification 读取 dscratch0。

2

只修改目标调试字段,保留未修改位和实现定义字段。

3

通过 resume、单步或调试模块行为验证设置是否生效。