项目简介
本项目是一个开源的STM32调试工具,支持与STMicroelectronics的ST-Link设备通信。提供命令行工具和GDB服务器功能,可对STM32系列微控制器进行编程和调试操作,如读取/写入内存、擦除闪存、运行/停止目标微控制器等。支持STLINKv1和STLINKv2两种版本的设备,并有详细编译和使用说明。
项目的主要特性和功能
- 支持STLINKv1和STLINKv2设备,分别用SCSI passthru命令和原始USB命令通信。
- 具备GDB服务器功能,可通过GDB与STM32微控制器调试,支持设置断点、单步执行、读取/写入寄存器等操作。
- 支持对STM32微控制器的Flash内存进行擦除、写入和验证操作。
- 支持将程序直接加载到SRAM中运行,用于快速调试和测试。
- 使用Autotools进行构建,可通过简单命令编译和安装工具。
- 提供udev规则文件,便于在Linux系统中自动识别和配置ST-Link设备。
安装使用步骤
安装依赖
确保系统中已安装libusb-1.0
和pkg-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】