首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux上复制Windows驱动程序的功能?我需要这样做吗?

如何在Linux上复制Windows驱动程序的功能?我需要这样做吗?
EN

Stack Overflow用户
提问于 2021-07-02 08:52:55
回答 2查看 374关注 0票数 2

我需要在Linux上实现一个驱动USB连接设备(医疗器械)的应用程序。应用程序将用C++ (2011年标准)编写。

当前应用程序是在C#中为Windows 10编写的,并使用为设备枚举的标准Winusb驱动程序。我有一个完整的协议规范的命令和事件/中断回来。不幸的是,我不知道如何将这些信息传递给Linux中的USB层。如果它是一个简单的串行设备,那么就没有问题了,但我猜命令响应和中断事件是由驱动程序使用Winusb驱动程序中的功能复用的。

从文档的角度来看,哪里是最好的起点?或者,是否有Linux库(或驱动程序)提供与用于Linux的winusb大致相同的功能?

任何帮助都很感激。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-02 09:02:30

或者,是否有Linux库(或驱动程序)提供与用于Linux的winusb大致相同的功能?

一种方法是直接使用通用的USB内核API (参见异步I/O部件以获得中断):

https://www.kernel.org/doc/html/v4.15/driver-api/usb/usb.html

这是严格的Linux等价于WinUSB。

潜在的不太困难的方法是使用libusb,这也为您提供了跨平台特性。

(我假设您的设备被内核正确识别,并且不需要自定义驱动程序)

票数 1
EN

Stack Overflow用户

发布于 2021-07-02 17:10:32

是否有Linux库(或驱动程序)提供与用于Linux的winusb大致相同的功能?

是。libusb是一个流行的USB抽象库,它支持Linux、macOS和Windows。我还编写了一个名为libusbp的类似库,其中包含了一组对我的应用程序更有用的特性。这些是C库,因此需要一些工作才能从C#与它们进行互操作,但一旦这样做,您可能可以在Windows或Linux上使用相同的代码(因此您不必维护调用WinUSB的代码)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68222338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档