使用 OpenOCD 来调试 STM32
使用 OpenOCD 来调试 STM32
本文将详细介绍如何使用OpenOCD来调试STM32微控制器。通过本文,你将学习到OpenOCD和GDB的基本概念,以及如何在Windows环境下搭建调试环境。
在上一篇博客《在Windows上交叉编译STM32(环境搭建)》中,我们已经让CubeMX生成的工程成功编译,并下载到板子上了。这篇博客主要继续介绍接下来的步骤,调试。硬件是使用的ST-LINK,别的也无所谓,只要是OpenOCD支持的就可以。
OpenOCD & GDB
这里还是,介绍的文章特别多,好的也很多。本人博客简单讲原理,大家一起从原理上理解了,会用了。我也就达到目的了。
OpenOCD(On-Chip Debugger)很多这种缩写只要看到全部的单词也就能猜到其意义。这个东西就是一个针对不同单片机调试器的配饰器,什么J-Link、ST-Link支持的还比较多。
依靠OpenOCD打通了开发机和单片机调试器的通路,那么还需要一个能够对于代码解析,发送对应调试命令的工具。很显然这个工具就是我们大多数人所熟知的GDB了。
OpenOCD 下载
下载地址 Github:
https://github.com/xpack-dev-tools/openocd-xpack/releases
或者从我的网盘下载:
链接:https://pan.baidu.com/s/1TOcZRSXVSfGCq2lcG3bJvw?pwd=fplu
提取码:fplu
CSDN 0 积分下载(我设置的是 0 ):
https://download.csdn.net/download/Megahertz66/89047213
下载后无需安装,解压后将其bin目录添加到PC的PATH路径就可以了。然后在cmd下测试openocd --version,观察输出确认是否安装成功。
连接调试器
openocd -f <接口配置文件> -f <目标芯片配置文件>
接口配置文件所在目录:
xpack-openocd-0.12.0-2\openocd\scripts\interface\
目标芯片配置文件是openOCD支持的目标芯片:
xpack-openocd-0.12.0-2\openocd\scripts\target
例如,我所使用的调试器是ST-Link V2,板子上的芯片是STM32F103RCT6。那么我应该使用的命令就是:
openocd -f E:\MCU\openOCD\xpack-openocd-0.12.0-2x64\xpack-openocd-0.12.0-2\openocd\scripts\interface\stlink-v2.cfg -f E:\MCU\openOCD\xpack-openocd-0.12.0-2x64\xpack-openocd-0.12.0-2\openocd\scripts\target\stm32f1x.cfg
注意,把命令里面的路径换成你自己的!!!!
然后你就能在终端上看到这样的输出:
通过 GDB 调试
在上一篇博客中已经介绍了如何安装STM交叉编译工具链,工具链本身内部是包含GDB工具的。如果已经安装好了STM32编译工具链,可以实时GDB是不是已经安装到你的电脑上了。
如果已经安装好了,接下来首先通过OCD连接到你的板子(调试器上电+板子上电)。然后你会看到上上个图中红框里面的内容。
这时候,你需要再打开一个终端,使用命令:
arm-none-eabi-gdb .\Cube_test_led_01.elf
注意:这个elf文件就是通过CubeMX配置后编译出来的可执行文件。待连接完成,然后再通过命令使用本地网络去连接OCD已经创建好的3333端口,
target remote localhost:3333
总结
通过前上一篇博客对STM32的交叉编译工具的安装,加上本篇博客对于openOCD的安装。目前已经实现了在windows上编辑,编译,调试STM32了。