正确安装OpenOCD可以设置您的操作系统以授予它对调试适配器的访问权。在Linux上,这通常涉及安装一个文件 /etc/udev/rules.d ,所以OpenOCD具有权限。在contrib 目录中,OpenOCD附带了一个适用于许多常见适配器的示例规则文件。MS-Windows需要为每个外设配置复杂而混乱的驱动程序。这些问题是每个操作系统独有的,本用户指南中没有详细说明。
然后,您将调用OpenOCD服务器,并使用各种选项告诉它每个调试会话应该如何工作。 –help选项显示:
bash$ openocd --help
--help | -h display this help
--version | -v display OpenOCD version
--file | -f use configuration file
--search | -s dir to search for config files and scripts
--debug | -d set debug level to 3
| -d set debug level to
--log_output | -l redirect log output to file
--command | -c run
如果您没有给出任何 -f 或 -c 选项,OpenOCD会尝试读取配置文件OpenOCD.cfg。如果要指定一个或多个不同的配置文件,请使用 -f 选项。例如:
openocd -f config1.cfg -f config2.cfg -f config3.cfg
配置文件和脚本可以在下列地方搜索到:
在最好的情况下,您可以使用某个脚本库中的两个脚本,直接连接JTAG适配器,然后启动服务器……这样子您的JTAG设置将“开箱即用”。
重用这些脚本以启动服务器是可行的,但假设您需要更多的自定义功能,那么需要参见第5章[OpenOCD项目设置]。
如果您为JTAG适配器找到了一个脚本,并且为您的板或目标找到了一个脚本,那么您可以连接JTAG适配器,然后使用以下其中一个变体启动服务器:
openocd -f interface/ADAPTER.cfg -f board/MYBOARD.cfg
openocd -f interface/ftdi/ADAPTER.cfg -f board/MYBOARD.cfg
您可能还需要配置哪些重置信号存在,使用-c ’ reset_config trst_and_srst '或类似的东西。如果一切顺利,您将看到类似这样的输出:
Open On-Chip Debugger 0.4.0 (2010-01-14-15:06)
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : JTAG tap: lm3s.cpu tap/device found: 0x3ba00477
(mfg: 0x23b, part: 0xba00, ver: 0x3)
看到“tap/device found”消息,并且没有警告,意味着JTAG通信正在工作。这是一个关键的里程碑,但您可能需要更多特定于项目的设置。
OpenOCD首先处理命令行上提供的配置命令,如果没有给出 -c 命令或 -f file.cfg 选项,则在默认的OpenOCD.cfg文件中处理。详情请看 [配置阶段]。
在配置阶段的最后,它验证使用这些命令定义的JTAG扫描链——您的配置应该确保这始终成功。通常,OpenOCD会作为服务器开始运行。或者,可以使用命令提前终止配置阶段,执行工作(例如更新某些闪存),然后关闭,而不充当服务器。
一旦OpenOCD开始作为服务器运行,它就会等待来自客户端的连接(Telnet、GDB、RPC)并处理通过这些通道发出的命令。如果遇到问题,可以通过 -d 选项启用内部调试消息。还可以使用 -c 命令行开关将Jim-Tcl命令与/config脚本交错使用。
要启用调试输出(当报告问题或在OpenOCD本身上工作时),请使用 -d 命令行开关。此操作会将debug_level设置为“3”,输出最多的信息,包括调试消息。默认设置为“2”,只输出信息消息、警告和错误。您也可以在telnet或gdb会话中使用debug_level
注意: OpenOCD将启动GDB & telnet服务器,即使它不能与目标建立连接。通常,在通过GDB初始化脚本中的GDB监视器命令正确设置目标之前,JTAG控制器可能没有响应。