本文主要是介绍openocd riscv 对应的jtag动作解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
openocd 服务器开启时
1.探测存在的核心
2.halt住核心
3.读misa
4.resume核心
5.循环查询dmstatus
traget remote时
1.halt住核心
2.读了X0-X31和PC
2.读各种CSR寄存器(TODO)
disconnect 时
1. resume request
openocd 服务器 被ctrl-c 结束时
1. resume request
load
1.用 riscv-debug-release.pdf B.8.2 Using Program Buffer Write block of memory using program buffer: 的时序写内存
2.设置 dpc
continue
1. resume request
核心运行时在gdb命令行下ctrl-c1.删除软件断点2.halt
file
读各种csr
b main
使用软件断点注意 : 在riscv 上, 在 continue 的时候 会1.修改 main指令位置 的指令为 ebreak2.resume
再次进入 halt 模式时1. 修改 main指令位置 的指令为 原来的指令2. halt
hbreak main
硬件断点注意 : 在riscv 上, 在 continue 的时候 会1.修改trigger 寄存器以设置断点2.resume
这篇关于openocd riscv 对应的jtag动作解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!