CSR 位字段

RISC-V dscratch1 CSR 寄存器详解

地址 0x7B3特权级 仅 Debug 模式访问 读写 / XLENDebug、Trace 与 trigger CSR

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

字段映射

按 bit 字段理解 dscratch1

1 个关键字段
XLEN-1:0

VALUE

读写

dscratch1 的完整寄存器值;未单独列出的位按对应扩展或特权规范解释,读取保留位或 WPRI 字段时忽略其值;写同一 CSR 的其他可写字段时保留这些字段原值。

这个字段控制什么

  • - dscratch1 的完整寄存器值;未单独列出的位按对应扩展或特权规范解释,读取保留位或 WPRI 字段时忽略其值;写同一 CSR 的其他可写字段时保留这些字段原值。

常见取值

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

打开官方手册

读这个 CSR 时先看什么

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

写入前的风险检查

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

放回真实流程里理解

1

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

2

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

3

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