Ubuntu下OpenOCD+GDB的安装、编译及使用

目标开发板(芯片):stm32mp157aaa
仿真器:ST-Link
操作系统:Ubuntu 18.04
调试软件:OpenOCD

OpenOCD的安装

  1. 首先下载OpenOCD有多种方式,可以GitHub上下载,目录下打开终端,输入

git clone git://git.code.sf.net/p/openocd/code openocd

下载完整的OpenOCD的文件夹。进入到OpenOCD的目录下,开始安装。

  1. 接着,OpenOCD适用于微处理器的debug和烧写,需要下载相关库

sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev

sudo apt-get install libtool libsysfs-dev

  1. 然后,引导生成环境

./bootstrap

  1. 其次,配置

./configure

配置完成后,可以看到打印的支持适配器列表
在这里插入图片描述

  1. 最后,编译安装

make
make install

安装成功后,可以通过指令查看版本确定安装完成

openocd -v

在这里插入图片描述

至此,OpenOCD的安装已经完成。安装过程中如果有错误,可能是权限问题,进入root权限下安装。

OpenOCD配置文件的介绍

在openocd的目录下有tcl子目录,该目录存放着很多范例脚本。
例如,Interface目录下存放的是与仿真器有关的脚本。
Board、chip、cpld、cpu、target等都存放与目标板、芯片、CPU等有关的脚本。
可参考官网文档
http://openocd.sourceforge.net/doc/html/index.html

OpenOCD的使用

在仿真器、目标板和电脑搭建好的情况下,

$ openocd -f interface/stlink-dap.cfg -f target/stm32mp15x.cfg

上述指令,打开了OpenOCD,然后在新的终端下进行调试。可参考链接OpenOCD的调试

  1. telnet方法

在新的终端

$telnet 127.0.0.1 4444

基本命令:

#reset 重启

#halt 暂停

#load_image /xloader.bin 0xd2800b00 将/xloader.bin载入到0xd2800b00

#resume 0xd2800b00 运行

  1. gdb方法

在新的终端

#arm-linux-gdb 进入gdb

#target remote 127.0.0.1:3333

基本命令:

#load /u-boot 载入u-boot,注意格式哦。

#file /u-boot

#b 设置断点

#c 继续

#n 单步

#s 进入函数

#print 查看值

#help 帮助

GDB的安装、编译

直接搬过来
linux下gdb的安装及查看方法

### 配置 Ubuntu 系统上的 Visual Studio Code 开发 Qt 项目 要在 Ubuntu 系统上通过 Visual Studio Code 创建并开发 Qt 项目,可以按照以下方法完成配置。 #### 安装必要的软件包 首先需要安装 Qt SDK 和其他依赖项。可以通过命令行执行以下操作来安装所需的工具链: ```bash sudo apt update sudo apt install qtbase5-dev qtcreator build-essential cmake gdb ``` 这一步会安装 Qt 的基础库以及 CMake 构建工具和调试器 GDB[^1]。 #### 设置 VSCode 工作区 创建一个新的工作目录用于存储项目的源码和其他资源文件。假设项目名为 `MyQtProject`,则可以在终端中运行如下命令初始化项目结构: ```bash mkdir MyQtProject && cd MyQtProject mkdir src include build .vscode touch main.cpp CMakeLists.txt ``` 这里分别创建了存放源代码 (`src`)、头文件 (`include`)、构建产物 (`build`) 及 IDE 特定配置文件夹 (`.vscode`) 的子目录[^2]。 #### 编写基本的 CMake 文件 为了支持现代 C++ 和 Qt 功能模块,在根路径下的 `CMakeLists.txt` 中定义好目标及其属性: ```cmake cmake_minimum_required(VERSION 3.16) project(MyQtApp VERSION 0.1 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Qt5 COMPONENTS Core Widgets REQUIRED) add_executable(${PROJECT_NAME} main.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Widgets) ``` 上述脚本指定了最低版本需求,并引入了两个主要组件——核心功能(Core)与窗口部件(widgets)。 #### 添加 IntelliSense 支持 为了让编辑器能够理解当前使用的标准库位置以及其他编译选项参数,需手动调整 `.vscode/c_cpp_properties.json` 文件的内容。例如下面的例子展示了如何指定包含路径以便获得更好的代码补全体验: ```json { "configurations": [ { "name": "Linux", "includePath": [ "/usr/include/x86_64-linux-gnu/qt5", "/usr/include/x86_64-linux-gnu/qt5/QtCore", "/usr/include/x86_64-linux-gnu/qt5/QtGui", "/usr/include/x86_64-linux-gnu/qt5/QtWidgets" ], "defines": [], "compilerPath": "/usr/bin/g++", "cStandard": "gnu11", "cppStandard": "gnu++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } ``` 此 JSON 对象设置了多个关键字段,比如自定义头文件查找范围(`includePath`)还有所选的标准方言(`cppStandard`)[^2]。 #### 调试配置 最后一步就是让开发者能够在遇到错误时快速定位问题所在之处。为此应该修改 launch configuration 来适配实际应用场景中的可执行二进制的位置。打开 settings 并找到 `"launch"` 键关联数组部分添加类似这样的条目: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` 其中特别需要注意的是 program 字段指向最终生成的应用程序实例地址[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝冰露

感谢老板打赏~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值