CSR 位字段

RISC-V tdata1 CSR 寄存器详解

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

tdata1 是可选的 XLEN 位触发器控制 CSR,为 tselect 所选触发器提供类型、Debug 写保护和类型相关数据。

字段映射

按 bit 字段理解 tdata1

3 个关键字段
XLEN-1:XLEN-4

TYPE

WARL

触发器类型:0 表示该 tselect 没有触发器;1 为不应实现的旧版 SiFive 地址匹配触发器;2=mcontrol、3=icount、4=itrigger、5=etrigger、6=mcontrol6、7=tmexttrigger、12–14 为自定义。15 禁用触发器,此时除 DMODE 外的剩余位被忽略;其他值保留。

这个字段控制什么

  • - 触发器类型:0 表示该 tselect 没有触发器;1 为不应实现的旧版 SiFive 地址匹配触发器;2=mcontrol、3=icount、4=itrigger、5=etrigger、6=mcontrol6、7=tmexttrigger、12–14 为自定义。15 禁用触发器,此时除 DMODE 外的剩余位被忽略;其他值保留。

常见取值

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

打开官方手册
XLEN-5

DMODE

WARL

0 时 Debug 与 M 模式都可写所选触发器的 tdata;1 时仅 Debug 模式可写,其他模式写入被忽略。type=0 时该位硬连线为 0,且仅可由 Debug 模式写入。

这个字段控制什么

  • - 0 时 Debug 与 M 模式都可写所选触发器的 tdata;1 时仅 Debug 模式可写,其他模式写入被忽略。type=0 时该位硬连线为 0,且仅可由 Debug 模式写入。

常见取值

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

打开官方手册
XLEN-6:0

DATA

WARL

类型相关数据;type=0 时硬连线为 0。

这个字段控制什么

  • - 类型相关数据;type=0 时硬连线为 0。

常见取值

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

打开官方手册
官方依据与检索要点

tdata1 的 TYPE 决定所选触发器以及其余数据位的解释。

type=0 时没有触发器,TYPE、DMODE 以外的数据位也按 type=0 规则硬连线。
DMODE=1 时 M 模式对 tdata 的写入被忽略。

读这个 CSR 时先看什么

  • - tdata1 在未实现任何触发器时为可选;访问未实现的 Trigger Module 寄存器会触发非法指令异常。
  • - tdata 寄存器只可在 M 模式和 Debug 模式访问。

写入前的风险检查

  • - 向 tdata1 写 0 必须使触发器禁用;若支持多种类型,硬件应将 type 改为 15。
  • - 所有 tdata 寄存器遵循 write-any-read-legal;写后读回确认支持的配置。

放回真实流程里理解

1

选择 tselect。

2

向 tdata1 写 0 禁用触发器。

3

写入 tdata2/tdata3,再写入目标 tdata1 并读回确认。