api_config.rst 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. USB CONFIG 说明
  2. =========================
  3. 通用 CONFIG
  4. ---------------------
  5. CONFIG_USB_PRINTF
  6. ^^^^^^^^^^^^^^^^^^^^
  7. USB log 功能,默认重定向到 printf,需要注意,USB log 会在中断中使用,因此重定向的 api 不允许阻塞。举例,如果使用的是 rt-thread,请更换成 rt-kprintf
  8. CONFIG_USB_DBG_LEVEL
  9. ^^^^^^^^^^^^^^^^^^^^^^
  10. 控制 log 的打印级别
  11. CONFIG_USB_PRINTF_COLOR_ENABLE
  12. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  13. 控制 log 颜色打印,默认开启
  14. CONFIG_USB_DCACHE_ENABLE
  15. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  16. 不使用 nocache ram 时,开启此宏以保证数据一致性。 **使用 EHCI 时,内部依旧需要使用 nocache ram**。
  17. CONFIG_USB_ALIGN_SIZE
  18. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  19. USB buffer 的对齐大小,默认是 4。IP 在 dma 模式下可能对输入的 buffer有对齐要求,一般是4,如果是其他对齐方式,请修改此值。
  20. USB_NOCACHE_RAM_SECTION
  21. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  22. 如果芯片没有 cache 功能,此宏无效。如果有,则 USB 的输入输出 buffer 必须放在 nocache ram 中,保证数据一致性。
  23. 设备协议栈 CONFIG
  24. ---------------------
  25. CONFIG_USBDEV_REQUEST_BUFFER_LEN
  26. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  27. 控制传输接收和发送的 buffer 最大长度,默认是 512。
  28. CONFIG_USBDEV_SETUP_LOG_PRINT
  29. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  30. 使能或者关闭 setup 包的 dump 信息,默认关闭。
  31. CONFIG_USBDEV_DESC_CHECK
  32. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  33. 暂时没有实现
  34. CONFIG_USBDEV_TEST_MODE
  35. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  36. 使能或者关闭 usb test mode
  37. CONFIG_USBDEV_MSC_MAX_BUFSIZE
  38. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  39. msc 缓存的最大长度,缓存越大,USB 的速度越高,因为介质一般多个 block 读写速度比单个 block 高很多,比如 sd 卡。
  40. 默认 512 ,如果是 flash 需要改成 4K, 缓存的大小需要是介质的一个 block size 的整数倍。
  41. CONFIG_USBDEV_MSC_MANUFACTURER_STRING
  42. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  43. CONFIG_USBDEV_MSC_PRODUCT_STRING
  44. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  45. CONFIG_USBDEV_MSC_VERSION_STRING
  46. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  47. CONFIG_USBDEV_MSC_POLLING
  48. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  49. 将 usbd_msc_sector_read 和 usbd_msc_sector_write 操作放在 while1 中运行,裸机下使用。
  50. CONFIG_USBDEV_MSC_THREAD
  51. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  52. 使能或者关闭 msc 线程,默认关闭。usbd_msc_sector_read 和 usbd_msc_sector_write 默认是在中断中执行,所以如果开启了 os 建议开启此宏,那么,
  53. usbd_msc_sector_read 和 usbd_msc_sector_write 就会在线程中执行。
  54. CONFIG_USBDEV_MSC_PRIO
  55. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  56. MSC 读写线程的优先级,默认是 4,数值越小,优先级越高
  57. CONFIG_USBDEV_MSC_STACKSIZE
  58. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  59. MSC 读写线程的堆栈大小,默认 2K 字节
  60. CONFIG_USBDEV_RNDIS_RESP_BUFFER_SIZE
  61. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  62. rndis 控制传输最大接收和发送的长度,根据 RNDIS options list 决定最小长度,默认要大于等于 156
  63. CONFIG_USBDEV_RNDIS_ETH_MAX_FRAME_SIZE
  64. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  65. rndis 以太网帧的最大长度,默认 1580
  66. CONFIG_USBDEV_RNDIS_VENDOR_ID
  67. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  68. CONFIG_USBDEV_RNDIS_VENDOR_DESC
  69. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  70. CONFIG_USBDEV_RNDIS_USING_LWIP
  71. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  72. rndis 与 lwip 接口的对接
  73. 主机协议栈 CONFIG
  74. ---------------------
  75. 以下参数决定了支持的最大外部hub数量,接口数,每个接口的端点数和 altsetting 数量,更改此值会影响 ram 的大小,建议根据实际情况更改。
  76. .. code-block:: C
  77. #define CONFIG_USBHOST_MAX_RHPORTS 1
  78. #define CONFIG_USBHOST_MAX_EXTHUBS 1
  79. #define CONFIG_USBHOST_MAX_EHPORTS 4
  80. #define CONFIG_USBHOST_MAX_INTERFACES 6
  81. #define CONFIG_USBHOST_MAX_INTF_ALTSETTINGS 1
  82. #define CONFIG_USBHOST_MAX_ENDPOINTS 4
  83. 以下参数决定了支持的 class 数目,更改此值会影响 ram 的大小,建议根据实际情况更改。
  84. .. code-block:: C
  85. #define CONFIG_USBHOST_MAX_SERIAL_CLASS 4
  86. #define CONFIG_USBHOST_MAX_HID_CLASS 4
  87. #define CONFIG_USBHOST_MAX_MSC_CLASS 2
  88. #define CONFIG_USBHOST_MAX_AUDIO_CLASS 1
  89. #define CONFIG_USBHOST_MAX_VIDEO_CLASS 1
  90. CONFIG_USBHOST_PSC_PRIO
  91. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  92. 主机插拔线程的优先级,默认是 0,数值越小,优先级越高
  93. CONFIG_USBHOST_PSC_STACKSIZE
  94. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  95. 主机插拔线程的堆栈大小,默认 2K 字节
  96. CONFIG_USBHOST_REQUEST_BUFFER_LEN
  97. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  98. 控制传输能够接收或者发送的最大长度
  99. CONFIG_USBHOST_CONTROL_TRANSFER_TIMEOUT
  100. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  101. 控制传输发送或者接收的超时时间,默认 500 ms
  102. CONFIG_USBHOST_MSC_TIMEOUT
  103. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  104. MSC 读写传输的超时时间,默认 5s