文章目录[隐藏]
一.解决方法
当我们使用 openocd + j-link 进行烧录和调试时,会接收到这样的警告:Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED
,最后发现找不到 j-link:Error: No J-Link device found
,尽管我们能使用 j-scope,j-flash 等工具,在 KEIL 中也可以正常识别 j-link 。
在 SEGGER 的维基中提到了原因:
In general, it is possible to use J-Link with OpenOCD. OpenOCD handles J-Link as a dumb JTAG/SWD/… probe and only uses the very low level logic to output JTAG/SWD/… sequences. It does not make use of any high level logic etc. and therefore is much slower than the proprietary SEGGER J-Link DLL / GDBServer / … implementation. In order to use J-Link with OpenOCD the standard J-Link USB driver must be replaced with the WinUSB driver, using 3rd party utilities. There are lots of walkthroughs available on the internet.
简单来说就是 openocd 使用 jlink 的方式很低级,所以我们需要把 j-link 原来的驱动更换为 WinUSB 驱动才可以被 openocd 识别。
zadig 和 USBDriverTool 都可以更换驱动,网上绝大部分的教程都推荐使用 zadig,但是其实 USBDriverTool 在这个场景下更适用,原因是 USBDriverTool 不但可以将 j-link usb 驱动转为 WinUSB 驱动,还可以再转换回去,这个是 zadig 做不到的。
SEGGER 的维基中还提到了一点:
Note: Once the J-Link USB driver has been replaced, no SEGGER software from the J-Link software package will be able to communicate with J-Link anymore. To use SEGGER J-Link software again, the USB driver needs to be switched back to its default.
也就是说,我们把 j-link 的驱动转换成 openocd 可以识别的 WinUSB 驱动之后,j-scope,j-flash 等软件都无法使用,也无法在 KEIL 中使用 j-link 烧录和调试程序了。如果想使用这些工具,就必须把驱动还原回去,这时候 USBDriverTool 就派上用场了。
偏题一下,使用 openocd + j-link 是一种比较低效的方式,如果使用 j-link 作为调试器,那么使用 j-link gdb server 或者强大的 ozone 可能更为合适一些。
二.操作步骤
1.zadig
首先插好 j-link ,并选择List All Devices
:
最后设备选择 j-link ,要更换的驱动选择 WinUSB ,最后点击Replace Driver
即可完成驱动的替换。值得一提的是,这里可以看到 j-link原来的驱动被识别为 jlink(v2.6.8.1),我们如果要把驱动换回去,就要恢复成现在的样子。
2.USBDriverTool
同样需要先插好 j-link 然后在 j-link 设备上单击右键,选择Install WinUSB
即可完成驱动的转换。
如果想要恢复回原来的驱动,只需选择Restore default driver
:
然后选择我圈出来的两个驱动之一即可。恢复完驱动之后,可以使用 j-scope 等工具看一看能不能识别到 j-link。关心 j-link 驱动的版本的话,可以使用 zadig 软件看看和之前的版本号是否一致。
三.参考资料
More on Segger J-Link and VisualGDB.
版权声明:本文为CSDN博主「Qrpucp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45467056/article/details/119886361
暂无评论