Start update of documentation to support possible multiple architectures in the future - alter \file documentation to automatically copy in the module documentation where possible.
This commit is contained in:
		
							parent
							
								
									1daa5e16f9
								
							
						
					
					
						commit
						5e73190582
					
				
					 98 changed files with 256 additions and 590 deletions
				
			
		| 
						 | 
				
			
			@ -29,9 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB device mode definitions (AVR8)
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to USB device mode.
 | 
			
		||||
 *  \brief USB Device definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_Device_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -39,9 +38,9 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_Device
 | 
			
		||||
 *  \defgroup Group_Device_AVR8 Device Management (AVR8)
 | 
			
		||||
 *  \brief USB Device definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  USB Device mode related macros and enums. This module contains macros and enums which are used when
 | 
			
		||||
 *  the USB controller is initialized in device mode.
 | 
			
		||||
 *  Architecture specific USB Device definitions for the Atmel 8-bit AVR microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -55,17 +54,15 @@
 | 
			
		|||
		#include "../USBInterrupt.h"
 | 
			
		||||
		#include "../Endpoint.h"
 | 
			
		||||
		
 | 
			
		||||
		#include <avr/boot.h>
 | 
			
		||||
 | 
			
		||||
	/* Preprocessor Checks: */
 | 
			
		||||
		#if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
 | 
			
		||||
			#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if !defined(__INCLUDE_FROM_USB_DRIVER)
 | 
			
		||||
			#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
 | 
			
		||||
			#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
	/* Public Interface - May be used in end-application: */
 | 
			
		||||
		/* Macros: */
 | 
			
		||||
			/** \name USB Device Mode Option Masks */
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +122,7 @@
 | 
			
		|||
			 *        the \ref USB_OPT_MANUAL_PLL option enabled, the user must ensure that the PLL is running
 | 
			
		||||
			 *        before attempting to call this function.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
 | 
			
		||||
			 *  \see \ref Group_StdDescriptors for more information on the RMWAKEUP feature and device descriptors.
 | 
			
		||||
			 */
 | 
			
		||||
			void USB_Device_SendRemoteWakeup(void);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -192,40 +189,6 @@
 | 
			
		|||
				}
 | 
			
		||||
			#endif
 | 
			
		||||
 | 
			
		||||
		/* Function Prototypes: */
 | 
			
		||||
			/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
 | 
			
		||||
			 *  index and language ID. This function MUST be overridden in the user application (added with full, identical
 | 
			
		||||
			 *  prototype and name so that the library can call it to retrieve descriptor data.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \param[in] wValue               The type of the descriptor to retrieve in the upper byte, and the index in the
 | 
			
		||||
			 *                                  lower byte (when more than one descriptor of the given type exists, such as the
 | 
			
		||||
			 *                                  case of string descriptors). The type may be one of the standard types defined
 | 
			
		||||
			 *                                  in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
 | 
			
		||||
			 *  \param[in] wIndex               The language ID of the string to return if the \c wValue type indicates
 | 
			
		||||
			 *                                  \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
 | 
			
		||||
			 *                                  class-specific standards.
 | 
			
		||||
			 *  \param[out] DescriptorAddress   Pointer to the descriptor in memory. This should be set by the routine to
 | 
			
		||||
			 *                                  the address of the descriptor.
 | 
			
		||||
			 *  \param[out] MemoryAddressSpace  A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
 | 
			
		||||
			 *                                  space in which the descriptor is stored. This parameter does not exist when one
 | 
			
		||||
			 *                                  of the \c USE_*_DESCRIPTORS compile time options is used.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
 | 
			
		||||
			 *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
 | 
			
		||||
			 *        allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
 | 
			
		||||
			 *        \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
 | 
			
		||||
			 *        switch.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
 | 
			
		||||
			 */
 | 
			
		||||
			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 | 
			
		||||
			                                    const uint8_t wIndex,
 | 
			
		||||
			                                    const void** const DescriptorAddress
 | 
			
		||||
			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
 | 
			
		||||
			                                    , uint8_t* MemoryAddressSpace
 | 
			
		||||
			#endif
 | 
			
		||||
			                                    ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
 | 
			
		||||
 | 
			
		||||
	/* Private Interface - For use in library only: */
 | 
			
		||||
	#if !defined(__DOXYGEN__)
 | 
			
		||||
		/* Inline Functions: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB device endpoint management definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the management of the device's
 | 
			
		||||
 *  data endpoints when the library is initialized in USB device mode.
 | 
			
		||||
 *  \brief USB Endpoint definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_EndpointManagement_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_EndpointRW
 | 
			
		||||
 *  \defgroup Group_EndpointRW_AVR8 Endpoint Data Reading and Writing (AVR8)
 | 
			
		||||
 *  \brief USB Endpoint definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,9 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB host mode definitions  (AVR8)
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to USB host mode.
 | 
			
		||||
 *  \brief USB Host definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_Host_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -39,9 +38,9 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_Host
 | 
			
		||||
 *  \defgroup Group_Host_AVR8 Host Management (AVR8)
 | 
			
		||||
 *  \brief USB Host definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  USB Host mode related macros and enums. This module contains macros and enums which are used when
 | 
			
		||||
 *  the USB controller is initialized in host mode.
 | 
			
		||||
 *  Architecture specific USB Host definitions for the Atmel 8-bit AVR microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB OTG mode definitions (AVR8)
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
 | 
			
		||||
 *  may be linked directly together and exchange host/device roles as needed.
 | 
			
		||||
 *  \brief USB OTG definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_OTG_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,10 +38,9 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_OTG
 | 
			
		||||
 *  \defgroup Group_OTG_AVR8 USB On The Go (OTG) Management (AVR8)
 | 
			
		||||
 *  \brief USB OTG definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
 | 
			
		||||
 *  exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
 | 
			
		||||
 *  roles.
 | 
			
		||||
 *  Architecture specific USB OTG definitions for the Atmel 8-bit AVR microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB host pipe management definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the management of the device's
 | 
			
		||||
 *  data pipes when the library is initialized in USB host mode.
 | 
			
		||||
 *  \brief USB Pipe definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_PipeManagement_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_PipeRW
 | 
			
		||||
 *  \defgroup Group_PipeRW_AVR8 Pipe Data Reading and Writing (AVR8)
 | 
			
		||||
 *  \brief USB Pipe definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB low level USB controller definitions (AVR8)
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the low level configuration of the
 | 
			
		||||
 *  USB controller, to start, stop and reset the USB library core.
 | 
			
		||||
 *  \brief USB Controller definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *  \copydetails Group_USBManagement_AVR8
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USBManagement
 | 
			
		||||
 *  \defgroup Group_USBManagement_AVR8 USB Interface Management (AVR8)
 | 
			
		||||
 *  \brief USB Controller definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to the setup and management of the USB interface.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +81,7 @@
 | 
			
		|||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if !defined(F_CLOCK)
 | 
			
		||||
			#error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.
 | 
			
		||||
			#error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled USB controller clock in your project makefile.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if (F_CLOCK == 8000000)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB controller interrupt service routine management (AVR8)
 | 
			
		||||
 *  \brief USB Controller Interrupt definitions for the AVR8 microcontrollers.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains definitions required for the correct handling of low level USB service routine interrupts
 | 
			
		||||
 *  from the USB controller.
 | 
			
		||||
| 
						 | 
				
			
			@ -63,11 +63,11 @@
 | 
			
		|||
			#define USB_INT_IsEnabled(int)                 ((USB_INT_GET_EN_REG(int)   &    USB_INT_GET_EN_MASK(int)) ? true : false)
 | 
			
		||||
			#define USB_INT_HasOccurred(int)               ((USB_INT_GET_INT_REG(int)  &    USB_INT_GET_INT_MASK(int)) ? true : false)
 | 
			
		||||
 | 
			
		||||
			#define USB_INT_GET_EN_REG(a, b, c, d)           a
 | 
			
		||||
			#define USB_INT_GET_EN_MASK(a, b, c, d)          b
 | 
			
		||||
			#define USB_INT_GET_INT_REG(a, b, c, d)          c
 | 
			
		||||
			#define USB_INT_GET_INT_MASK(a, b, c, d)         d
 | 
			
		||||
 | 
			
		||||
			#define USB_INT_GET_EN_REG(EnableReg, EnableMask, FlagReg, FlagMask)    EnableReg
 | 
			
		||||
			#define USB_INT_GET_EN_MASK(EnableReg, EnableMask, FlagReg, FlagMask)   EnableMask
 | 
			
		||||
			#define USB_INT_GET_INT_REG(EnableReg, EnableMask, FlagReg, FlagMask)   FlagReg
 | 
			
		||||
			#define USB_INT_GET_INT_MASK(EnableReg, EnableMask, FlagReg, FlagMask)  FlagMask
 | 
			
		||||
			
 | 
			
		||||
			#define USB_INT_VBUS                             USBCON, (1 << VBUSTE) , USBINT, (1 << VBUSTI)
 | 
			
		||||
			#define USB_INT_IDTI                             USBCON, (1 << IDTE)   , USBINT, (1 << IDTI)
 | 
			
		||||
			#define USB_INT_WAKEUPI                          UDIEN , (1 << WAKEUPE), UDINT , (1 << WAKEUPI)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,11 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief Configuration descriptor parser API.
 | 
			
		||||
 *
 | 
			
		||||
 *  This section of the library gives a friendly API which can be used in host applications to easily
 | 
			
		||||
 *  parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
 | 
			
		||||
 *  data can be extracted and used as needed.
 | 
			
		||||
 *  \brief USB Configuration Descriptor definitions.
 | 
			
		||||
 *  \copydetails Group_ConfigDescriptorParser
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -41,8 +38,11 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_Descriptors
 | 
			
		||||
 *  \defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser
 | 
			
		||||
 *  \brief USB Configuration Descriptor definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.
 | 
			
		||||
 *  This section of the library gives a friendly API which can be used in host applications to easily
 | 
			
		||||
 *  parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
 | 
			
		||||
 *  data can be extracted and used as needed.
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief Common USB device mode definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains common structures, function prototypes and macros related to USB device mode for all
 | 
			
		||||
 *  architectures.
 | 
			
		||||
 *  \brief Common USB Device definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_Device
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_Device Device Management
 | 
			
		||||
 *  \brief Common USB Device definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  USB Device mode related definitions common to all architectures. This module contains definitions which
 | 
			
		||||
 *  are used when the USB controller is initialized in device mode.
 | 
			
		||||
| 
						 | 
				
			
			@ -65,6 +64,41 @@
 | 
			
		|||
			#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
	/* Public Interface - May be used in end-application: */
 | 
			
		||||
		/* Function Prototypes: */
 | 
			
		||||
			/** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
 | 
			
		||||
			 *  index and language ID. This function MUST be overridden in the user application (added with full, identical
 | 
			
		||||
			 *  prototype and name so that the library can call it to retrieve descriptor data.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \param[in] wValue               The type of the descriptor to retrieve in the upper byte, and the index in the
 | 
			
		||||
			 *                                  lower byte (when more than one descriptor of the given type exists, such as the
 | 
			
		||||
			 *                                  case of string descriptors). The type may be one of the standard types defined
 | 
			
		||||
			 *                                  in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
 | 
			
		||||
			 *  \param[in] wIndex               The language ID of the string to return if the \c wValue type indicates
 | 
			
		||||
			 *                                  \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
 | 
			
		||||
			 *                                  class-specific standards.
 | 
			
		||||
			 *  \param[out] DescriptorAddress   Pointer to the descriptor in memory. This should be set by the routine to
 | 
			
		||||
			 *                                  the address of the descriptor.
 | 
			
		||||
			 *  \param[out] MemoryAddressSpace  A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
 | 
			
		||||
			 *                                  space in which the descriptor is stored. This parameter does not exist when one
 | 
			
		||||
			 *                                  of the \c USE_*_DESCRIPTORS compile time options is used.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
 | 
			
		||||
			 *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
 | 
			
		||||
			 *        allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
 | 
			
		||||
			 *        \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
 | 
			
		||||
			 *        switch.
 | 
			
		||||
			 *
 | 
			
		||||
			 *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
 | 
			
		||||
			 */
 | 
			
		||||
			uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
 | 
			
		||||
			                                    const uint8_t wIndex,
 | 
			
		||||
			                                    const void** const DescriptorAddress
 | 
			
		||||
			#if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
 | 
			
		||||
			                                    , uint8_t* MemoryAddressSpace
 | 
			
		||||
			#endif
 | 
			
		||||
			                                    ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB device endpoint management definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the management of the device's
 | 
			
		||||
 *  data endpoints when the library is initialized in USB device mode.
 | 
			
		||||
 *  \brief Common USB Endpoint definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_EndpointManagement
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_EndpointManagement
 | 
			
		||||
 *  \defgroup Group_EndpointRW Endpoint Data Reading and Writing
 | 
			
		||||
 *  \brief Common USB Endpoint definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB device endpoint stream function definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the sending and receiving of
 | 
			
		||||
 *  arbitrary data streams through the device's data endpoints when the library is initialized in USB device mode.
 | 
			
		||||
 *  \brief Endpoint data stream transmission and reception management.
 | 
			
		||||
 *  \copydetails Group_EndpointStreamRW
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_EndpointRW  
 | 
			
		||||
 *  \defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams
 | 
			
		||||
 *  \brief Endpoint data stream transmission and reception management.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing of data streams from
 | 
			
		||||
 *  and to endpoints.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,19 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB controller events manager.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains macros and functions relating to the management of library events, which are small
 | 
			
		||||
 *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
 | 
			
		||||
 *  multiple places in the user or library code, which may or may not be inside an ISR, thus each handler
 | 
			
		||||
 *  should be written to be as small and fast as possible to prevent possible problems.
 | 
			
		||||
 *
 | 
			
		||||
 *  Events can be hooked by the user application by declaring a handler function with the same name and parameters
 | 
			
		||||
 *  listed here. If an event with no user-associated handler is fired within the library, it by default maps to an
 | 
			
		||||
 *  internal empty stub function.
 | 
			
		||||
 *
 | 
			
		||||
 *  Each event must only have one associated event handler, but can be raised by multiple sources by calling the
 | 
			
		||||
 *  event handler function (with any required event parameters).
 | 
			
		||||
 *  \brief USB Event management definitions.
 | 
			
		||||
 *  \copydetails Group_Events
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_Events USB Events
 | 
			
		||||
 *  \brief USB Event management definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This module contains macros and functions relating to the management of library events, which are small
 | 
			
		||||
 *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB host mode definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  USB Host mode related macros and enums. This module contains macros and enums which are used when
 | 
			
		||||
 *  the USB controller is initialized in host mode.
 | 
			
		||||
 *  \brief Common USB Host definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_Host
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_Host Host Management
 | 
			
		||||
 *  \brief Common USB Host definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  USB Host mode related macros and enums. This module contains macros and enums which are used when
 | 
			
		||||
 *  the USB controller is initialized in host mode.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB OTG mode definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
 | 
			
		||||
 *  may be linked directly together and exchange host/device roles as needed.
 | 
			
		||||
 *  \brief Common USB OTG definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_OTG
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_OTG USB On The Go (OTG) Management
 | 
			
		||||
 *  \brief Common USB OTG definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
 | 
			
		||||
 *  exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB host pipe management definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the management of the device's
 | 
			
		||||
 *  data pipes when the library is initialized in USB host mode.
 | 
			
		||||
 *  \brief Common USB Pipe definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_PipeManagement
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_PipeManagement
 | 
			
		||||
 *  \defgroup Group_PipeRW Pipe Data Reading and Writing
 | 
			
		||||
 *  \brief Common USB Pipe definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB host pipe stream function definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the sending and receiving of
 | 
			
		||||
 *  arbitrary data streams through the device's data pipes when the library is initialized in USB host mode.
 | 
			
		||||
 *  \brief Pipe data stream transmission and reception management.
 | 
			
		||||
 *  \copydetails Group_PipeStreamRW
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_PipeRW  
 | 
			
		||||
 *  \defgroup Group_PipeStreamRW Read/Write of Multi-Byte Streams
 | 
			
		||||
 *  \brief Pipe data stream transmission and reception management.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to data reading and writing of data streams from
 | 
			
		||||
 *  and to pipes.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,16 +29,16 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB standard descriptor definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures and macros for the easy creation of standard USB descriptors in USB device projects.
 | 
			
		||||
 *  \brief Common USB Descriptor definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_StdDescriptors
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_Descriptors USB Descriptors
 | 
			
		||||
 *  \defgroup Group_StdDescriptors USB Descriptors
 | 
			
		||||
 *  \brief Common USB Descriptor definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
 | 
			
		||||
 *  structures and macros for the easy creation of standard USB descriptors in USB device projects.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,8 +30,7 @@
 | 
			
		|||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB control endpoint request definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures and macros for the easy creation and parsing of standard USB control requests.
 | 
			
		||||
 *  \copydetails Group_StdRequest
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -39,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_StdRequest Standard USB Requests
 | 
			
		||||
 *  \brief USB control endpoint request definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This module contains definitions for the various control request parameters, so that the request
 | 
			
		||||
 *  details (such as data direction, request recipient, etc.) can be extracted via masking.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,10 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB low level USB controller definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file contains structures, function prototypes and macros related to the low level configuration of the
 | 
			
		||||
 *  USB controller, to start, stop and reset the USB library core.
 | 
			
		||||
 *  \brief Common USB Controller definitions for all architectures.
 | 
			
		||||
 *  \copydetails Group_USBManagement
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +38,7 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_USBManagement USB Interface Management
 | 
			
		||||
 *  \brief Common USB Controller definitions for all architectures.
 | 
			
		||||
 *
 | 
			
		||||
 *  Functions, macros, variables, enums and types related to the setup and management of the USB interface.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,11 +29,8 @@
 | 
			
		|||
*/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief USB mode and capability macros.
 | 
			
		||||
 *
 | 
			
		||||
 *  This file defines macros indicating the type of USB controller the library is being compiled for, and its
 | 
			
		||||
 *  capabilities. These macros may then be referenced in the user application to selectively enable or disable
 | 
			
		||||
 *  code sections depending on if they are defined or not.
 | 
			
		||||
 *  \brief USB mode and feature support definitions.
 | 
			
		||||
 *  \copydetails Group_USBMode
 | 
			
		||||
 *
 | 
			
		||||
 *  \note This file should not be included directly. It is automatically included as needed by the USB driver
 | 
			
		||||
 *        dispatch header located in LUFA/Drivers/USB/USB.h.
 | 
			
		||||
| 
						 | 
				
			
			@ -41,11 +38,15 @@
 | 
			
		|||
 | 
			
		||||
/** \ingroup Group_USB
 | 
			
		||||
 *  \defgroup Group_USBMode USB Mode Tokens
 | 
			
		||||
 *  \brief USB mode and feature support definitions.
 | 
			
		||||
 *
 | 
			
		||||
 *  After the inclusion of the master USB driver header, one or more of the following
 | 
			
		||||
 *  tokens may be defined, to allow the user code to conditionally enable or disable
 | 
			
		||||
 *  code based on the USB controller family and allowable USB modes. These tokens may
 | 
			
		||||
 *  be tested against to eliminate code relating to a USB mode which is not enabled for
 | 
			
		||||
 *  This file defines macros indicating the type of USB controller the library is being compiled for, and its
 | 
			
		||||
 *  capabilities. These macros may then be referenced in the user application to selectively enable or disable
 | 
			
		||||
 *  code sections depending on if they are defined or not.
 | 
			
		||||
 *
 | 
			
		||||
 *  After the inclusion of the master USB driver header, one or more of the following tokens may be defined, to
 | 
			
		||||
 *  allow the user code to conditionally enable or disable code based on the USB controller family and allowable
 | 
			
		||||
 *  USB modes. These tokens may be tested against to eliminate code relating to a USB mode which is not enabled for
 | 
			
		||||
 *  the given compilation.
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue