littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于C语言的STM32调试工具

项目简介

本项目是一个开源的STM32调试工具,支持与STMicroelectronics的ST-Link设备通信。提供命令行工具和GDB服务器功能,可对STM32系列微控制器进行编程和调试操作,如读取/写入内存、擦除闪存、运行/停止目标微控制器等。支持STLINKv1和STLINKv2两种版本的设备,并有详细编译和使用说明。

项目的主要特性和功能

  1. 支持STLINKv1和STLINKv2设备,分别用SCSI passthru命令和原始USB命令通信。
  2. 具备GDB服务器功能,可通过GDB与STM32微控制器调试,支持设置断点、单步执行、读取/写入寄存器等操作。
  3. 支持对STM32微控制器的Flash内存进行擦除、写入和验证操作。
  4. 支持将程序直接加载到SRAM中运行,用于快速调试和测试。
  5. 使用Autotools进行构建,可通过简单命令编译和安装工具。
  6. 提供udev规则文件,便于在Linux系统中自动识别和配置ST-Link设备。

安装使用步骤

安装依赖

确保系统中已安装libusb-1.0pkg-config的开发版本。 bash sudo apt-get install libusb-1.0-0-dev pkg-config

编译项目

在项目根目录下执行以下命令进行编译。 bash ./autogen.sh ./configure make

运行GDB服务器

编译完成后,通过以下命令启动GDB服务器。 bash make && [sudo] ./st-util

连接GDB

使用ARM版本的GDB连接到GDB服务器进行调试。 bash arm-none-eabi-gdb fancyblink.elf (gdb) tar extended-remote :4242 (gdb) load (gdb) continue

设置udev规则(可选)

为方便使用ST-Link设备,将项目中的49-stlinkv*.rules文件复制到/etc/udev/rules.d/目录,并重新加载udev规则。 bash sudo cp 49-stlinkv*.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger

调试与操作

通过GDB服务器进行调试,支持加载程序到SRAM或Flash,设置断点,单步执行等操作。

注意事项

  • 使用STLINKv1设备,需先禁用操作系统的SCSI模拟功能,具体操作参考项目说明。
  • 确保使用ARM版本的GDB进行调试,而非x86版本的GDB。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】