# SWD GDB 硬件调试
本页介绍如何使用 GDB(从终端)连接硬件目标。要使用集成开发环境,请参阅以下说明 日蚀 或 VSCode.
有关接线接口的设置,请参阅此详细信息: SWD/JTAG 调试接口.
# 使用 Dronecode 探头/Blackmagic 探头
备注
要调试 STM32F7 或更高版本(FMUv5 及更新版本)的 Dronecode 探头/Blackmagic 探头可能需要进行固件更新。您可以找到如何更新 黑魔法探头 (打开新窗口).
要在 GDB 中使用 Dronecode 探针,请使用自动驾驶仪上当前闪烁的 ELF 文件启动 GDB:
arm-none-eabi-gdb build/px4_fmu-v5_default/px4_fmu-v5_default.elf
然后,您必须选择 Dronecode 探测器接口,例如,在 Linux 下是这样:
target ext /dev/serial/by-id/usb-Black_Sphere_Technologies_Black_Magic_Probe_f9414d5_7DB85DAC-if00
然后扫描目标:
监视器 swdp_scan
你应该会看到类似的内容:
目标电压 3.3V 可用目标:没有。
1 STM32F76x M7
请注意,对于某些自动驾驶仪,它显示的电压为 0.0V,但后续步骤仍然有效。
现在您可以连接到该目标:
附1
现在你应该连接上了。
# 使用 JLink
要使用 JLink 调试器,首先需要 安装 JLink 软件 (打开新窗口) 包含 JLink GDB 服务器。
JLink 安装程序应将 JLink GDB 服务器安装到 /usr/bin/
.安装完成后,您可以使用以下命令启动服务器:
JLinkGDBServer -if swd
然后它可能会提示您更新 JLink(建议更新),然后指定与之通信的设备。请查看自动驾驶仪的文档了解具体设备。
完成后,GDB 服务器就会开始监听端口 2331
例如
检查目标电压...目标电压 3.28 V 监听 TCP/IP 端口 2331
连接目标...连接到目标 等待 对于 GDB 连接...
现在,您可以使用自动驾驶仪上当前闪存的确切 elf 文件(在单独的终端中)启动 GDB:
arm-none-eabi-gdb build/px4_fmu-v5_default/px4_fmu-v5_default.elf
并连接到 GDB 服务器:
目标遥控器:2331
现在你应该连接上了。
# GDB 快速入门
连接后,您可以使用常用的 GDB 命令,如
继续
继续执行程序运行
从头开始追溯
查看回溯break somewhere.cpp:123
来设置断点删除某处.cpp:123
再次移除当地信息
打印本地变量信息登记
打印寄存器
更多有关 GDB 的信息,请使用您喜欢的资源。
TIP
为了避免每次都在 GDB 中键入所有连接命令,可以将它们写入 ~/.gdbinit
.