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

时间:2022-03-27 06:52:56

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

http://blog.csdn.net/zoomdy/article/details/52884854
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的解决办法