OpenOCD学习笔记 2-运行

以Windows下使用为例。

在cmd窗口下运行openocd -h可以获取帮助信息。

--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配置文件命令]

先了解一下-f命令,该命令是使用配置文件,后面的参数是配置文件*.cfg的路径。cfg文件可以是多个文件,例如:

openocd -f config1.cfg -f config2.cfg -f config3.cfg

openocd优先搜索当前文件夹,也可以通过-s命令或add_script_search_dir命令设置文件夹路径。

运行add_script_search_dir的方式如下(注意add_script_search_dir和参数都要用双引号括起来,试过这个命令没有成功,不知道是不是只能用-s来设置了):

openocd -c “add_script_search_dir c:”

一般情况下,首先要配置好调试器,可以在openocd的安装目录内找到和你手上调试器相同的cfg文件。例如如果使用DAPLink,则可以在文件夹OpenOCD\0.10.0-13\scripts\interface下找到cmsis-dap.cfg

运行openocd -f interface\cmsis-dap.cfg的结果如下:

xPack OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev (2019-07-17-11:28)

Licensed under GNU GPL v2

For bug reports, read

        http://openocd.org/doc/doxygen/bugs.html

Info : Listening on port 6666 for tcl connections

Info : Listening on port 4444 for telnet connections

Info : CMSIS-DAP: SWD  Supported

Info : CMSIS-DAP: JTAG Supported

Info : CMSIS-DAP: FW Version = 2.0.0

Info : CMSIS-DAP: Interface Initialised (JTAG)

Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1

Error: CMSIS-DAP command CMD_DAP_SWJ_CLOCK failed.

最后一个错误可以忽略,是因为没有指定目标板导致设置频率错误。

用文本编辑器打开cmsis-dap.cfg可以发现里面就一条命令:

interface cmsis-dap

Interface的参数常用的有cmsis-dap、ftdi、ft232r、jlink。注意,如果是用stlink,可以看一下stlink.cfg里面的配置,它的interface参数是hla。

全部的参数可以参考手册openocd.pdf中的8.2 Interface Drivers。

[-c命令模式]

上面用的是-f的方式运行,也可以用-c的方式运行:

openocd -c “interface cmsis-dap”

[-d调试功能]

调试功能有3级设置,等级3包括所有信息,而默认的等级2输出信息、错误和警告,等级1则只输出错误信息。命令方式如下:

openocd -c “interface cmsis-dap” -d1

[-l 输出到文件]

调试信息默认是输出到窗口的,可以通过-l命令输出到一个文件中。

openocd -c “interface cmsis-dap” -l “debug.txt”

这样调试信息都输出到openocd.exe所在文件夹

运行OpenOCD时它是作为一个server,所以还需要连接一个client(Telnet, GDB, RPC)来发送命令

Telnet:远程登陆系统

GDB:UNIX及UNIX-like下的调试工具(常用)

RPC:远程过程调用

 

 

 

你可能感兴趣的:(工具)