简介
术语
上下文
版本
本文内容
结构
寄存器定义格式
Long Name(shortname, at 0x123)
背景
支持的功能
系统介绍
Debug模块(DM)
调试模块接口(DMI)
重置控制
选择hart
选择单个hart
选择多个hart
Hart状态
运行控制
抽象命令
抽象命令清单
访问寄存器
快速访问
存储器访问
程序缓冲区
总的状态机
系统总线访问
最小程度的干扰调试
安全
调试模块寄存器
Debug Module Status (dmstatus, at 0x11)
Debug Module Control (dmcontrol, at 0x10)
Hart Info (hartinfo, at 0x12)
Hart Array Window Select (hawindowsel, at 0x14)
Hart Array Window (hawindow, at 0x15)
Abstract Control and Status (abstractcs, at 0x16)
Abstract Command (command, at 0x17)
Abstract Command Autoexec (abstractauto, at 0x18)
Conguration String Pointer 0 (confstrptr0, at 0x19
Next Debug Module (nextdm, at 0x1d)
Abstract Data 0 (data0, at 0x04)
Program Buffer 0 (progbuf0, at 0x20)
Authentication Data (authdata, at 0x30)
Halt Summary 0 (haltsum0, at 0x40)
Halt Summary 1 (haltsum1, at 0x13)
Halt Summary 2 (haltsum2, at 0x34)
Halt Summary 3 (haltsum3, at 0x35)
System Bus Access Control and Status (sbcs, at 0x3
System Bus Address 31:0 (sbaddress0, at 0x39)
System Bus Address 63:32 (sbaddress1, at 0x3a)
System Bus Address 95:64 (sbaddress2, at 0x3b)
System Bus Address 127:96 (sbaddress3, at 0x37)
System Bus Data 31:0 (sbdata0, at 0x3c)
System Bus Data 63:32 (sbdata1, at 0x3d)
System Bus Data 95:64 (sbdata2, at 0x3e)
System Bus Data 127:96 (sbdata3, at 0x3f)
RISC-V调试
调试模式
Load-Reserved/Store-Conditional指令
WFI指令
Single Step
复位
dret指令
XLEN
核心调试寄存器
Debug Control and Status (dcsr, at 0x7b0)
Debug PC (dpc, at 0x7b1)
Debug Scratch Register 0 (dscratch0, at 0x7b2)
Debug Scratch Register 1 (dscratch1, at 0x7b3)
虚拟调试寄存器
Privilege Level (priv, at virtual)
Trigger模块
Native M-Mode触发器
触发器寄存器
Trigger Select (tselect, at 0x7a0)
Trigger Data 1 (tdata1, at 0x7a1)
Trigger Data 2 (tdata2, at 0x7a2)
Trigger Data 3 (tdata3, at 0x7a3)
Trigger Info (tinfo, at 0x7a4)
Trigger Control (tcontrol, at 0x7a5)
Machine Context (mcontext, at 0x7a8)
Supervisor Context (scontext, at 0x7aa)
Match Control (mcontrol, at 0x7a1)
Instruction Count (icount, at 0x7a1)
Interrupt Trigger (itrigger, at 0x7a1)
Exception Trigger (etrigger, at 0x7a1)
Trigger Extra (RV32) (textra32, at 0x7a3)
Trigger Extra (RV64) (textra64, at 0x7a3)
调试传输模块DTM
JTAG调试传输模块
JTAG背景
JTAG DTM寄存器
IDCODE (at 0x01)
DTM Control and Status (dtmcs, at 0x10)
Debug Module Interface Access (dmi, at 0x11)
BYPASS (at 0x1f)
Recommended JTAG Connector(推荐的jtag连接器)
附录A 硬件实现
A.1基于抽象命令
A.2基于执行
附录B 调试器实现
B.1调试模块接口访问
B.2检查停机
B.3暂停
B.4运行
B.5单步调试
B.6访问寄存器
B.6.1使用抽象命令
B.6.2使用程序缓冲区
B.7读取memory
B.7.1使用系统总线访问
B.7.2使用程序缓冲区
B.7.3使用抽象内存访问
B.8写memory
B.8.1使用系统总线访问
B.8.2使用程序缓冲区
B.8.3使用抽象内存访问
B.9触发器
B.10异常处理
B.11快速访问