ST-Link-使用和介绍
这里介绍 ST-Link 的基本使用, 以及在 Linux 下工具集的安装.
介绍
STLink
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-tools 是一个开源项目, 提供了与 STLink 硬件接口通信的驱动程序和命令行工具.
stlink-tools 安装
在 Archlinx 下可直接:
1 |
|
(具体可看 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 连接情况以及信息
在将 STLink 连接到 Linux 主机后:
1 |
|
可找到如:
之后:
1 |
|
输出如:
st-flash 使用
擦除 STM32 开发板内的二进制
1 |
|
向 STM32 指定地址写入 binary
如当前目录下有 test.bin
文件, 将其写入到 STM32 的 0x08000000
地址, 则为:
1 |
|
读取 STM32 指定地址及长度的 binary
如从 0x08000000
读取 928
bytes 的内容并保存到 test.bin
文件中:
1 |
|
st-trace 的使用
在将 STLink 和 STM32 连接到电脑后, 运行:
1 |
|
此时 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 |
|
将 axf
文件转化为 elf
用:
1 |
|
ST-Link-使用和介绍
http://example.com/2024/03/18/ST-Link-使用和介绍/