tusb_config.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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 <rtdef.h>
  13. #include <rtconfig.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. //--------------------------------------------------------------------
  18. // COMMON CONFIGURATION
  19. //--------------------------------------------------------------------
  20. #if defined(SOC_SERIES_STM32F1)
  21. #define CFG_TUSB_MCU OPT_MCU_STM32F1
  22. #elif defined(SOC_SERIES_STM32F4)
  23. #define CFG_TUSB_MCU OPT_MCU_STM32F4
  24. #elif defined(SOC_SERIES_STM32H7)
  25. #define CFG_TUSB_MCU OPT_MCU_STM32H7
  26. #elif defined(SOC_SERIES_STM32L4)
  27. #define CFG_TUSB_MCU OPT_MCU_STM32L4
  28. #elif defined(SOC_NRF52840)
  29. #define CFG_TUSB_MCU OPT_MCU_NRF5X
  30. #elif defined(SOC_HPM6000)
  31. #define CFG_TUSB_MCU OPT_MCU_HPM
  32. #else
  33. #error "Not support for current MCU"
  34. #endif
  35. #define CFG_TUSB_OS OPT_OS_RTTHREAD
  36. //--------------------------------------------------------------------
  37. // DEBUG CONFIGURATION
  38. //--------------------------------------------------------------------
  39. #ifdef CFG_TUSB_DEBUG
  40. #define CFG_TUSB_DEBUG_PRINTF rt_kprintf
  41. #endif /* CFG_TUSB_DEBUG */
  42. #ifndef BOARD_DEVICE_RHPORT_NUM
  43. #define BOARD_DEVICE_RHPORT_NUM PKG_TINYUSB_RHPORT_NUM
  44. #endif
  45. #ifndef BOARD_DEVICE_RHPORT_SPEED
  46. #define BOARD_DEVICE_RHPORT_SPEED PKG_TINYUSB_DEVICE_PORT_SPEED
  47. #endif
  48. #if BOARD_DEVICE_RHPORT_NUM == 0
  49. #define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
  50. #elif BOARD_DEVICE_RHPORT_NUM == 1
  51. #define CFG_TUSB_RHPORT1_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
  52. #else
  53. #error "Incorrect RHPort configuration"
  54. #endif
  55. /* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment.
  56. * Tinyusb use follows macros to declare transferring memory so that they can be put
  57. * into those specific section.
  58. * e.g
  59. * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") ))
  60. * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4)))
  61. */
  62. #ifndef CFG_TUSB_MEM_SECTION
  63. #ifdef rt_section
  64. #define CFG_TUSB_MEM_SECTION rt_section(PKG_TINYUSB_MEM_SECTION)
  65. #else
  66. #define CFG_TUSB_MEM_SECTION RT_SECTION(PKG_TINYUSB_MEM_SECTION)
  67. #endif
  68. #endif
  69. #ifndef CFG_TUSB_MEM_ALIGN
  70. #ifdef rt_align
  71. #define CFG_TUSB_MEM_ALIGN rt_align(PKG_TINYUSB_MEM_ALIGN)
  72. #else
  73. #define CFG_TUSB_MEM_ALIGN ALIGN(PKG_TINYUSB_MEM_ALIGN)
  74. #endif
  75. #endif
  76. //--------------------------------------------------------------------
  77. // DEVICE CONFIGURATION
  78. //--------------------------------------------------------------------
  79. #ifndef CFG_TUD_ENDPOINT0_SIZE
  80. #define CFG_TUD_ENDPOINT0_SIZE PKG_TINYUSB_EDPT0_SIZE
  81. #endif
  82. // CDC FIFO size of TX and RX
  83. #define CFG_TUD_CDC_RX_BUFSIZE PKG_TINYUSB_DEVICE_CDC_RX_BUFSIZE
  84. #define CFG_TUD_CDC_TX_BUFSIZE PKG_TINYUSB_DEVICE_CDC_TX_BUFSIZE
  85. #define CFG_TUD_MSC_EP_BUFSIZE PKG_TINYUSB_DEVICE_MSC_EP_BUFSIZE
  86. #define CFG_TUD_HID_EP_BUFSIZE PKG_TINYUSB_DEVICE_HID_EP_BUFSIZE
  87. #ifndef PKG_TINYUSB_DEVICE_CDC_STRING
  88. #define PKG_TINYUSB_DEVICE_CDC_STRING ""
  89. #endif
  90. #ifndef PKG_TINYUSB_DEVICE_MSC_STRING
  91. #define PKG_TINYUSB_DEVICE_MSC_STRING ""
  92. #endif
  93. #ifndef PKG_TINYUSB_DEVICE_HID_STRING
  94. #define PKG_TINYUSB_DEVICE_HID_STRING ""
  95. #endif
  96. #ifdef __cplusplus
  97. }
  98. #endif
  99. #endif /* _TUSB_CONFIG_H_ */