+ * can be accurately set and the \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_Disconnect() events manually raised by the RAISE_EVENT macro.\r
+ * When defined, this token disables the library's auto-detection of the connection state by the aforementioned suspension and wake up events.\r
+ *\r
+ *\r
+ * \section Sec_SummaryUSBDeviceTokens USB Device Mode Driver Related Tokens\r
+ * This section describes compile tokens which affect USB driver stack of the LUFA library when used in Device mode.\r
+ *\r
+ * <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n\r
+ * Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one\r
+ * of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.\r
+ *\r
+ * <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n\r
+ * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.\r
+ *\r
+ * <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n\r
+ * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.\r
+ *\r
+ * <b>NO_INTERNAL_SERIAL</b> - ( \ref Group_Descriptors ) \n\r
+ * Some AVR models contain a unique 20-digit serial number which can be used as the device serial number, while in device mode. This\r
+ * allows the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing\r
+ * allocated resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the\r
+ * code that performs this task can be disabled by defining this option and passing it to the compiler via the -D switch.\r
+ *\r
+ * <b>FIXED_CONTROL_ENDPOINT_SIZE</b>=<i>x</i> - ( \ref Group_EndpointManagement ) \n\r
+ * By default, the library determines the size of the control endpoint (when in device mode) by reading the device descriptor.\r
+ * Normally this reduces the amount of configuration required for the library, allows the value to change dynamically (if\r
+ * descriptors are stored in EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this token can be\r
+ * defined to a non-zero value instead to give the size in bytes of the control endpoint, to reduce the size of the compiled\r
+ * binary.\r
+ *\r
+ * <b>DEVICE_STATE_AS_GPIOR</b> - ( \ref Group_Device ) \n\r
+ * One of the most frequenty used global variables in the stack is the USB_DeviceState global, which indicates the current state of\r
+ * the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token\r
+ * may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR\r
+ * reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except\r
+ * implicitly via the library APIs.\r
+ *\r
+ * <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - ( \ref Group_Device ) \n\r
+ * By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces\r
+ * the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in\r
+ * EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this value may be fixed via this token in the project\r
+ * makefile to reduce the compiled size of the binary at the expense of flexibility.\r
+ *\r
+ * <b>CONTROL_ONLY_DEVICE</b> \n\r
+ * In some limited USB device applications, there are no device endpoints other than the control endpoint; i.e. all device communication\r
+ * is through control endpoint requests. Defining this token will remove several features related to the selection and control of device\r
+ * endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.\r