CSR 位字段

RISC-V dpc CSR 寄存器详解

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

dpc(地址 0x7B1)是仅 Debug 模式可见的 Debug PC CSR。

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

按 bit 字段理解 dpc

1 个关键字段
DXLEN-1:0

dpc

读写

Debug PC。进入 Debug Mode 时按原因保存虚拟地址(EBREAK 时为该 EBREAK 的地址);恢复时 PC 取此值。低位可写性取决于 IALIGN,且必须能保存所有有效虚拟地址。

这个字段控制什么

  • - Debug PC。进入 Debug Mode 时按原因保存虚拟地址(EBREAK 时为该 EBREAK 的地址);恢复时 PC 取此值。低位可写性取决于 IALIGN,且必须能保存所有有效虚拟地址。

常见取值

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

打开官方手册

读这个 CSR 时先看什么

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

写入前的风险检查

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

放回真实流程里理解

1

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

2

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

3

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