୧ʕ •ᴥ•ʔ୨ Silent Lake

在 Windows 上用 Scoop 安装 ST-Link 工具

Published: | Updated: | 300 words | 2 mins

最近入手了一块 STM32 Nucleo-144 board,用来学习 Bare metal programming。因为板子上集成了 ST-Link,所以也不需要再购买额外的编程器,虽然我还有一个 Muse LabnanoDAP-HS 就是了。最后只需要安装好软件 stlink驱动可以正常进行烧录和调试了。

安装驱动

首先前往 ST 官网下载并安装驱动 STSW-LINK009。这一步没啥好说的,注册个账号然后下载安装就好。

可以直接从 stlink 的 GitHub releases 下载,也可以从源码编译安装。我是通过 Scoop 来安装的。

Warning

通过 Scoop 安装 stlink 时会有个坑,后面会提到。

1$ scoop update
2$ scoop install stlink
3$ st-info --version
4v1.8.0

安装完成后就会有 st-flashst-infost-tracest-util 这些命令行工具。

安装完成后,如果连接板子并执行 st-info --chip-id,或者 st-flash --reset write 之类的命令时,都会遇到下面的报错:

1C:/Program Files (x86)/stlink/config/chips: No such file or directory
2libusb: warning [winusb_get_device_list] failed to initialize device 'USB\VIDxxx'

这是因为 stlink 预期你会把文件解压到 C:\Program FilesC:\Program Files (x86) 下。

From stlink README:

However we suggest to move the unzipped application folder to C:\Program Files\ on 32-bit systems and to C:\Program Files (x86)\ on 64-bit systems (the toolset is 32-bit).

而 Scoop 安装的 stlink 会把相应的文件放到 $SCOOP/apps/stlink/current/Program Files (x86)/ 下面,所以才会出现 No such file or directory 的报错。

要解决这个问题的话也很简单,要么直接把目录复制到 C:\Program Files (x86)\ 下,要么就创建一个符号链接:

1# 要管理员权限
2New-Item -ItemType Junction -Path "C:\Program Files (x86)\stlink" -Target "$env:SCOOP\apps\stlink\current\Program Files (x86)\stlink"

问题解决。

 1$ st-flash --reset write firmware.bin 0x8000000
 2st-flash 1.8.0
 3libusb: warning [winusb_get_device_list] failed to initialize device 'USB\VID_xxx'
 42025-11-23T18:10:29 INFO common.c: STM32F42x_F43x: 256 KiB SRAM, 2048 KiB flash in at least 16 KiB pages.
 5file firmware.bin md5 checksum: 597e459b0cb9649579ffd7e7deefb, stlink checksum: 0x000018ab
 62025-11-23T18:10:29 INFO common_flash.c: Attempting to write 508 (0x1fc) bytes to stm32 address: 134217728 (0x8000000)
 7EraseFlash - Sector:0x0 Size:0x4000 -> Flash page at 0x8000000 erased (size: 0x4000)
 82025-11-23T18:10:30 INFO flash_loader.c: Starting Flash write for F2/F4/F7/L4
 92025-11-23T18:10:30 INFO flash_loader.c: Successfully loaded flash loader in sram
102025-11-23T18:10:30 INFO flash_loader.c: Clear DFSR
112025-11-23T18:10:30 INFO flash_loader.c: enabling 32-bit flash writes
122025-11-23T18:10:30 INFO common_flash.c: Starting verification of write complete
132025-11-23T18:10:30 INFO common_flash.c: Flash written and verified! jolly good!

其他工具

开发板

board

Tip

开发板上边的那一块就是集成的 ST-Link。

shell

Tip

最好去掉外壳上下的定位柱,因为那些柱子需要把 2.54 排针插进去 。但由于 3D 打印的精度问题,会导致插不进去,从而装不上外壳。

外壳模型

#Windows   #Stm32   #Stlink   #Scoop  

reply via e-mail copy as / view markdown