diff --git a/docs/source/api/api_config.rst b/docs/source/api/api_config.rst index 7a9cb35d..6b2ed8eb 100644 --- a/docs/source/api/api_config.rst +++ b/docs/source/api/api_config.rst @@ -1,7 +1,7 @@ -USB CONFIG 宏 +USB CONFIG 说明 ========================= -通用 CONFIG 宏 +通用 CONFIG --------------------- CONFIG_USB_PRINTF @@ -29,13 +29,13 @@ USB_NOCACHE_RAM_SECTION 如果芯片没有 cache 功能,此宏无效。如果有,则 USB 的输入输出 buffer 必须放在 nocache ram 中,保证数据一致性。 -设备相关 CONFIG 宏 +设备协议栈 CONFIG --------------------- CONFIG_USBDEV_REQUEST_BUFFER_LEN ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -控制传输接收和发送的 buffer 最大长度,默认是 256。 +控制传输接收和发送的 buffer 最大长度,默认是 512。 CONFIG_USBDEV_SETUP_LOG_PRINT ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -55,7 +55,7 @@ CONFIG_USBDEV_MSC_MAX_BUFSIZE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ msc 缓存的最大长度,缓存越大,USB 的速度越高,因为介质一般多个 block 读写速度比单个 block 高很多,比如 sd 卡。 -默认 512 ,如果是 flash 需要改成 4K, 缓存的大小需要是 介质的一个 block size 的整数倍。 +默认 512 ,如果是 flash 需要改成 4K, 缓存的大小需要是介质的一个 block size 的整数倍。 CONFIG_USBDEV_MSC_MANUFACTURER_STRING ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -66,6 +66,11 @@ CONFIG_USBDEV_MSC_PRODUCT_STRING CONFIG_USBDEV_MSC_VERSION_STRING ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +CONFIG_USBDEV_MSC_POLLING +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +将 usbd_msc_sector_read 和 usbd_msc_sector_write 操作放在 while1 中运行,裸机下使用。 + CONFIG_USBDEV_MSC_THREAD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -90,7 +95,7 @@ rndis 控制传输最大接收和发送的长度,根据 RNDIS options list 决 CONFIG_USBDEV_RNDIS_ETH_MAX_FRAME_SIZE ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -rndis 以太网帧的最大长度,默认 1536 +rndis 以太网帧的最大长度,默认 1580 CONFIG_USBDEV_RNDIS_VENDOR_ID ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -103,7 +108,7 @@ CONFIG_USBDEV_RNDIS_USING_LWIP rndis 与 lwip 接口的对接 -主机相关 CONFIG 宏 +主机协议栈 CONFIG --------------------- 以下参数决定了支持的最大外部hub数量,接口数,每个接口的端点数和 altsetting 数量,更改此值会影响 ram 的大小,建议根据实际情况更改。 diff --git a/docs/source/api/api_port.rst b/docs/source/api/api_port.rst index a11a8b6c..7821d424 100644 --- a/docs/source/api/api_port.rst +++ b/docs/source/api/api_port.rst @@ -142,6 +142,17 @@ usb_hc_init - **return** 返回 0 表示正确,其他表示错误 +usb_hc_deinit +"""""""""""""""""""""""""""""""""""" + +``usb_hc_deinit`` 用于反初始化 usb host controller 寄存器。 **此函数不对用户开放**。 + +.. code-block:: C + + int usb_hc_deinit(void); + +- **return** 返回 0 表示正确,其他表示错误 + usbh_roothub_control """""""""""""""""""""""""""""""""""" diff --git a/docs/source/demo/index.rst b/docs/source/demo/index.rst deleted file mode 100644 index 30404ce4..00000000 --- a/docs/source/demo/index.rst +++ /dev/null @@ -1 +0,0 @@ -TODO \ No newline at end of file diff --git a/docs/source/demo/usbd_audiov1.rst b/docs/source/demo/usbd_audiov1.rst new file mode 100644 index 00000000..ec8f5e63 --- /dev/null +++ b/docs/source/demo/usbd_audiov1.rst @@ -0,0 +1,2 @@ +usbd_audiov1 +=============== diff --git a/docs/source/demo/usbd_audiov2.rst b/docs/source/demo/usbd_audiov2.rst new file mode 100644 index 00000000..fa496160 --- /dev/null +++ b/docs/source/demo/usbd_audiov2.rst @@ -0,0 +1,2 @@ +usbd_audiov2 +=============== diff --git a/docs/source/demo/usbd_cdc_acm.rst b/docs/source/demo/usbd_cdc_acm.rst new file mode 100644 index 00000000..8a6c4baf --- /dev/null +++ b/docs/source/demo/usbd_cdc_acm.rst @@ -0,0 +1,2 @@ +usbd_cdc_acm +=============== diff --git a/docs/source/demo/usbd_ecm.rst b/docs/source/demo/usbd_ecm.rst new file mode 100644 index 00000000..c4c64ab5 --- /dev/null +++ b/docs/source/demo/usbd_ecm.rst @@ -0,0 +1,2 @@ +usbd_cdc_ecm +=============== diff --git a/docs/source/demo/usbd_hid.rst b/docs/source/demo/usbd_hid.rst new file mode 100644 index 00000000..c51e3627 --- /dev/null +++ b/docs/source/demo/usbd_hid.rst @@ -0,0 +1,2 @@ +usbd_hid +=============== diff --git a/docs/source/demo/usbd_msc.rst b/docs/source/demo/usbd_msc.rst new file mode 100644 index 00000000..eb4dd164 --- /dev/null +++ b/docs/source/demo/usbd_msc.rst @@ -0,0 +1,2 @@ +usbd_msc +=============== diff --git a/docs/source/demo/usbd_rndis.rst b/docs/source/demo/usbd_rndis.rst new file mode 100644 index 00000000..40fba402 --- /dev/null +++ b/docs/source/demo/usbd_rndis.rst @@ -0,0 +1,2 @@ +usbd_rndis +=============== diff --git a/docs/source/demo/usbd_video.rst b/docs/source/demo/usbd_video.rst new file mode 100644 index 00000000..800ca358 --- /dev/null +++ b/docs/source/demo/usbd_video.rst @@ -0,0 +1,2 @@ +usbd_video +=============== diff --git a/docs/source/demo/usbd_webusb.rst b/docs/source/demo/usbd_webusb.rst new file mode 100644 index 00000000..51e25511 --- /dev/null +++ b/docs/source/demo/usbd_webusb.rst @@ -0,0 +1,2 @@ +usbd_webusb +=============== diff --git a/docs/source/demo/usbd_winusb.rst b/docs/source/demo/usbd_winusb.rst new file mode 100644 index 00000000..bc698ea5 --- /dev/null +++ b/docs/source/demo/usbd_winusb.rst @@ -0,0 +1,2 @@ +usbd_winusb +=============== diff --git a/docs/source/demo/usbh_bluetooth.rst b/docs/source/demo/usbh_bluetooth.rst new file mode 100644 index 00000000..a93844ea --- /dev/null +++ b/docs/source/demo/usbh_bluetooth.rst @@ -0,0 +1,2 @@ +usbh_bluetooth +=============== diff --git a/docs/source/demo/usbh_hid.rst b/docs/source/demo/usbh_hid.rst new file mode 100644 index 00000000..508c9cae --- /dev/null +++ b/docs/source/demo/usbh_hid.rst @@ -0,0 +1,2 @@ +usbh_hid +=============== diff --git a/docs/source/demo/usbh_msc.rst b/docs/source/demo/usbh_msc.rst new file mode 100644 index 00000000..3d4b89c7 --- /dev/null +++ b/docs/source/demo/usbh_msc.rst @@ -0,0 +1,2 @@ +usbh_msc +=============== diff --git a/docs/source/demo/usbh_net.rst b/docs/source/demo/usbh_net.rst new file mode 100644 index 00000000..be61628d --- /dev/null +++ b/docs/source/demo/usbh_net.rst @@ -0,0 +1,2 @@ +usbh_net +=============== diff --git a/docs/source/demo/usbh_serial.rst b/docs/source/demo/usbh_serial.rst new file mode 100644 index 00000000..7b914820 --- /dev/null +++ b/docs/source/demo/usbh_serial.rst @@ -0,0 +1,2 @@ +usbh_serial +=============== diff --git a/docs/source/demo/usbh_wifi.rst b/docs/source/demo/usbh_wifi.rst new file mode 100644 index 00000000..be148c7d --- /dev/null +++ b/docs/source/demo/usbh_wifi.rst @@ -0,0 +1,2 @@ +usbh_wifi +=============== diff --git a/docs/source/index.rst b/docs/source/index.rst index a231d01a..08458da6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -53,10 +53,10 @@ CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 :maxdepth: 1 :caption: 快速上手 - quick_start/index - quick_start/rt-thread/rtthread - quick_start/other_chip - version + quick_start/demo + quick_start/transplant + quick_start/rtthread + quick_start/esp q&a .. toctree:: @@ -92,16 +92,39 @@ CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 .. toctree:: :maxdepth: 1 - :caption: 基本例程 + :caption: 例程说明 - demo/index + demo/usbd_cdc_acm + demo/usbd_hid + demo/usbd_msc + demo/usbd_rndis + demo/usbd_ecm + demo/usbd_audiov1 + demo/usbd_audiov2 + demo/usbd_video + demo/usbd_winusb + demo/usbd_webusb + demo/usbh_serial + demo/usbh_hid + demo/usbh_msc + demo/usbh_net + demo/usbh_bluetooth + demo/usbh_wifi .. toctree:: :maxdepth: 1 - :caption: Porting 说明 + :caption: USBIP 介绍 - porting - porting_usbip + usbip/ohci + usbip/ehci + usbip/xhci + usbip/chipidea + usbip/dwc2 + usbip/musb + usbip/fotg210 + usbip/cdns2 + usbip/cdns3 + usbip/dwc3 .. toctree:: :maxdepth: 1 @@ -109,6 +132,12 @@ CherryUSB 是一个小而美的、可移植性高的、用于嵌入式系统的 tools/index +.. toctree:: + :maxdepth: 1 + :caption: 版本说明 + + version + .. toctree:: :maxdepth: 1 :caption: 商业支持 diff --git a/docs/source/porting.rst b/docs/source/porting.rst deleted file mode 100644 index 5962e229..00000000 --- a/docs/source/porting.rst +++ /dev/null @@ -1,24 +0,0 @@ -Porting 如何编写 -============================== - -本节主要介绍没有支持的芯片如何做 porting。 - -从机 porting ----------------------------- - -- 首先复制一份从 `port/template` 复制一份 `usb_dc.c` 并参与编译,保证能编译过。 -- 实现 ``usb_dc_init`` 保证能进入中断 -- 在中断中判断 reset 中断并能够正常触发 reset 中断,在 reset 中断中调用 ``usbd_event_reset_handler``,如果可能,还需要启动读取 setup 包。 -- 在中断中判断 setup 中断并能够正常触发 setup 中断,然后将读取的数据传入 ``usbd_event_ep0_setup_complete_handler`` -- 实现 ``usbd_ep_start_write`` 并能够触发发送完成中断 -- 实现 ``usbd_ep_start_read`` 并能够触发接收完成中断 -- 分包处理 - -主机 porting ----------------------------- - -- 首先复制一份从 `port/template` 复制一份 `usb_hc.c` 并参与编译,保证能编译过。 -- 实现 ``usb_hc_init`` 保证能进入中断 -- 能够进入插拔中断,比如 ``connect`` 和 ``disconnect``,并调用 ``usbh_roothub_thread_wakeup`` 能够唤醒 hub 线程 -- 实现 ``usbh_roothub_control`` 并根据第三个条件,能够完成 ``usbh_hub_events`` 中 ``usbh_enumerate`` 之前的流程 -- 实现 ``usbh_submit_urb`` \ No newline at end of file diff --git a/docs/source/quick_start/index.rst b/docs/source/quick_start/demo.rst similarity index 100% rename from docs/source/quick_start/index.rst rename to docs/source/quick_start/demo.rst diff --git a/docs/source/quick_start/esp.rst b/docs/source/quick_start/esp.rst new file mode 100644 index 00000000..29639e05 --- /dev/null +++ b/docs/source/quick_start/esp.rst @@ -0,0 +1,17 @@ +基于 ESP-Registry 开发指南 +=========================== + +ESP-Registry 可以参考官方文档,推荐使用 vscode + esp-idf 的开发环境。 + +- ctrl + shift + p 选择 ESP-IDF 欢迎界面,然后选择 Component mananger + +.. figure:: img/esp1.png + +- 找到 cherryusb 并安装 + +.. figure:: img/esp2.png + +- 打开 menuconfig,并打开 cherryusb 的配置,根据实际情况选择主机或者从机模式 + +.. figure:: img/esp3.png +.. figure:: img/esp4.png \ No newline at end of file diff --git a/docs/source/quick_start/rt-thread/img/env0.png b/docs/source/quick_start/img/env0.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/env0.png rename to docs/source/quick_start/img/env0.png diff --git a/docs/source/quick_start/rt-thread/img/env1.png b/docs/source/quick_start/img/env1.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/env1.png rename to docs/source/quick_start/img/env1.png diff --git a/docs/source/quick_start/rt-thread/img/env2.png b/docs/source/quick_start/img/env2.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/env2.png rename to docs/source/quick_start/img/env2.png diff --git a/docs/source/quick_start/img/esp1.png b/docs/source/quick_start/img/esp1.png new file mode 100644 index 00000000..1f059e71 Binary files /dev/null and b/docs/source/quick_start/img/esp1.png differ diff --git a/docs/source/quick_start/img/esp2.png b/docs/source/quick_start/img/esp2.png new file mode 100644 index 00000000..fd20e9ce Binary files /dev/null and b/docs/source/quick_start/img/esp2.png differ diff --git a/docs/source/quick_start/img/esp3.png b/docs/source/quick_start/img/esp3.png new file mode 100644 index 00000000..82a7162f Binary files /dev/null and b/docs/source/quick_start/img/esp3.png differ diff --git a/docs/source/quick_start/img/esp4.png b/docs/source/quick_start/img/esp4.png new file mode 100644 index 00000000..ffb2882a Binary files /dev/null and b/docs/source/quick_start/img/esp4.png differ diff --git a/docs/source/quick_start/rt-thread/img/stm32_init.png b/docs/source/quick_start/img/stm32_init.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32_init.png rename to docs/source/quick_start/img/stm32_init.png diff --git a/docs/source/quick_start/rt-thread/img/stm32_init2.png b/docs/source/quick_start/img/stm32_init2.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32_init2.png rename to docs/source/quick_start/img/stm32_init2.png diff --git a/docs/source/quick_start/rt-thread/img/stm32cubemx0.png b/docs/source/quick_start/img/stm32cubemx0.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32cubemx0.png rename to docs/source/quick_start/img/stm32cubemx0.png diff --git a/docs/source/quick_start/rt-thread/img/stm32cubemx1.png b/docs/source/quick_start/img/stm32cubemx1.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32cubemx1.png rename to docs/source/quick_start/img/stm32cubemx1.png diff --git a/docs/source/quick_start/rt-thread/img/stm32cubemx2.png b/docs/source/quick_start/img/stm32cubemx2.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32cubemx2.png rename to docs/source/quick_start/img/stm32cubemx2.png diff --git a/docs/source/quick_start/rt-thread/img/stm32cubemx_clk.png b/docs/source/quick_start/img/stm32cubemx_clk.png similarity index 100% rename from docs/source/quick_start/rt-thread/img/stm32cubemx_clk.png rename to docs/source/quick_start/img/stm32cubemx_clk.png diff --git a/docs/source/quick_start/rt-thread/rtthread.rst b/docs/source/quick_start/rtthread.rst similarity index 97% rename from docs/source/quick_start/rt-thread/rtthread.rst rename to docs/source/quick_start/rtthread.rst index a9303715..062e6eab 100644 --- a/docs/source/quick_start/rt-thread/rtthread.rst +++ b/docs/source/quick_start/rtthread.rst @@ -1,6 +1,8 @@ 基于 RT-Thread 软件包开发指南 =============================== +.. note:: CherryUSB 已经加入 RT-Thread 主线,可以选择使用主线版本,配置方式相同。 + 本节主要介绍使用 RT-Thread 提供的软件包管理器来配置工程,以 env 作为演示。本节操作不同芯片都一样,后续不再重复讲解。打开 env 以后使用 menuconfig 进入包管理器,并在如图所示路径中选择 CherryUSB。 .. figure:: img/env0.png diff --git a/docs/source/quick_start/other_chip.rst b/docs/source/quick_start/transplant.rst similarity index 100% rename from docs/source/quick_start/other_chip.rst rename to docs/source/quick_start/transplant.rst diff --git a/docs/source/support/img/dwc2_hostuac.png b/docs/source/support/img/dwc2_hostuac.png new file mode 100644 index 00000000..6050f531 Binary files /dev/null and b/docs/source/support/img/dwc2_hostuac.png differ diff --git a/docs/source/support/index.rst b/docs/source/support/index.rst index da1d94c5..bee33756 100644 --- a/docs/source/support/index.rst +++ b/docs/source/support/index.rst @@ -12,6 +12,7 @@ .. figure:: img/dwc2_hostuvc1.png .. figure:: img/dwc2_hostuvc2.png +.. figure:: img/dwc2_hostuac.png - 主机 UVC & UAC 类 MUSB IP 中 ISO 驱动和 UAC/UVC 框架, MUSB 需要为 mentor 公司制定的标准 IP diff --git a/docs/source/usbip/cdns2.rst b/docs/source/usbip/cdns2.rst new file mode 100644 index 00000000..88afc8d2 --- /dev/null +++ b/docs/source/usbip/cdns2.rst @@ -0,0 +1,2 @@ +CDNS2 +=============== diff --git a/docs/source/usbip/cdns3.rst b/docs/source/usbip/cdns3.rst new file mode 100644 index 00000000..c2132d1a --- /dev/null +++ b/docs/source/usbip/cdns3.rst @@ -0,0 +1,2 @@ +CDNS3 +=============== diff --git a/docs/source/usbip/chipidea.rst b/docs/source/usbip/chipidea.rst new file mode 100644 index 00000000..57c46ec0 --- /dev/null +++ b/docs/source/usbip/chipidea.rst @@ -0,0 +1,2 @@ +CHIPIDEA +================= \ No newline at end of file diff --git a/docs/source/usbip/dwc2.rst b/docs/source/usbip/dwc2.rst new file mode 100644 index 00000000..6c5a8c08 --- /dev/null +++ b/docs/source/usbip/dwc2.rst @@ -0,0 +1,2 @@ +DWC2 +================= \ No newline at end of file diff --git a/docs/source/usbip/dwc3.rst b/docs/source/usbip/dwc3.rst new file mode 100644 index 00000000..746bbee6 --- /dev/null +++ b/docs/source/usbip/dwc3.rst @@ -0,0 +1,2 @@ +DWC3 +=============== diff --git a/docs/source/usbip/ehci.rst b/docs/source/usbip/ehci.rst new file mode 100644 index 00000000..637bbe69 --- /dev/null +++ b/docs/source/usbip/ehci.rst @@ -0,0 +1,2 @@ +EHCI +================= \ No newline at end of file diff --git a/docs/source/usbip/fotg210.rst b/docs/source/usbip/fotg210.rst new file mode 100644 index 00000000..f6e566a8 --- /dev/null +++ b/docs/source/usbip/fotg210.rst @@ -0,0 +1,2 @@ +FOTG210 +=============== diff --git a/docs/source/usbip/musb.rst b/docs/source/usbip/musb.rst new file mode 100644 index 00000000..597876c0 --- /dev/null +++ b/docs/source/usbip/musb.rst @@ -0,0 +1,2 @@ +MUSB +================= \ No newline at end of file diff --git a/docs/source/usbip/ohci.rst b/docs/source/usbip/ohci.rst new file mode 100644 index 00000000..8467233b --- /dev/null +++ b/docs/source/usbip/ohci.rst @@ -0,0 +1,2 @@ +OHCI +================= \ No newline at end of file diff --git a/docs/source/usbip/xhci.rst b/docs/source/usbip/xhci.rst new file mode 100644 index 00000000..0c16c2e2 --- /dev/null +++ b/docs/source/usbip/xhci.rst @@ -0,0 +1,2 @@ +XHCI +================= \ No newline at end of file