以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
--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:远程过程调用