st-util GDB服务器使用指南:STM32调试的完整解决方案
st-util GDB服务器使用指南:STM32调试的完整解决方案
【免费下载链接】stlink Open source STM32 MCU programming toolset 项目地址: https://gitcode.com/gh_mirrors/st/stlink
st-util是开源STM32 MCU编程工具集stlink的核心组件,它提供了一个强大的GDB服务器,让开发者能够通过GDB调试器与STM32设备进行交互调试。作为STM32开发中不可或缺的调试工具,st-util为嵌入式开发者提供了完整的调试解决方案。
🔧 什么是st-util GDB服务器?
st-util是一个专门为STM32微控制器设计的GDB服务器程序。它通过ST-LINK调试探针连接到目标设备,并在本地网络端口上监听GDB连接请求。通过这种方式,开发者可以使用熟悉的GDB调试工具来调试STM32应用程序。
核心功能特点:
- 支持多种STM32系列芯片
- 提供标准的GDB远程协议接口
- 允许设置断点、单步执行、查看寄存器等
- 兼容多种ST-LINK调试器版本
🚀 快速开始使用st-util
安装stlink工具集
首先需要从源代码编译安装stlink工具集:
git clone https://gitcode.com/gh_mirrors/st/stlink
cd stlink
make release
sudo make install
启动GDB服务器
使用默认端口启动st-util:
st-util
或者指定自定义端口:
st-util -p 4500
⚙️ 常用参数配置详解
基本参数选项
| 参数 | 说明 | 示例 |
|---|---|---|
-p, --listen_port | 设置GDB服务器监听端口 | st-util -p 4500 |
-v, --verbose | 启用详细日志输出 | st-util -v |
-m, --multi | 设置GDB服务器为扩展模式 | st-util -m |
-n, --no-reset | 连接时不重置开发板 | st-util -n |
--semihosting | 启用ARM半主机输出 | st-util --semihosting |
高级调试功能
多会话模式 使用-m参数启用多会话模式,即使一个调试会话断开,服务器仍会继续监听新的连接。
半主机支持 启用半主机功能后,可以在调试过程中通过标准输出显示调试信息。
🎯 实战调试流程
连接GDB调试器
- 启动st-util服务器:
st-util -p 4500
- 在另一个终端启动GDB并连接:
gdb
(gdb) target extended-remote localhost:4500
完整的调试会话示例
# 终端1:启动GDB服务器
st-util -p 4500
# 终端2:GDB调试
gdb your_firmware.elf
(gdb) target extended-remote localhost:4500
(gdb) load
(gdb) break main
(gdb) continue
🔍 故障排除与优化
常见问题解决
权限问题 确保ST-LINK设备有正确的USB访问权限,检查udev规则文件:
- config/udev/rules.d/49-stlinkv1.rules
- config/udev/rules.d/49-stlinkv2.rules
- config/udev/rules.d/49-stlinkv3.rules
连接失败
- 检查ST-LINK设备是否正确连接
- 验证设备驱动是否正常加载
- 确认指定的端口没有被其他程序占用
📚 相关资源与文档
- 官方文档:doc/man/st-util.md
- 教程指南:doc/tutorial.md
- 源码目录:src/st-util/
💡 最佳实践建议
- 端口选择:避免使用常用端口,推荐使用4500以上的端口号
- 日志级别:调试时使用
-v参数,生产环境关闭详细日志 - 设备识别:当连接多个ST-LINK设备时,使用
--serial参数指定具体设备
通过st-util GDB服务器,STM32开发者可以获得与商业IDE相媲美的调试体验,同时享受开源工具带来的灵活性和透明度。无论您是嵌入式开发新手还是资深工程师,st-util都能为您的STM32项目开发提供强大的调试支持。
【免费下载链接】stlink Open source STM32 MCU programming toolset 项目地址: https://gitcode.com/gh_mirrors/st/stlink







