【摘要】 什么是OpenOCDOpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。OpenOCD的功能需要调试仿真器来辅助完成,调试仿真器是一个提供调试目标电信号的小型硬件单元。常用的有JLink、STLink等,一些开发板直接集成了调试仿真器,如小熊派开发板就集成了STLink。通过下面的OpenOCD架构图我们能... 什么是OpenOCDOpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。 OpenOCD的功能需要调试仿真器来辅助完成,调试仿真器是一个提供调试目标电信号的小型硬件单元。常用的有JLink、STLink等,一些开发板直接集成了调试仿真器,如小熊派开发板就集成了STLink。 通过下面的OpenOCD架构图我们能更好的认识OpenOCD。可以看出OpenOCD提供了GDB Server,可以通过它进行GDB相关的调试操作。提供Telnet Server,可以通过Telnet连接对目标板进行烧录、重启等操作。OpenOCD的配置基于TCL脚本,可以使用默认自带的TCL脚本,也可以编写自定义的脚本。 如何使用上面我们提到OpenOCD需要调试仿真器配合使用,一般我们还会使用gdb client与其配合进行远程调试。 具体命令行操作步骤如下:
接下来就可以使用gdb命令进行开发板的调试了。 相关概念JTAGJTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:
SWD串行调试(Serial Wire Debug),一种和JTAG不同的调试模式,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。 SWD和传统的调试方式区别:
OpenOCD资料
|
|