【发布时间】:2014-03-03 08:27:06
【问题描述】:
我期待在 USB 设备上实现一些文件操作,该设备将插入基于微控制器的台式设备。该设备没有任何 OS/RTOS,仅在我计划开发的固件代码上运行。 固件将具有嵌入式设备通常具有的所有必要功能(UART、定时器、SPI、I2C、外部存储控制器等)。
我的问题是:
- 能否将 libusb 库整合到我计划开发的固件中?
- libusb 是否可以在基于非操作系统的环境中工作?还是我必须选择一个可以移植到微控制器上的操作系统,然后在用户空间中使用 libusb 库?
【问题讨论】:
-
最好问一个开放的“我该如何解决这个问题?” 的问题,而不是想你自己的解决方案然后问“我该怎么做这个解决方案有效吗?”。您可能应该问的问题是“我如何在 xxxx 微控制器上支持 USB 文件系统设备”。 usblib 可能不合适,因为您的系统无法使用依赖项(例如 POSIX API 和驱动程序模型),但如果您对所使用的微控制器不那么谨慎,您会得到更好更有用的答案。
-
@Clifford - 提出的实际问题不是如何做,而是一个简单的问题
-
是的,只要有足够的内存,即使没有操作系统也可以做到这一点。然而,更有趣的问题是它是否是您问题的正确解决方案,即使您的目标是台式 PC。您提到“文件操作”,这通常不是人们想要对 libusb 做的事情,而是使用大容量存储和文件系统驱动程序。许多带有 USB 主机或 OTG 端口的嵌入式芯片已经具有用于安装和访问 USB 大容量存储“棒”的示例代码。
-
“不”有一个深思熟虑的理由,可以节省人们数周的时间来解决问题并逐渐发现更有经验的工程师已经知道的障碍。
-
@WedaPashi :那么我建议,除非您打算嵌入 Linux,否则您将使用 USB“裸机”支持作为选择标准的一部分。即使您使用的是 RTOS 内核,大多数都不需要设备模型,因此需要集成裸机解决方案。例如 STM32 有 USB on-the-go Host and device library (UM1021),我已经成功地使用了裸机以及 Keil RTX、FreeRTOS 和 Segger embOS。
标签: embedded microcontroller libusb libusb-1.0