# 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