关于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版本是否对上了。