问题
在Vmware的ESXI虚拟机中使用OpenOCD的时候,一直提示找不到STM32的仿真器。
在系统硬件中可以看到连接的USB设备。
OpenOCD已经是最新版本20200310。
原因
经过查找后,确定原因是OpenOCD使用的libusb不能透过非libusb驱动的hub(恰好这是vmware实现USB映射的方法)找到此hub之下的libusb设备。
补充一个链接。
解决方法
经测试,最新版本的libusb已经支持了在hub下的设备遍历。测试方法就是下载最新版本的libusb并执行遍历的测试,可以看到设备。显然旧版本的看不到。
确定办法就是重新编译最新版本的OpenOCD,并且替换为最新版本的libusb。(注意要先用cygwin安装libusb,然后替换libusb)
编译步骤(参考此处):
但是注意到编译过程中可能出现一些错误,原因是windows下这个cygwin编译器和makefile不匹配,在Makefile里找到-Wxxxx关闭就可以了。
当然由于目录设置的问题,OpenOCD要放在C盘根目录下,还要调整编译选项:C:\OpenOCD。
说了这么多,太麻烦了。
1 | 链接:https://pan.baidu.com/s/11m8PbTbFTZYaSNV9kcsD6g |