debugver
只读调试规范版本编码。
这个字段控制什么
- - 调试规范版本编码。
常见取值
dcsr.debugver
没有外部调试支持。
RISC-V Debug Specification 1.0 未定义这些编码的当前可移植含义。
存在符合 RISC-V Debug Specification 1.0 的调试支持。
保留编码;可移植软件不应写入或依赖。
存在调试支持,但不符合任何可用版本的 RISC-V Debug Specification。
dcsr(地址 0x7B0)是仅 Debug 模式可见的 Debug Control and Status CSR。
调试规范版本编码。
没有外部调试支持。
RISC-V Debug Specification 1.0 未定义这些编码的当前可移植含义。
存在符合 RISC-V Debug Specification 1.0 的调试支持。
保留编码;可移植软件不应写入或依赖。
存在调试支持,但不符合任何可用版本的 RISC-V Debug Specification。
M 模式执行 EBREAK 时进入 Debug Mode。
M 模式 执行 EBREAK 时按特权架构的断点异常路径处理。
M 模式 执行 EBREAK 时进入 Debug Mode。
控制 S 模式 EBREAK 是否进入 Debug Mode;不支持 S 模式时硬连为零。
S 模式 执行 EBREAK 时按特权架构的断点异常路径处理。
S 模式 执行 EBREAK 时进入 Debug Mode。
控制 U 模式 EBREAK 是否进入 Debug Mode;不支持 U 模式时硬连为零。
U 模式 执行 EBREAK 时按特权架构的断点异常路径处理。
U 模式 执行 EBREAK 时进入 Debug Mode。
单步期间是否允许中断(包括 NMI);实现可将其硬连为零,且调试器不得在 hart 运行时修改它。
控制 Debug Mode 中 hart-local 计数器是否冻结;实现可将其硬连为零或一。
Debug Mode 中 hart-local 计数器照常递增。
Debug Mode 中以及导致进入 Debug Mode 的 EBREAK 上,hart-local 计数器不递增。
控制 Debug Mode 中 time 是否冻结;实现可将其硬连为零或一。
time 继续反映 mtime。
time 在进入 Debug Mode 时冻结,离开时再次反映最新 mtime;若所有 hart 都以此值处于 Debug Mode,mtime 可以停止递增。
进入 Debug Mode 的原因编码。
保留编码;可移植软件不应依赖其含义。
由于 EBREAK 指令进入 Debug Mode。
由于 trigger 模块进入 Debug Mode。
由于 debugger halt request 进入 Debug Mode。
由于单步执行进入 Debug Mode。
由于 reset halt request 直接从 reset 后进入 Debug Mode。
由于 halt group 请求进入 Debug Mode。
Debug Mode 由其他原因进入;若实现 extcause,可由 extcause 给出更具体原因。
单步执行控制位。
记录进入 Debug Mode 前的特权级,并可控制恢复时的特权级;不支持或不能切换到所写级别时,hart 可切换到任一支持级别。
恢复执行时使用 User 特权级。
恢复执行时使用 Supervisor 特权级。
保留特权级编码;可移植软件不应写入或依赖。
恢复执行时使用 Machine 特权级。
保留位,读为零。
仅当 cause=7 时,可选地给出更具体的停止原因;否则为零。当前定义的 0 表示 Smdbltrp critical error。
Smdbltrp 的 critical-error 调试进入控制;扩展未实现时不存在。
Zicfilp 的先前 ELP 状态;未实现 Zicfilp 时不存在。
控制 VS 模式 EBREAK 是否进入 Debug Mode;无虚拟化模式时硬连为零。
控制 VU 模式 EBREAK 是否进入 Debug Mode;无虚拟化模式时硬连为零。
进入 Debug Mode 前的虚拟化模式,并可控制恢复时的虚拟化模式;无虚拟化模式时硬连为零。
控制 Debug Mode 中 mstatus.MPRV 是否生效;该可选位可硬连为 0 或 1。
NMI pending 指示;置位后可靠调试可能不再可行,具体取决于实现。
进入 Debug 模式后按 Debug Specification 读取 dcsr。
只修改目标调试字段,保留未修改位和实现定义字段。
通过 resume、单步或调试模块行为验证设置是否生效。