关于OpenOCD+ST-LINK的若干问题

时间:2022-11-18 07:59:05


关于OpenOCD+ST-LINK的若干问题

mingdu.zheng at gmail dot com

没有访问权限

当前用户对USB设备没有访问权限的话,OpenOCD会返回如下错误提示:

Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

最简单的办法是在openocd命令前加sudo就可以。如果使用sudo不放心的话,可以创建文件名为98-stlink.rules的文件,并将此文件拷贝到/etc/udev/rules.d目录中,然后重启系统。有了这个文件后,插入的ST-Link设备的权限将被设置为666,即任何人都可以读写访问。98-stlink.rules文件内容如下:

SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3744", MODE="666"

检查ST-Link版本

OpenOCD支持ST-Link的三个版本,分别是ST-LINK, ST-LINK/V2, ST-LINK/V2-1。配置文件要引用对应的ST-LINK配置,可以通过lsusb命令查看所使用的ST-LINK的ID确定版本。

版本

配置文件

ID

ST-LINK

interface/stlink-v1.cfg

0483:3744

ST-LINK/V2

interface/stlink-v2.cfg

0483:3748

ST-LINK/V2-1

interface/stlink-v2-1.cfg

0483:374b

排除权限问题后,如果还出现open failed错误,那么需要检查ST-LINK版本是否对上了。

其它

​​ST-Link/V2不能挂载到VirtualBox的解决办法​​