tusb_config.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-10-20 tfx2001 first version
  9. */
  10. #ifndef _TUSB_CONFIG_H_
  11. #define _TUSB_CONFIG_H_
  12. #include <rtconfig.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. //--------------------------------------------------------------------
  17. // COMMON CONFIGURATION
  18. //--------------------------------------------------------------------
  19. #if defined(SOC_SERIES_STM32F0)
  20. #define CFG_TUSB_MCU OPT_MCU_STM32F0
  21. #elif defined(SOC_SERIES_STM32F1)
  22. #define CFG_TUSB_MCU OPT_MCU_STM32F1
  23. #elif defined(SOC_SERIES_STM32F2)
  24. #define CFG_TUSB_MCU OPT_MCU_STM32F2
  25. #elif defined(SOC_SERIES_STM32F3)
  26. #define CFG_TUSB_MCU OPT_MCU_STM32F3
  27. #elif defined(SOC_SERIES_STM32F4)
  28. #define CFG_TUSB_MCU OPT_MCU_STM32F4
  29. #elif defined(SOC_SERIES_STM32F7)
  30. #define CFG_TUSB_MCU OPT_MCU_STM32F7
  31. #elif defined(SOC_SERIES_STM32H7)
  32. #define CFG_TUSB_MCU OPT_MCU_STM32H7
  33. #elif defined(SOC_SERIES_STM32L0)
  34. #define CFG_TUSB_MCU OPT_MCU_STM32L0
  35. #elif defined(SOC_SERIES_STM32L1)
  36. #define CFG_TUSB_MCU OPT_MCU_STM32L1
  37. #elif defined(SOC_SERIES_STM32L4)
  38. #define CFG_TUSB_MCU OPT_MCU_STM32L4
  39. #elif defined(SOC_NRF52840)
  40. #define CFG_TUSB_MCU OPT_MCU_NRF5X
  41. #elif defined(SOC_HPM6000)
  42. #define CFG_TUSB_MCU OPT_MCU_HPM
  43. #elif defined(SOC_RP2040)
  44. #define CFG_TUSB_MCU OPT_MCU_RP2040
  45. #else
  46. #error "Not support for current MCU"
  47. #endif
  48. #define CFG_TUSB_OS OPT_OS_RTTHREAD
  49. //--------------------------------------------------------------------
  50. // DEBUG CONFIGURATION
  51. //--------------------------------------------------------------------
  52. #ifdef CFG_TUSB_DEBUG
  53. #define CFG_TUSB_DEBUG_PRINTF rt_kprintf
  54. #endif /* CFG_TUSB_DEBUG */
  55. #ifndef BOARD_DEVICE_RHPORT_NUM
  56. #define BOARD_DEVICE_RHPORT_NUM PKG_TINYUSB_RHPORT_NUM
  57. #endif
  58. #ifndef BOARD_DEVICE_RHPORT_SPEED
  59. #define BOARD_DEVICE_RHPORT_SPEED PKG_TINYUSB_DEVICE_PORT_SPEED
  60. #endif
  61. #if BOARD_DEVICE_RHPORT_NUM == 0
  62. #define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
  63. #elif BOARD_DEVICE_RHPORT_NUM == 1
  64. #define CFG_TUSB_RHPORT1_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
  65. #else
  66. #error "Incorrect RHPort configuration"
  67. #endif
  68. /* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment.
  69. * Tinyusb use follows macros to declare transferring memory so that they can be put
  70. * into those specific section.
  71. * e.g
  72. * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") ))
  73. * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4)))
  74. */
  75. #ifndef CFG_TUSB_MEM_SECTION
  76. #define CFG_TUSB_MEM_SECTION RT_SECTION(PKG_TINYUSB_MEM_SECTION)
  77. #endif
  78. #ifndef CFG_TUSB_MEM_ALIGN
  79. #define CFG_TUSB_MEM_ALIGN ALIGN(PKG_TINYUSB_MEM_ALIGN)
  80. #endif
  81. //--------------------------------------------------------------------
  82. // DEVICE CONFIGURATION
  83. //--------------------------------------------------------------------
  84. #ifndef CFG_TUD_ENDPOINT0_SIZE
  85. #define CFG_TUD_ENDPOINT0_SIZE PKG_TINYUSB_EDPT0_SIZE
  86. #endif
  87. // CDC FIFO size of TX and RX
  88. #define CFG_TUD_CDC_RX_BUFSIZE PKG_TINYUSB_DEVICE_CDC_RX_BUFSIZE
  89. #define CFG_TUD_CDC_TX_BUFSIZE PKG_TINYUSB_DEVICE_CDC_TX_BUFSIZE
  90. #define CFG_TUD_MSC_EP_BUFSIZE PKG_TINYUSB_DEVICE_MSC_EP_BUFSIZE
  91. #define CFG_TUD_HID_EP_BUFSIZE PKG_TINYUSB_DEVICE_HID_EP_BUFSIZE
  92. #ifndef PKG_TINYUSB_DEVICE_CDC_STRING
  93. #define PKG_TINYUSB_DEVICE_CDC_STRING ""
  94. #endif
  95. #ifndef PKG_TINYUSB_DEVICE_MSC_STRING
  96. #define PKG_TINYUSB_DEVICE_MSC_STRING ""
  97. #endif
  98. #ifndef PKG_TINYUSB_DEVICE_HID_STRING
  99. #define PKG_TINYUSB_DEVICE_HID_STRING ""
  100. #endif
  101. #ifdef __cplusplus
  102. }
  103. #endif
  104. #endif /* _TUSB_CONFIG_H_ */