如何使用OpenOCD在GDB中获得信息注册工作

如何使用OpenOCD在GDB中获得信息注册工作,c,gdbserver,openocd,C,Gdbserver,Openocd,我是OpenOCD和GDB的新成员,所以请耐心对待我。我在Screen1中的服务器上运行OpenOCD,该服务器正在与系统对话。在屏幕1中,我正在等待连接: Info: JTAG tap:some abcd: CPU enabled 在屏幕2中,我启动gdb,然后 我进入屏幕1 openocd: accepting gdb connection from 2001 这很好,然后我收到一堆错误消息,如: Error: Target running halt it first. 我为什么要得到

我是OpenOCD和GDB的新成员,所以请耐心对待我。我在Screen1中的服务器上运行OpenOCD,该服务器正在与系统对话。在屏幕1中,我正在等待连接:

Info: JTAG tap:some abcd: CPU enabled
在屏幕2中,我启动gdb,然后

我进入屏幕1 openocd:

accepting gdb connection from 2001
这很好,然后我收到一堆错误消息,如:

Error: Target running halt it first.
我为什么要得到这个。我所做的只是连接。我要做的就是在gdb提示符下键入info reg并获取寄存器值

问题1:如何可靠地停止系统?命令是什么。如果我继续这样做

c
stop
CTRl-C
大部分时间info reg都是零,但偶尔我会得到有效值。 停止处理器并读取寄存器的保证是什么。

在openocd命令参数中应该有-c“reset halt”

或者,如果您通过telnet连接到openocd,则可以从gdb或在openocd提示符处键入reset halt

来自GDB

来自Telnet

将-c“telnet_port 4444”添加到openocd命令中,然后从另一个终端运行telnet localhost 4444

$telnet localhost 4444 正在尝试::1。。。 正在尝试127.0.0.1。。。 已连接到本地主机。 转义字符为“^]”。 开放式片上调试器 >复位停止
简而言之,我所需要的是一种可靠的方法来停止系统并使用gdb读取寄存器。当我点击CTRL-C时,它会在gdb说^CQuit的大部分时间停止,而不会停止。所以我想点击CTRL-C是有上下文关系的
c
stop
CTRl-C
(gdb) monitor reset halt