tusb_config.h 3.1 KB

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