找回密码
 立即注册
查看: 6046|回复: 1

记录下解决“Operation not supported or unimplemented on this platform”报错

[复制链接]

2

主题

2

回帖

72

积分

注册会员

积分
72
发表于 2023-6-19 22:42:27 | 显示全部楼层 |阅读模式
【efinity版本:2021.2.323.1.8,打了patch,windows 10】
本来programmer和debugger用的好好的,突然不知道从什么时候开始,都打不开了。查看log/console发现报错:Operation not supported or unimplemented on this platform
进一步排查发现报错和libusb相关。

尝试重新安装相同版本的efinity,结果还是一样的报错。尝试了FT232H、FT2232H的下载器,都是一样的报错。
安装2022.2的efinity,这个问题就神奇的解决了。。。
当时考虑到项目管理问题,没有直接换成2022.2。


今天突发奇想,深入探究下是什么原因。
终于在通过process explorer查看两个版本的programmer都加载了哪些dll的时候发现了不同:2021.2的加载的是libusb-1.0.dll,而2022.2加载的是libusb0.dll


于是我把libusb-1.0.dll都删掉,然后打开2021.2的programmer,没有报错了!!


进一步看了下代码,发现2022.2的“C:\Efinity\2022.2\pgm\bin\efx_pgm\usb_resolver.py”文件的45行附近相比2021.2的多了这样一段代码:


  1. if platform == 'win32':
  2.     # On Windows, Prefer libusb0 since it is more stable
  3.     UsbTools.BACKENDS = ('usb.backend.libusb0', 'usb.backend.libusb1')
复制代码
看来确实得用libusb0。。。

我在删除所有libusb-1.0.dll之前,尝试过在2021.2的usb_resolver.py的相同位置添加代码,却还是加载的libusb-1.0.dll,可能不能直接改源代码吧。。。

(这件事告诉我们最好用最新版的efinity软件

15

主题

108

回帖

762

积分

管理员

积分
762
发表于 2023-6-23 15:02:55 | 显示全部楼层
这就是传说的 工匠精神
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|CrazyFPGA ( 粤ICP备2023025753号 )

GMT+8, 2024-5-19 17:25 , Processed in 0.041024 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表