text: /*
   * tusb_config.h
   *
   *  Created on: Oct 28, 2019
   *      Author: Sylvain Munaut
   */
  
  #ifndef TUSB_CONFIG_H_
  #define TUSB_CONFIG_H_
  
  #ifdef __cplusplus
   extern "C" {
  #endif
  
  //--------------------------------------------------------------------
  // COMMON CONFIGURATION
  //--------------------------------------------------------------------
  
  // defined by compiler flags for flexibility
  #ifndef CFG_TUSB_MCU
    #error CFG_TUSB_MCU must be defined
  #endif
  
  #if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX || CFG_TUSB_MCU == OPT_MCU_NUC505
  #define CFG_TUSB_RHPORT0_MODE       (OPT_MODE_DEVICE | OPT_MODE_HIGH_SPEED)
  #else
  #define CFG_TUSB_RHPORT0_MODE       OPT_MODE_DEVICE
  #endif
  
  #define CFG_TUSB_OS                 OPT_OS_NONE
  
  // CFG_TUSB_DEBUG is defined by compiler in DEBUG build
  // #define CFG_TUSB_DEBUG           0
  
  /* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment.
   * Tinyusb use follows macros to declare transferring memory so that they can be put
   * into those specific section.
   * e.g
   * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") ))
   * - CFG_TUSB_MEM_ALIGN   : __attribute__ ((aligned(4)))
   */
  #ifndef CFG_TUSB_MEM_SECTION
  #define CFG_TUSB_MEM_SECTION
  #endif
  
  #ifndef CFG_TUSB_MEM_ALIGN
  #define CFG_TUSB_MEM_ALIGN          __attribute__ ((aligned(4)))
  #endif
  
  //--------------------------------------------------------------------
  // DEVICE CONFIGURATION
  //--------------------------------------------------------------------
  
  #ifndef CFG_TUD_ENDPOINT0_SIZE
  #define CFG_TUD_ENDPOINT0_SIZE    64
  #endif
  
  //------------- CLASS -------------//
  
  #define CFG_TUD_DFU_RT 1
  
  #ifdef __cplusplus
   }
  #endif
  
  #endif /* TUSB_CONFIG_H_ */
  