我需要在Linux上实现一个驱动USB连接设备(医疗器械)的应用程序。应用程序将用C++ (2011年标准)编写。
当前应用程序是在C#中为Windows 10编写的,并使用为设备枚举的标准Winusb驱动程序。我有一个完整的协议规范的命令和事件/中断回来。不幸的是,我不知道如何将这些信息传递给Linux中的USB层。如果它是一个简单的串行设备,那么就没有问题了,但我猜命令响应和中断事件是由驱动程序使用Winusb驱动程序中的功能复用的。
从文档的角度来看,哪里是最好的起点?或者,是否有Linux库(或驱动程序)提供与用于Linux的winusb大致相同的功能?
任何帮助都很感激。谢谢
发布于 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,这也为您提供了跨平台特性。
(我假设您的设备被内核正确识别,并且不需要自定义驱动程序)
https://stackoverflow.com/questions/68222338
复制相似问题