Embedded libusb可以移植到微控制器上吗?

Embedded libusb可以移植到微控制器上吗?,embedded,microcontroller,libusb,libusb-1.0,Embedded,Microcontroller,Libusb,Libusb 1.0,我期待在USB设备上实现一些文件操作,该设备将插入基于微控制器的台式设备。该设备没有任何OS/RTO,仅在我计划开发的固件代码上运行。 固件将具有嵌入式设备通常具有的所有必要功能(UART、定时器、SPI、I2C、外部内存控制器等) 我的问题是: 我计划开发的固件中是否可以包含libusb库 libusb是否在非基于操作系统的环境中工作?或者我必须选择一个可以移植到微控制器上的操作系统,然后在用户空间中使用libusb库 libusb目前仅在Linux、OS X、Windows、Windows

我期待在USB设备上实现一些文件操作,该设备将插入基于微控制器的台式设备。该设备没有任何OS/RTO,仅在我计划开发的固件代码上运行。 固件将具有嵌入式设备通常具有的所有必要功能(UART、定时器、SPI、I2C、外部内存控制器等)

我的问题是:

  • 我计划开发的固件中是否可以包含libusb库
  • libusb是否在非基于操作系统的环境中工作?或者我必须选择一个可以移植到微控制器上的操作系统,然后在用户空间中使用libusb库

  • libusb目前仅在Linux、OS X、Windows、Windows CE、Android和OpenBSD/NetBSD上受支持。因此,是的,它确实需要一个底层操作系统。除非您的微控制器是可以运行Linux的ARM,否则如果不将低级代码移植到微控制器硬件并使其在没有操作系统的情况下工作(这将是一项巨大的工作),就不可能运行libusb


    如果您有具有USB功能的微控制器,则制造商很可能已经有了访问USB功能的库,和/或有第三方库可用。

    好的。谢谢你提供的信息。还有一个问题:正如您所说的,它只支持Linux、Windows和少数其他操作系统平台,它是否支持任何RTO?因为我很少看到我们使用RTOS和USB驱动程序的场景。这个操作系统列表来自,这与我看到的其他libusb文档是一致的。我从未见过libusb支持任何嵌入式RTOS。我使用了FreeRTOS,其中集成了一个VCP类。那就是获取ST USB代码并使用它。正如tc所说,制造商为他们的处理器提供USB代码。如果USB中没有几个FieleTOS实现,我会感到惊讶。这在结论中并不特别准确。考虑到有效地移植它可能是简单的,就像在LISBUB样式包中包住任何本地API一样。给定的应用程序可能只使用libusbapi的一个子集。不,特别需要一个操作系统——异步部分(如果需要)可能会由USB中断触发。最好是问一个开放的“我如何解决这个问题?”问题,而不是思考自己的解决方案,然后问“我如何使这个解决方案工作?”。您可能应该问的问题是“如何在xxxx微控制器上支持USB文件系统设备”。usblib可能不合适,因为您的系统没有可用的依赖项(例如POSIX API和驱动程序模型),但是如果您对所使用的微控制器不那么谨慎,您会得到一个更好更有用的答案。@Clifford-实际问到的问题不是如何做到这一点,而是一个简单的问题,如果有足够的内存,即使没有操作系统也可以做到这一点。然而,更有趣的问题是,即使您的目标是台式PC,它是否是解决您问题的正确解决方案。您提到“文件操作”,这通常不是人们希望用libusb做的事情,而是使用大容量存储和文件系统驱动程序。许多带有USB主机或OTG端口的嵌入式芯片已经有了安装和访问USB大容量存储“棒”的示例代码,可以让一些人在遇到问题时避免数周的头痛,并逐渐发现更多有经验的工程师已经知道的障碍。@Wedapasi:那么我建议,除非你打算嵌入Linux,否则你应该使用USB“裸机”支持作为选择标准的一部分。即使您使用的是RTOS内核,大多数也不要求使用设备模型,因此需要集成裸机解决方案。例如,STM32有,我成功地使用了裸金属和Keil RTX、FreeRTOS和Segger embOS。