| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- .. CherryUSB User Guide documentation master file, created by
- sphinx-quickstart on Thu Nov 21 10:50:33 2019.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
- CherryUSB User Guide
- ====================================================================
- CherryUSB is a small, lightweight, portable USB host and device protocol stack for embedded systems. CherryUSB offers the following advantages:
- **Easy to Learn USB**
- To facilitate user learning of USB fundamentals, enumeration, driver loading, and IP drivers, the written code has the following advantages:
- - Streamlined code with simple logic and no complex C language syntax
- - Tree-structured programming with progressive code layers
- - Templated and simplified Class drivers and porting drivers
- - Clear API categorization (Device: initialization, class registration, command callbacks, data transmission; Host: initialization, class discovery, data transmission)
- **Easy to Use USB**
- To facilitate user interaction with USB interfaces, considering users' familiarity with UART and DMA, the designed data transmission interface has the following advantages:
- - Equivalent to using UART TX DMA/UART RX DMA
- - No length restrictions on transmission/reception; users don't need to worry about USB packetization (porting drivers handle packetization)
- **Easy to Achieve USB Performance**
- Considering USB performance requirements to reach theoretical USB hardware bandwidth, the designed data transmission interface has the following advantages:
- - Porting drivers directly interface with registers without abstraction layer encapsulation
- - Memory zero copy
- - DMA mode used when IP supports DMA (DMA provides hardware packetization functionality)
- - No length restrictions, facilitating hardware DMA interfacing and maximizing DMA advantages
- - Packetization handled in interrupt context
- **Device Protocol Stack Overall Execution Flow**
- .. figure:: usbdev.svg
- **Host Protocol Stack Overall Execution Flow**
- .. figure:: usbhost.svg
- **Other Related Links**
- - **Video Tutorial**: https://www.bilibili.com/cheese/play/ss707687201
- - **GitHub**: https://github.com/sakumisu/CherryUSB
- - **CherryUSB Theoretical Analysis and Application Practice - Hans Journal**: https://www.hanspub.org/journal/paperinformation?paperid=126903
- .. toctree::
- :maxdepth: 1
- :caption: Quick Start
- quick_start/start
- quick_start/demo
- quick_start/transplant
- quick_start/rtthread
- quick_start/q&a
- quick_start/migration
- quick_start/opensource
- .. toctree::
- :maxdepth: 1
- :caption: USB Basic Knowledge
- usb/usb2.0_basic
- usb/usb3.0_basic
- usb/usb_desc
- usb/usb_request
- usb/usb_enum
- usb/usb_ext
- .. toctree::
- :maxdepth: 1
- :caption: API Manual
- api/api_device
- api/api_host
- api/api_port
- api/api_config
- .. toctree::
- :maxdepth: 1
- :caption: Class Guide
- class/class_cdc
- class/class_hid
- class/class_msc
- class/class_audio
- class/class_video
- class/winusb
- .. toctree::
- :maxdepth: 1
- :caption: Examples
- demo/usbd_cdc_acm
- demo/usbd_hid
- demo/usbd_msc
- demo/usbd_audiov1
- demo/usbd_audiov2
- demo/usbd_video
- demo/usbd_winusb
- demo/usbd_webusb
- demo/usbd_rndis
- demo/usbd_ecm
- demo/usbd_adb
- demo/usbd_mtp
- demo/usbh_serial
- demo/usbh_hid
- demo/usbh_msc
- demo/usbh_net
- demo/usbh_bluetooth
- demo/usbh_wifi
- demo/usbh_audio
- demo/usbh_video
- demo/usb_otg
- demo/usbd_vendor
- demo/usbh_vendor
- .. toctree::
- :maxdepth: 1
- :caption: USB IP Introduction
- usbip/ohci
- usbip/ehci
- usbip/xhci
- usbip/chipidea
- usbip/dwc2
- usbip/musb
- usbip/fotg210
- usbip/cdns2
- usbip/cdns3
- usbip/dwc3
- .. toctree::
- :maxdepth: 1
- :caption: Tools Usage
- tools/index
- .. toctree::
- :maxdepth: 1
- :caption: Release Notes
- version
- .. toctree::
- :maxdepth: 1
- :caption: Performance Showcase
- show/index
- .. toctree::
- :maxdepth: 1
- :caption: Commercial Support
- support/index
|