diff options
Diffstat (limited to 'tinyusb/tusb_option.h')
| -rw-r--r-- | tinyusb/tusb_option.h | 387 |
1 files changed, 195 insertions, 192 deletions
diff --git a/tinyusb/tusb_option.h b/tinyusb/tusb_option.h index f479d0a79..2330835d8 100644 --- a/tinyusb/tusb_option.h +++ b/tinyusb/tusb_option.h @@ -1,192 +1,195 @@ -/**************************************************************************/ -/*! - @file tusb_option.h - @author hathach (tinyusb.org) - - @section LICENSE - - Software License Agreement (BSD License) - - Copyright (c) 2013, hathach (tinyusb.org) - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the copyright holders nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - This file is part of the tinyusb stack. -*/ -/**************************************************************************/ - -/** \file - * \brief Configure File - * - * \note TBD - */ - -/** - * \defgroup Group_TinyUSB_Configure Configuration tusb_option.h - * @{ - */ - -#ifndef _TUSB_TUSB_OPTION_H_ -#define _TUSB_TUSB_OPTION_H_ - -#define TUSB_VERSION_YEAR 00 -#define TUSB_VERSION_MONTH 00 -#define TUSB_VERSION_WEEK 0 -#define TUSB_VERSION_NAME "alpha" -#define TUSB_VERSION XSTRING_(TUSB_VERSION_YEAR) "." XSTRING_(TUSB_VERSION_MONTH) - -#define MCU_LPC13UXX 1 -#define MCU_LPC11UXX 2 -#define MCU_LPC43XX 3 -#define MCU_LPC18XX 4 -#define MCU_LPC175X_6X 5 -#define MCU_LPC177X_8X 6 - -/// define this symbol will make tinyusb look for external configure file -#include "mcu_capacity.h" - -#ifdef TUSB_CFG_CONFIG_FILE - #include TUSB_CFG_CONFIG_FILE -#else - #include "tusb_config.h" -#endif - -//--------------------------------------------------------------------+ -// CONTROLLER -//--------------------------------------------------------------------+ -#define TUSB_MODE_HOST 0x02 -#define TUSB_MODE_DEVICE 0x01 -#define TUSB_MODE_NONE 0x00 - -#define CONTROLLER_HOST_NUMBER (\ - ((TUSB_CFG_CONTROLLER0_MODE & TUSB_MODE_HOST) ? 1 : 0) + \ - ((TUSB_CFG_CONTROLLER1_MODE & TUSB_MODE_HOST) ? 1 : 0)) - -#define CONTROLLER_DEVICE_NUMBER (\ - ((TUSB_CFG_CONTROLLER0_MODE & TUSB_MODE_DEVICE) ? 1 : 0) + \ - ((TUSB_CFG_CONTROLLER1_MODE & TUSB_MODE_DEVICE) ? 1 : 0)) - -#define MODE_HOST_SUPPORTED (CONTROLLER_HOST_NUMBER > 0) -#define MODE_DEVICE_SUPPORTED (CONTROLLER_DEVICE_NUMBER > 0) - -#if !MODE_HOST_SUPPORTED && !MODE_DEVICE_SUPPORTED - #error please configure at least 1 TUSB_CFG_CONTROLLERn_MODE to TUSB_MODE_HOST and/or TUSB_MODE_DEVICE -#endif - -//--------------------------------------------------------------------+ -// COMMON OPTIONS -//--------------------------------------------------------------------+ - -// level 3: ATTR_ALWAYS_INLINE is null, ASSERT has text, Error has its String, STATIC_VAR is NULL -// level 2: ATTR_ALWAYS_INLINE is attribute, ASSERT has no text, Error has no strings -/// 0: no debug information 3: most debug information provided -#ifndef TUSB_CFG_DEBUG - #define TUSB_CFG_DEBUG 2 - #warning TUSB_CFG_DEBUG is not defined, default value is 3 -#endif - -/// USB RAM Section Placement, MCU's usb controller often has limited access to specific RAM region. This will be used to declare internal variables as follow: -/// uint8_t tinyusb_data[10] TUSB_CFG_ATTR_USBRAM; -/// if your mcu's usb controller has no such limit, define TUSB_CFG_ATTR_USBRAM as empty macro. -#ifndef TUSB_CFG_ATTR_USBRAM - #error TUSB_CFG_ATTR_USBRAM is not defined, please help me know how to place data in accessible RAM for usb controller -#endif - -#if TUSB_CFG_OS == TUSB_OS_NONE - #ifndef TUSB_CFG_OS_TICKS_PER_SECOND - #error TUSB_CFG_OS_TICKS_PER_SECOND is required to use with OS_NONE - #endif -#else - #ifndef TUSB_CFG_OS_TASK_PRIO - #error TUSB_CFG_OS_TASK_PRIO need to be defined (hint: use the highest if possible) - #endif -#endif - -#ifndef TUSB_CFG_CONFIGURATION_MAX - #define TUSB_CFG_CONFIGURATION_MAX 1 - #warning TUSB_CFG_CONFIGURATION_MAX is not defined, default value is 1 -#endif - -//--------------------------------------------------------------------+ -// HOST OPTIONS -//--------------------------------------------------------------------+ -#if MODE_HOST_SUPPORTED - #ifndef TUSB_CFG_HOST_DEVICE_MAX - #define TUSB_CFG_HOST_DEVICE_MAX 1 - #warning TUSB_CFG_HOST_DEVICE_MAX is not defined, default value is 1 - #endif - - //------------- HUB CLASS -------------// - #if TUSB_CFG_HOST_HUB && (TUSB_CFG_HOST_DEVICE_MAX == 1) - #error there is no benefit enable hub with max device is 1. Please disable hub or increase TUSB_CFG_HOST_DEVICE_MAX - #endif - - //------------- HID CLASS -------------// - #define HOST_CLASS_HID ( TUSB_CFG_HOST_HID_KEYBOARD + TUSB_CFG_HOST_HID_MOUSE + TUSB_CFG_HOST_HID_GENERIC ) - #if HOST_CLASS_HID - #define HOST_HCD_XFER_INTERRUPT - #endif - - #ifndef TUSB_CFG_HOST_ENUM_BUFFER_SIZE - #define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 256 - #warning TUSB_CFG_HOST_ENUM_BUFFER_SIZE is not defined, default value is 256 - #endif - - //------------- CLASS -------------// -#endif // end TUSB_CFG_HOST - -//--------------------------------------------------------------------+ -// DEVICE OPTIONS -//--------------------------------------------------------------------+ -#if MODE_DEVICE_SUPPORTED - -#if defined(CAP_DEVICE_ROMDRIVER) && !TUSB_CFG_DEVICE_USE_ROM_DRIVER - #error only rom driver for these mcu are supported now -#endif - -#define DEVICE_CLASS_HID ( TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + TUSB_CFG_DEVICE_HID_GENERIC ) - - -#endif - - - -#define USB_FS_MAX_BULK_PACKET 64 -#define USB_HS_MAX_BULK_PACKET USB_FS_MAX_BULK_PACKET /* Full speed device only */ - -/* HID In/Out Endpoint Address */ -#define HID_KEYBOARD_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(1) -#define HID_MOUSE_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(4) - -/* CDC Endpoint Address */ -#define CDC_NOTIFICATION_EP ENDPOINT_IN_LOGICAL_TO_PHYSICAL(2) -#define CDC_DATA_EP_OUT ENDPOINT_OUT_LOGICAL_TO_PHYSICAL(3) -#define CDC_DATA_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(3) - -#define CDC_NOTIFICATION_EP_MAXPACKETSIZE 8 -#define CDC_DATA_EP_MAXPACKET_SIZE 16 - -#endif /* _TUSB_TUSB_OPTION_H_ */ - -/** @} */ +/**************************************************************************/
+/*!
+ @file tusb_option.h
+ @author hathach (tinyusb.org)
+
+ @section LICENSE
+
+ Software License Agreement (BSD License)
+
+ Copyright (c) 2013, hathach (tinyusb.org)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This file is part of the tinyusb stack.
+*/
+/**************************************************************************/
+
+#ifndef _TUSB_TUSB_OPTION_H_
+#define _TUSB_TUSB_OPTION_H_
+
+/** \defgroup group_configuration Configuration tusb_config.h
+ * @{ */
+
+#define TUSB_VERSION_YEAR 00
+#define TUSB_VERSION_MONTH 00
+#define TUSB_VERSION_WEEK 0
+#define TUSB_VERSION_NAME "alpha"
+#define TUSB_VERSION XSTRING_(TUSB_VERSION_YEAR) "." XSTRING_(TUSB_VERSION_MONTH)
+
+/** \defgroup MCU_ MCU Selection
+ * \brief TUSB_CFG_MCU must be defined to one of these
+ * @{ */
+#define MCU_LPC13XX_12ADC 1 ///< NXP LPC13xx 12 bit ADC family with USB on-chip Rom Driver (not supported yet)
+#define MCU_LPC13XX_10ADC 2 ///< NXP LPC13xx 10 bit ADC family (not supported yet)
+#define MCU_LPC11UXX 3 ///< NXP LPC11Uxx family (not supported yet)
+#define MCU_LPC43XX 4 ///< NXP LPC43xx family
+#define MCU_LPC18XX 5 ///< NXP LPC18xx family (not supported yet)
+#define MCU_LPC175X_6X 6 ///< NXP LPC175x, LPC176x family (not supported yet)
+#define MCU_LPC177X_8X 7 ///< NXP LPC177x, LPC178x family (not supported yet)
+/** @} */
+
+#include "mcu_capacity.h"
+
+#ifdef TUSB_CFG_CONFIG_FILE
+ #include TUSB_CFG_CONFIG_FILE
+#else
+ #include "tusb_config.h"
+#endif
+
+//--------------------------------------------------------------------+
+// CONTROLLER
+//--------------------------------------------------------------------+
+/** \defgroup TUSB_MODE Host/Device Mode Selection
+ * \brief TUSB_CFG_CONTROLLER_N_MODE must be defined with these
+ * @{ */
+#define TUSB_MODE_HOST 0x02 ///< Host Mode
+#define TUSB_MODE_DEVICE 0x01 ///< Device Mode
+#define TUSB_MODE_NONE 0x00 ///< Disabled
+/** @} */
+
+#define CONTROLLER_HOST_NUMBER (\
+ ((TUSB_CFG_CONTROLLER_0_MODE & TUSB_MODE_HOST) ? 1 : 0) + \
+ ((TUSB_CFG_CONTROLLER_1_MODE & TUSB_MODE_HOST) ? 1 : 0))
+
+#define CONTROLLER_DEVICE_NUMBER (\
+ ((TUSB_CFG_CONTROLLER_0_MODE & TUSB_MODE_DEVICE) ? 1 : 0) + \
+ ((TUSB_CFG_CONTROLLER_1_MODE & TUSB_MODE_DEVICE) ? 1 : 0))
+
+#define MODE_HOST_SUPPORTED (CONTROLLER_HOST_NUMBER > 0)
+#define MODE_DEVICE_SUPPORTED (CONTROLLER_DEVICE_NUMBER > 0)
+
+#if !MODE_HOST_SUPPORTED && !MODE_DEVICE_SUPPORTED
+ #error please configure at least 1 TUSB_CFG_CONTROLLER_N_MODE to TUSB_MODE_HOST and/or TUSB_MODE_DEVICE
+#endif
+
+//--------------------------------------------------------------------+
+// COMMON OPTIONS
+//--------------------------------------------------------------------+
+/**
+ determines the debug level for the stack
+ - Level 3: ATTR_ALWAYS_INLINE is null, ASSERT has text, Error has its String, STATIC_VAR is NULL
+ - Level 2: ATTR_ALWAYS_INLINE is attribute, ASSERT has no text, Error has no strings
+ - Level 1: TBD
+ - Level 0: no debug information is generated
+*/
+#ifndef TUSB_CFG_DEBUG
+ #define TUSB_CFG_DEBUG 2
+ #warning TUSB_CFG_DEBUG is not defined, default value is 3
+#endif
+
+#ifndef TUSB_CFG_ATTR_USBRAM
+ #error TUSB_CFG_ATTR_USBRAM is not defined, please help me know how to place data in accessible RAM for usb controller
+#endif
+
+#if TUSB_CFG_OS == TUSB_OS_NONE
+ #ifndef TUSB_CFG_OS_TICKS_PER_SECOND
+ #error TUSB_CFG_OS_TICKS_PER_SECOND is required to use with OS_NONE
+ #endif
+#else
+ #ifndef TUSB_CFG_OS_TASK_PRIO
+ #error TUSB_CFG_OS_TASK_PRIO need to be defined (hint: use the highest if possible)
+ #endif
+#endif
+
+/**
+ * Maximum number of supported USB's configuration (currently only support only 1)
+ */
+#ifndef TUSB_CFG_CONFIGURATION_MAX
+ #define TUSB_CFG_CONFIGURATION_MAX 1
+ #warning TUSB_CFG_CONFIGURATION_MAX is not defined, default value is 1
+#endif
+
+//--------------------------------------------------------------------+
+// HOST OPTIONS
+//--------------------------------------------------------------------+
+#if MODE_HOST_SUPPORTED
+ #ifndef TUSB_CFG_HOST_DEVICE_MAX
+ #define TUSB_CFG_HOST_DEVICE_MAX 1
+ #warning TUSB_CFG_HOST_DEVICE_MAX is not defined, default value is 1
+ #endif
+
+ //------------- HUB CLASS -------------//
+ #if TUSB_CFG_HOST_HUB && (TUSB_CFG_HOST_DEVICE_MAX == 1)
+ #error there is no benefit enable hub with max device is 1. Please disable hub or increase TUSB_CFG_HOST_DEVICE_MAX
+ #endif
+
+ //------------- HID CLASS -------------//
+ #define HOST_CLASS_HID ( TUSB_CFG_HOST_HID_KEYBOARD + TUSB_CFG_HOST_HID_MOUSE + TUSB_CFG_HOST_HID_GENERIC )
+ #if HOST_CLASS_HID
+ #define HOST_HCD_XFER_INTERRUPT
+ #endif
+
+ #ifndef TUSB_CFG_HOST_ENUM_BUFFER_SIZE
+ #define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 256
+ #warning TUSB_CFG_HOST_ENUM_BUFFER_SIZE is not defined, default value is 256
+ #endif
+
+ //------------- CLASS -------------//
+#endif // MODE_HOST_SUPPORTED
+
+//--------------------------------------------------------------------+
+// DEVICE OPTIONS
+//--------------------------------------------------------------------+
+#if MODE_DEVICE_SUPPORTED
+
+#if defined(CAP_DEVICE_ROMDRIVER) && !TUSB_CFG_DEVICE_USE_ROM_DRIVER
+ #error only rom driver for these mcu are supported now
+#endif
+
+#define DEVICE_CLASS_HID ( TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + TUSB_CFG_DEVICE_HID_GENERIC )
+
+
+#endif // MODE_DEVICE_SUPPORTED
+
+
+
+#define USB_FS_MAX_BULK_PACKET 64
+#define USB_HS_MAX_BULK_PACKET USB_FS_MAX_BULK_PACKET /* Full speed device only */
+
+/* HID In/Out Endpoint Address */
+#define HID_KEYBOARD_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(1)
+#define HID_MOUSE_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(4)
+
+/* CDC Endpoint Address */
+#define CDC_NOTIFICATION_EP ENDPOINT_IN_LOGICAL_TO_PHYSICAL(2)
+#define CDC_DATA_EP_OUT ENDPOINT_OUT_LOGICAL_TO_PHYSICAL(3)
+#define CDC_DATA_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(3)
+
+#define CDC_NOTIFICATION_EP_MAXPACKETSIZE 8
+#define CDC_DATA_EP_MAXPACKET_SIZE 16
+
+#endif /* _TUSB_TUSB_OPTION_H_ */
+
+/** @} */
|
