ST-Link-使用和介绍

参考

这里介绍 ST-Link 的基本使用, 以及在 Linux 下工具集的安装.

介绍

STLink 是由 STMicroelectronics (ST) 公司开发的调试器/编程器, 用于与 ST 的 MCU (Microcontroller Unit) 进行通信, 调试, 编程和烧写固件.

现有 4 代 STLink, 特点各不相同:

  • STLINK/V1
    • transport layer 为 USB 上的 SCSI 直通命令
    • 独立的编程器
    • 板载于 STM32VL Discovery 板
  • STLINK/V2
    • transport layer 为 raw USB commands
    • 独立的编程器
    • 板载于 STM32L Discovery 和 STM32 Necleo 板
  • STLINK/V2-1
    • transport layer 为 raw USB commands
    • 板载于 STM32 Necleo 板
  • STLINK-V3
    • transport layer 为 raw USB commands
    • 独立的编程器
    • 板载于 STM32 Necleo 板

stlink-tools 是一个开源项目, 提供了与 STLink 硬件接口通信的驱动程序和命令行工具.

stlink-tools 安装

在 Archlinx 下可直接:

1
sudo pacman -Syy stlink

(具体可看 stlink github 仓库)

stlink-tools 包含的内容

stlink-tools 中包括:

  • st-info: 查看连接的 STLink 以及 STM32 device 的信息
  • st-flash: 将二进制文件刷新到 STM32 device 中
  • st-trace: 记录运行时的信息
  • st-util: 运行一个 GDB server (也就是 gdb 工具) 来与 STM32 device 交互
  • stlink-lib: 一个用于与 STLink 调试和编程接口进行通信的库
  • stlink-gui: 提供图形界面用于与 STLink 调试与编程接口进行交互

st-info 使用

在将 STLink 连接到 Linux 主机后:

1
lsusb

可找到如:

之后:

1
st-info --probe

输出如:

st-flash 使用

擦除 STM32 开发板内的二进制

1
st-flash erase

向 STM32 指定地址写入 binary

如当前目录下有 test.bin 文件, 将其写入到 STM32 的 0x08000000 地址, 则为:

1
st-flash write test.bin 0x08000000

读取 STM32 指定地址及长度的 binary

如从 0x08000000 读取 928 bytes 的内容并保存到 test.bin 文件中:

1
st-flash read test.bin 0x08000000 928

st-trace 的使用

在将 STLink 和 STM32 连接到电脑后, 运行:

1
st-trace

此时 STLink 则被 st-trace 命令接管, 任何 STM32 上运行的输出信息都会打印出.

常见参数有:

  • -vXX, --verbose=XX, XX 指 verbosity level, 可选 0~99 的值
  • -v, --verbose, 开启通用的调试等级
  • -sXX, --serial=XX, 指定 serial number
  • -cXX, --clock=XX, 指定 core frequency, 如 --clock=2m, 有 k=kHz, m=MHz, g=GHz
  • -tXX, --trace=XX, 指定 trace frequency, 指定方式值和 -cXX 的一样

st-util 的使用

指定 GDB server 开启的端口

若不指定, 则默认使用 4242 端口;

1
2
3
4
$ st-util -p 4500
$ gdb
(gdb) target extended-remote localhost:4500
(gdb) load firmware.elf

axf 文件转化为 elf 用:

1
arm-none-eabi-objcopy -O elf32-littlearm test.axf test.elf

ST-Link-使用和介绍
http://example.com/2024/03/18/ST-Link-使用和介绍/
作者
Jie
发布于
2024年3月18日
许可协议