4. 运行Openocd

正确安装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

配置文件和脚本可以在下列地方搜索到:

  1. 当前目录
  2. 使用 -s 选项在命令行上指定的任何搜索目录
  3. 使用 add_script_search_dir 命令指定的任何搜索目录
  4. OPENOCD_SCRIPTS环境变量中的一个目录(如果设置了)
  5. %APPDATA%/OpenOCD (仅在 Windows上)
  6. $HOME/Library/Preferences/org.openocd (仅在Darwin上)
  7. $ XDG_CONFIG_HOME/openocd ($ XDG_CONFIG_HOME defaults to $HOME/.config)
  8. $HOME/.openocd
  9. 站点范围内的脚本库:$pkgdatadir/site
  10. openocd提供的脚本库**$pkgdatadir/scripts**.
    将使用第一个找到的具有匹配文件名的文件。
    注意: 不要尝试使用包含“#”字符的配置脚本名称或路径,该字符以Tcl注释开头。

1. Simple setup, no customization(简单启动,不需要定制化功能)

在最好的情况下,您可以使用某个脚本库中的两个脚本,直接连接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通信正在工作。这是一个关键的里程碑,但您可能需要更多特定于项目的设置。

2.What OpenOCD does as it starts

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更改此设置(参见[debug level],第135页)。还可以使用 -l 开关将服务器的所有输出重定向到一个文件。

注意: OpenOCD将启动GDB & telnet服务器,即使它不能与目标建立连接。通常,在通过GDB初始化脚本中的GDB监视器命令正确设置目标之前,JTAG控制器可能没有响应。

你可能感兴趣的:(Openocd,openocd,debugger)