当前位置: 首页 > news >正文

stm32使用Jlink进行GDB脚本调试

1.安装环境

需要安装msys2和gbd,具体可以参考网上怎么安装

2.安装J-link GDB

这个只要安装了J-link,都会有。直接再windows搜索下打开。


正确配置好后会显示等待连接

3.和GDB server连接

将端口号等信息连接,我是直接将J-link GDB的信息都告诉AI了,让AI帮我连接好

4.运行

连接到gdb

开始单步运行

输入n开始单步运行

全速运行


输入c开始全速运行

可以看到我的板子上的2个灯开始闪烁了,成功。让我脱离IDE界面进行代码的调试

1. 启动与连接

# 进入工程目录cd/c/Users/10377/Desktop/Uart/USB_HOST/USB_HOST# 启动 J-Link GDB Server(在另一个 MSYS2/命令行窗口执行)"/d/Program Files/SEGGER/JLink/JLinkGDBServerCL.exe"-deviceSTM32F429IG-ifSWD-speed4000-port2331# 启动 GDB(使用 debug.gdb 自动连接、烧录、停在 main)/c/Users/10377/tools/xpack-arm-none-eabi-gcc-15.2.1-1.1/bin/arm-none-eabi-gdb.exe-xdebug.gdb MDK-ARM/USB_HOST/USB_HOST.axf

2. 运行控制

命令作用
c/continue继续运行
s/step单步进入(会进函数)
n/next单步跳过(不进入函数)
finish运行到当前函数返回
u/until运行到下一行(适合跳出循环)
Ctrl + C暂停目标
monitor reset复位目标
monitor halthalt 目标
monitor go让目标自由运行(慎用,会导致 GDB 失步)

3. 断点

break main # 在 main 函数入口打断点 break main.c:241 # 在 main.c 第 241 行打断点 break TIM6_DAC_IRQHandler # 在中断服务函数打断点 info breakpoints # 列出所有断点 delete 1 # 删除编号为 1 的断点 delete breakpoints # 删除所有断点 disable 1 # 禁用断点 enable 1 # 启用断点

4. 查看状态

info registers # 查看所有寄存器 info registers pc # 只看 PC print x # 打印变量 x 的值 print/x x # 十六进制显示 print/d x # 十进制显示 print &x # 打印变量地址 info locals # 查看当前栈帧局部变量 info args # 查看当前函数参数 backtrace # 查看调用栈(可简写 bt) frame 2 # 切换到第 2 号栈帧

5. 内存与外设查看

x/10wx 0x20000000 # 从 RAM 起始地址查看 10 个字(32 位十六进制) x/16bx 0x08000000 # 查看 Flash 前 16 字节 x/4wx 0xE000E010 # 查看 SysTick 寄存器(CTRL / LOAD / VAL / CALIB) x/1wx 0x40020414 # 查看 GPIOB_ODR(LED 输出状态)

6. 反汇编

disassemble main # 反汇编 main 函数 disassemble 0x08002630,+40 # 从指定地址反汇编 40 字节

7. 程序下载

load # 用 .axf 加载(本工程会出现 .data 初始化问题,不建议使用) restore MDK-ARM/USB_HOST/USB_HOST.hex # 烧录 Keil 生成的 hex(推荐)

8. 常用 GDB 配置

set pagination off # 关闭分页,便于脚本输出 set confirm off # 关闭确认提示 handle SIGTRAP nostop nopass # 忽略 J-Link 产生的 SIGTRAP set logging on # 把 GDB 输出写入日志文件

9. 退出

quit # 退出 GDB

10. 最简调试流程

  1. 启动 J-Link GDB Server(端口2331)。
  2. 在工程目录下执行:
/c/Users/10377/tools/xpack-arm-none-eabi-gcc-15.2.1-1.1/bin/arm-none-eabi-gdb.exe-xdebug.gdb MDK-ARM/USB_HOST/USB_HOST.axf
  1. 停在main()后输入:
c # 全速运行,LED 开始闪烁
  1. 需要查看状态时按Ctrl + C暂停,再用上述命令检查。
http://www.jsqmd.com/news/1002146/

相关文章:

  • 洞察2026年6月模具温控系统市场:五家评价高的制造厂深度解析 - 品牌鉴赏官2026
  • 3大技术突破:MMD Tools如何打通Blender与MikuMikuDance的次元壁
  • 永城奔驰宝马奥迪保养多少钱?真实花费指南 - 品牌排行榜
  • 下雨天再也不用狂奔回家收衣服:30元DIY一个智能晾晒助手
  • Unity URP 法线贴图如何生成 用什么工具创建
  • 流体智能体强化学习:动态群体协作的新范式
  • 3分钟上手:英雄联盟玩家的智能游戏助手完全指南
  • MC9S08GT系列8位MCU:低功耗架构与丰富外设的嵌入式经典设计解析
  • AI 驱动的会议效率提升:从语音转写到行动项提取的工程实践
  • Zotero GPT终极指南:如何用AI智能插件5分钟打造高效文献助手
  • 2026年上海松江区权威金条回收+银条回收机构推荐:称重准 报价实 - 沪上贵金属口碑推荐官
  • 5分钟解决日文游戏乱码:Locale-Emulator终极配置指南
  • 儿童增高床垫品牌哪家好?自己用过才敢说 - 深圳市民HLL
  • Kemono下载器:Windows平台终极批量下载解决方案
  • 56800TDC开发套件实战指南:从硬件安装到CodeWarrior环境搭建
  • 上海嘉定区金条回收别乱找!2026公认靠谱的机构都在这 - 沪上贵金属口碑推荐官
  • 【毕业设计】基于 SpringBoot 的个性化旅游行程规划系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 68HC908LJ12深度解析:8位MCU的Flash管理与低功耗设计实战
  • 嵌入式安全实践:基于IEC 60730标准的MCU硬件特性与软件自检设计
  • 汽车电子MCU选型与开发实战:MPC5646C架构解析与应用指南
  • 南京日语培训班哪家强 2026年实力机构选择参考 - 品牌排行榜
  • 别再死记硬背了!用Wireshark抓包实战,帮你彻底搞懂TCP确认与重传(附谢希仁习题解析)
  • 别再死记硬背公式了!图解OpenCV C++灰度变换:线性、对数、伽马变换的本质与视觉原理
  • 如何训练使用——焊接焊缝缺陷检测数据集,5类,1400张。
  • LanzouAPI:一键获取蓝奏云直链的智能解析工具
  • 2026秋季游戏排期全解:41款产品的“逃难”数据
  • Rust 异步 TCP 与自定义协议解析:从字节流到结构化消息
  • ESP32/STM32可用的双模无线CNC雕刻固件,含蓝牙+WiFi完整驱动与G代码执行能力
  • 如何拯救损坏的二维码?免费网页工具QRazyBox终极恢复指南
  • 告别人工值守!AI客服智能体搭配知识库实现服务提效