跳到主要内容

XRUSB

XRUSB 是 LibXR 中的 USB 设备协议栈。它由平台侧 USB 设备/端点实现与上层 USB Device Class 组合而成,主要面向设备侧(Device)开发。

主要特性

  • 现代 C++ 实现
  • 无锁数据结构
  • 双缓冲与 DMA 路径优化
  • 端点动态分配
  • 构造期一次性内存申请
  • 中断驱动与中断安全设计

设备协议栈支持

协议支持状态说明
CDC-ACM支持封装为 LibXR 的 UART 适配
HID支持标准键盘/鼠标/手柄类可直接使用,其他类型需自行派生
UAC支持当前主线主要是 UAC1 麦克风
GSUSB支持(CAN/FDCAN)面向 Linux SocketCAN
DFU Runtime支持处理运行时 DETACH 并延后跳转 bootloader
DFU Bootloader支持支持 DNLOAD / UPLOAD / GETSTATUS / ABORT / CLRSTATUS / manifest 流程
DAPLinkV2支持(仅 SWD)面向 CMSIS-DAP v2 Bulk 主机工具链

BOS / 平台能力支持

能力支持状态说明
WebUSB支持用于 DFU runtime / bootloader 等场景
WinUSB MS OS 2.0支持主要用于 DAPLinkV2 在 Windows 下的免驱发现

平台支持

平台PHY / 设备路径支持情况测试设备
STM32USB_DEVICE_FS支持STM32F103
STM32USB_DRV_FS支持(Device)STM32G431
STM32USB_OTG_FS支持(Device)STM32F401 / STM32F407
STM32USB_OTG_HS支持(Device)STM32F407 / STM32H750
ESP32-S3USB_OTG_FS支持(Device)ESP32-S3
CH32USB_DEVICE_FS支持CH32V203
CH32USB_OTG_FS支持(Device)CH32V307 / CH32V203 / CH32V208
CH32USB_OTG_HS支持CH32V305 / CH32V307

目录

说明

  • 平台相关实现页主要讲不同 MCU/SoC 上的 USB 设备与端点实现方式;
  • 设备协议栈页主要讲各个 USB Device Class 的行为与接口;
  • VID/PID 页只讨论 XRUSB 通用默认约定,不覆盖像 CMSIS-DAP 兼容这种特殊设备标识策略。