# tinyUSB_doc_ZH **Repository Path**: csbobo/tinyUSB_doc_ZH ## Basic Information - **Project Name**: tinyUSB_doc_ZH - **Description**: tinyUSB中文文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-19 - **Last Updated**: 2024-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README | 构建状态 | | 文档状态 | | 模糊测试状态 | | 许可证 | 赞助商 ============== TinyUSB由以下机构资助:Adafruit。从他们那里购买产品有助于支持此项目。 .. figure:: docs/assets/adafruit_logo.svg :alt: Adafruit Logo :target: https://www.adafruit.com TinyUSB项目 =============== .. figure:: docs/assets/logo.svg :alt: TinyUSB TinyUSB是一个开源的跨平台USB主机/设备堆栈,适用于嵌入式系统,设计为内存安全,没有动态分配,并且线程安全,所有中断事件都延迟处理,然后在非ISR任务函数中处理。有关更多详细信息,请查看在线 `文档 `__ 。 .. figure:: docs/assets/stack.svg :width: 500px :alt: stackup :: . ├── docs # 文档 ├── examples # 使用make和cmake构建系统的示例 ├── hw │ ├── bsp # 支持的板卡源文件 │ └── mcu # 低级mcu核心和外设驱动程序 ├── lib # 来自第三方(如freeRTOS、fatfs)的源代码 ├── src # TinyUSB堆栈本身的全部源代码文件 ├── test # 测试:单元测试、模糊测试、硬件测试 └── tools # 内部使用的文件 入门 =============== 有关使用TinyUSB及其实现的信息,请参阅 `在线文档 `_ 。 我们使用 `GitHub Discussions `_ 作为我们的论坛。这是一个询问社区问题和建议或讨论基于TinyUSB的项目的好地方。 有关错误和功能请求,请 `提交问题 `_ 并遵循那里的模板。 请查看 `入门指南 `_ 以将TinyUSB添加到您的项目或构建示例。如果您是TinyUSB的新手,我们建议从 `cdc_msc` 示例开始。 请查看 `移植指南 `_ 以添加对新MCU和板卡的支持。 设备堆栈 ============ 支持通过动态更改USB描述符、低功耗功能(如挂起、恢复和远程唤醒)来支持多个设备配置。以下设备类支持: - 音频类 2.0 (UAC2) - 蓝牙主机控制器接口 (BTH HCI) - 通信设备类 (CDC) - 设备固件更新 (DFU):DFU模式(WIP)和运行时 - 人体接口设备 (HID):通用(输入/输出)、键盘、鼠标、游戏手柄等 ... - 大容量存储类 (MSC):具有多个LUN - 音乐乐器数字接口 (MIDI) - 带有RNDIS、以太网控制模型 (ECM)、网络控制模型 (NCM) 的网络 - 测试和测量类 (USBTMC) - 视频类 1.5 (UVC):进行中 - 带有通用输入/输出端点的厂商特定类支持。可以与MS OS 2.0兼容描述符一起使用,无需INF文件即可加载winUSB驱动程序。 - `WebUSB `__ 带有厂商特定类 如果您有特殊要求,可以使用 `usbd_app_driver_get_cb()` 来编写自己的类驱动程序,而无需修改堆栈。以下是RPi团队添加其重置接口 `raspberrypi/pico-sdk#197 `_ 的方法。 主机堆栈 ========== - 人体接口设备 (HID):键盘、鼠标、通用 - 大容量存储类 (MSC) - 通信设备类:CDC-ACM - 厂商串行通过USB:FTDI、CP210x - 支持多级的主机 类似于设备堆栈,如果您有特殊要求,可以使用 `usbh_app_driver_get_cb()` 来编写自己的类驱动程序,而无需修改堆栈。 TypeC PD堆栈 ============== - 供电交付 3.0 (PD3.0) 带USB Type-C支持(进行中) - 超早期阶段,仅用于测试目的 - 仅支持STM32 G4 操作系统抽象层 ==================== TinyUSB通过将所有中断服务请求 (ISR) 事件推送到中央队列,然后在非ISR上下文任务函数中稍后处理它们,从而完全线程安全。它还使用信号量/互斥锁来访问共享资源,例如通信设备类 (CDC) FIFO。因此,堆栈需要使用一些操作系统的基本API。以下操作系统已经支持: - **无操作系统** - **FreeRTOS** - `RT-Thread `_: `repo `_ - **Mynewt** 由于newt包构建系统,Mynewt示例最好放在其 `单独的repo `_ 支持的CPU ============== 以下CPU受支持,请查看 `支持的设备 `_ 以获取每个CPU的驱动程序和功能的完整列表。 +--------------+------------------------------------------------------------+ | Manufacturer | Family | +==============+============================================================+ | Allwinner | F1C100s/F1C200s | +--------------+------------------------------------------------------------+ | Analog | MAX3421E (usb host shield) | +--------------+------------------------------------------------------------+ | Brigetek | FT90x | +--------------+------------------------------------------------------------+ | Broadcom | BCM2711, BCM2837 | +--------------+------------------------------------------------------------+ | Dialog | DA1469x | +--------------+------------------------------------------------------------+ | Espressif | ESP32 S2, S3 | +--------------+------------------------------------------------------------+ | GigaDevice | GD32VF103 | +--------------+------------------------------------------------------------+ | Infineon | XMC4500 | +--------------+------------------------------------------------------------+ | | SAM: D11, D21, D51, E5x, G55, L2x, E7x, S7x, V7x | | MicroChip | | | | PIC: 24, 32mm, 32mk, 32mx, 32mz, dsPIC33 | +--------------+------------------------------------------------------------+ | Mind Montion | mm32 | +--------------+------------------------------------------------------------+ | NordicSemi | nRF52833, nRF52840, nRF5340 | +--------------+------------------------------------------------------------+ | Nuvoton | NUC 120, 121, 125, 126, 505 | +--------------+------------------------------------------------------------+ | NXP | iMXRT: RT10xx, RT11xx | | | | | | Kinetis: KL, K32L2 | | | | | | LPC: 11u, 13, 15, 17, 18, 40, 43, 51u, 54, 55 | | | | | | MCX: A15, N9 | +--------------+------------------------------------------------------------+ | Raspberry Pi | RP2040 | +--------------+-----+------------------------------------------------------+ | Renesas | RA: 4M1, 4M3, 6M1, 6M5 | | | | | | RX: 63N, 65N, 72N | +--------------+-----+------------------------------------------------------+ | Silabs | EFM32GG12 | +--------------+------------------------------------------------------------+ | Sony | CXD56 | +--------------+------------------------------------------------------------+ | ST STM32 | F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, | | | | | | L0, L1, L4, L4+, L5, U5, WB | +--------------+------------------------------------------------------------+ | TI | MSP430, MSP432E4, TM4C123 | +--------------+------------------------------------------------------------+ | ValentyUSB | eptri | +--------------+------------------------------------------------------------+ | WCH | CH32F: F20x | | | | | | CH32V: V20x, V307 | +--------------+------------------------------------------------------------+ 许可证 ======= ``src`` 文件夹中的所有TinyUSB源代码均受MIT许可证的许可,完整的 `许可证在此 `__ 。但是,每个文件都可以单独许可,特别是 ``lib`` 和 ``hw/mcu`` 文件夹中的文件。请确保您理解您在项目中使用的所有文件的许可证条款。 文档 ==== - `信息 `_ - `使用 `_ - `变更日志 `_ - `贡献者 `_ - `参考 `_ - `Supported Devices 支持的设备 `_ - `入门 `_ - `依赖项 `_ - `并发 `_ - `贡献 `_ - `行为准则 `_ - `结构 `_ - `移植 `_ Docs ==== - Info - `Uses`_ - `Changelog`_ - `Contributors`_ - `Reference`_ - `Supported Devices`_ - `Getting Started`_ - `Dependencies`_ - `Concurrency`_ - `Contributing`_ - `Code of Conduct`_ - `Structure`_ - `Porting`_ .. |Build Status| image:: https://github.com/hathach/tinyusb/actions/workflows/cmake_arm.yml/badge.svg :target: https://github.com/hathach/tinyusb/actions .. |Documentation Status| image:: https://readthedocs.org/projects/tinyusb/badge/?version=latest :target: https://docs.tinyusb.org/en/latest/?badge=latest .. |Fuzzing Status| image:: https://oss-fuzz-build-logs.storage.googleapis.com/badges/tinyusb.svg :target: https://oss-fuzz-build-logs.storage.googleapis.com/index.html#tinyusb .. |License| image:: https://img.shields.io/badge/license-MIT-brightgreen.svg :target: https://opensource.org/licenses/MIT .. _Uses: docs/info/uses.rst .. _Changelog: docs/info/changelog.rst .. _Contributors: CONTRIBUTORS.rst .. _Reference: docs/reference/index.rst .. _Supported Devices: docs/reference/supported.rst .. _Getting Started: docs/reference/getting_started.rst .. _Dependencies: docs/reference/dependencies.rst .. _Concurrency: docs/reference/concurrency.rst .. _Contributing: docs/contributing/index.rst .. _Code of Conduct: CODE_OF_CONDUCT.rst .. _Structure: docs/contributing/structure.rst .. _Porting: docs/contributing/porting.rst