Start porting the USB core to the AVR32 UC3B.
authorDean Camera <dean@fourwalledcubicle.com>
Tue, 23 Feb 2010 07:13:29 +0000 (07:13 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Tue, 23 Feb 2010 07:13:29 +0000 (07:13 +0000)
19 files changed:
LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
LUFA/Drivers/USB/HighLevel/USBInterrupt.h
LUFA/Drivers/USB/HighLevel/USBMode.h
LUFA/Drivers/USB/HighLevel/USBTask.h
LUFA/Drivers/USB/LowLevel/DevChapter9.c
LUFA/Drivers/USB/LowLevel/DevChapter9.h
LUFA/Drivers/USB/LowLevel/Device.h
LUFA/Drivers/USB/LowLevel/Endpoint.c
LUFA/Drivers/USB/LowLevel/Endpoint.h
LUFA/Drivers/USB/LowLevel/Host.h
LUFA/Drivers/USB/LowLevel/HostChapter9.h
LUFA/Drivers/USB/LowLevel/LowLevel.h
LUFA/Drivers/USB/LowLevel/OTG.h
LUFA/Drivers/USB/LowLevel/Pipe.c
LUFA/Drivers/USB/LowLevel/Pipe.h
LUFA/Drivers/USB/USB.h
LUFA/ManPages/FutureChanges.txt

index 454f0b6..1168fa2 100644 (file)
 #define __CONFIGDESCRIPTOR_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+               #endif\r
                \r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBMode.h"\r
index 12b30b2..f6d8aac 100644 (file)
 #define __USBEVENTS_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+               #endif\r
                \r
                #include "../../../Common/Common.h"\r
                #include "USBMode.h"\r
index 807eb78..f94673d 100644 (file)
 #define __USBDESCRIPTORS_H__\r
 \r
        /* Includes: */\r
-               #include <avr/pgmspace.h>\r
-               #include <stdbool.h>\r
-               #include <stddef.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+                       #include <stddef.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/pgmspace.h>\r
+                       #include <stdbool.h>\r
+                       #include <stddef.h>\r
+               #endif\r
 \r
                #include "../../../Common/Common.h"\r
                #include "USBMode.h"\r
index 6ff7c70..94f88e2 100644 (file)
 #define __USBINTERRUPT_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdbool.h>\r
+                       #include <stdint.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
                \r
                #include "../../../Common/Common.h"\r
                #include "../LowLevel/LowLevel.h"\r
index ba2d453..1ceb981 100644 (file)
                 *  (i.e. AT90USBXXX7) when defined.\r
                 */\r
                #define USB_SERIES_7_AVR\r
+               \r
+               /** Indicates that the target AVR microcontroller belongs to the Series UC3B USB controller\r
+                *  (i.e. AT32UC3BXXXX) when defined.\r
+                */\r
+               #define USB_SERIES_UC3B_AVR\r
 \r
                /** Indicates that the target AVR microcontroller and compilation settings allow for the\r
                 *  target to be configured in USB Device mode when defined.\r
                                #define USB_SERIES_6_AVR\r
                        #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))\r
                                #define USB_SERIES_7_AVR\r
+                       #elif (defined(__AVR32_UC3B0256__))\r
+                               #define USB_SERIES_UC3B_AVR\r
                        #endif                  \r
 \r
-                       #if !defined(USB_SERIES_7_AVR)          \r
+                       #if !defined(USB_SERIES_7_AVR) && !defined(USB_SERIES_UC3B_AVR)\r
                                #if defined(USB_HOST_ONLY)\r
                                        #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
                                #endif\r
index c01b84c..350ad5d 100644 (file)
 #define __USBTASK_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/interrupt.h>\r
-               #include <stdbool.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <avr/interrupt.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
                \r
                #include "../LowLevel/LowLevel.h"\r
                #include "Events.h"\r
index 7d9e815..0d25e3b 100644 (file)
@@ -139,7 +139,7 @@ static void USB_Device_SetAddress(void)
        if (DeviceAddress)\r
          USB_DeviceState = DEVICE_STATE_Addressed;\r
 \r
-       UDADDR = ((1 << ADDEN) | DeviceAddress);\r
+       USB_Device_SetDeviceAddress(DeviceAddress);\r
 \r
        return;\r
 }\r
index 58a5dc8..cb1b44a 100644 (file)
 #define __DEVCHAPTER9_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/pgmspace.h>\r
-               #include <avr/eeprom.h>\r
-               #include <avr/boot.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <avr/pgmspace.h>\r
+                       #include <avr/eeprom.h>\r
+                       #include <avr/boot.h>\r
+               #endif\r
                \r
                #include "../HighLevel/StdDescriptors.h"\r
                #include "../HighLevel/Events.h"\r
                                enum USB_DescriptorMemorySpaces_t\r
                                {\r
                                        MEMSPACE_FLASH    = 0, /**< Indicates the requested descriptor is located in FLASH memory */\r
+                                       \r
+                                       #if defined(__AVR__) || defined(__DOXYGEN__)\r
                                        MEMSPACE_EEPROM   = 1, /**< Indicates the requested descriptor is located in EEPROM memory */\r
+                                       #endif\r
+                                       \r
                                        MEMSPACE_RAM      = 2, /**< Indicates the requested descriptor is located in RAM memory */\r
                                };\r
                        #endif\r
                #elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) && defined(USE_RAM_DESCRIPTORS)\r
                        #error Only one of the USE_*_DESCRIPTORS modes should be selected.\r
                #endif\r
+               \r
+               #if defined(USE_EEPROM_DESCRIPTORS) && defined(USB_SERIES_UC3B_AVR)\r
+                       #error USE_EEPROM_DESCRIPTORS is not available on the UC3B series AVRs.\r
+               #endif\r
        \r
                /* Function Prototypes: */\r
                        void USB_Device_ProcessControlRequest(void);\r
index 1f929bf..9dff3f9 100644 (file)
 #define __USBDEVICE_H__\r
 \r
        /* Includes: */\r
-               #include <avr/pgmspace.h>\r
-               #include <avr/eeprom.h>\r
-\r
+               #if defined(__AVR__)\r
+                       #include <avr/pgmspace.h>\r
+                       #include <avr/eeprom.h>\r
+               #endif\r
+               \r
                #include "../../../Common/Common.h"     \r
                #include "../HighLevel/StdDescriptors.h"\r
                #include "Endpoint.h"\r
@@ -59,7 +61,8 @@
                        \r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
-                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
+                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || \\r
+                            defined(USB_SERIES_UC3B_AVR) || defined(__DOXYGEN__))\r
                                /** Mask for the Options parameter of the \ref USB_Init() function. This indicates that the\r
                                 *  USB interface should be initialized in low speed (1.5Mb/s) mode.\r
                                 *\r
                                 *  \note Restrictions apply on the number, size and type of endpoints which can be used\r
                                 *        when running in low speed mode -- refer to the USB 2.0 standard.\r
                                 */\r
-                               #define USB_DEVICE_OPT_LOWSPEED            (1 << 0)\r
+                               #define USB_DEVICE_OPT_LOWSPEED       (1 << 0)\r
                        #endif\r
                        \r
                        /** Mask for the Options parameter of the USB_Init() function. This indicates that the\r
                         *  USB interface should be initialized in full speed (12Mb/s) mode.\r
                         */\r
-                       #define USB_DEVICE_OPT_FULLSPEED               (0 << 0)\r
+                       #define USB_DEVICE_OPT_FULLSPEED          (0 << 0)\r
                        \r
                /* Pseudo-Function Macros: */\r
                        #if defined(__DOXYGEN__)\r
                                 */\r
                                static inline bool USB_Device_DisableSOFEvents(void);\r
                        #else\r
-                               #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
-                                       #define USB_Device_SendRemoteWakeup()   MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
+                               #if defined(__AVR32__)\r
+                                       #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
+                                               #define USB_Device_SendRemoteWakeup()   MACROS{ AVR32_USBB.UDCON.rmwkup = true; }MACROE\r
+\r
+                                               #define USB_Device_IsRemoteWakeupSent()         AVR32_USBB.UDCON.rmwkup\r
+                                       #endif\r
+                                       \r
+                                       #define USB_Device_IsUSBSuspended()                 AVR32_USBB.UDINT.susp                                       \r
+                               #elif defined(__AVR__)\r
+                                       #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
+                                               #define USB_Device_SendRemoteWakeup()   MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
 \r
-                                       #define USB_Device_IsRemoteWakeupSent()       ((UDCON &  (1 << RMWKUP)) ? false : true)\r
+                                               #define USB_Device_IsRemoteWakeupSent()       ((UDCON &  (1 << RMWKUP)) ? false : true)\r
+                                       #endif\r
+                                       \r
+                                       #define USB_Device_IsUSBSuspended()               ((UDINT & (1 << SUSPI)) ? true : false)\r
                                #endif\r
-                               \r
-                               #define USB_Device_IsUSBSuspended()           ((UDINT &  (1 << SUSPI)) ? true : false)\r
-                               \r
-                               #define USB_Device_EnableSOFEvents()    MACROS{ USB_INT_Enable(USB_INT_SOFI); }MACROE\r
 \r
+                               #define USB_Device_EnableSOFEvents()    MACROS{ USB_INT_Enable(USB_INT_SOFI); }MACROE\r
                                #define USB_Device_DisableSOFEvents()   MACROS{ USB_INT_Disable(USB_INT_SOFI); }MACROE\r
                        #endif\r
                        \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */           \r
-                       #define USB_Device_SetLowSpeed()        MACROS{ UDCON |=  (1 << LSM);   }MACROE\r
-                       #define USB_Device_SetFullSpeed()       MACROS{ UDCON &= ~(1 << LSM);   }MACROE\r
+                       #if defined(__AVR32__)\r
+                               #define USB_Device_SetLowSpeed()          MACROS{ AVR32_USBB.UDCON.ls = true;  }MACROE\r
+                               #define USB_Device_SetFullSpeed()         MACROS{ AVR32_USBB.UDCON.ls = false; }MACROE\r
+                               \r
+                               #define USB_Device_SetDeviceAddress(addr) MACROS{ AVR32_USBB.UDADDR = (AVR32_USBB_UDCON_ADDEN_MASK | DeviceAddress); }MACROE                    \r
+                       #elif defined(__AVR__)\r
+                               #define USB_Device_SetLowSpeed()          MACROS{ UDCON |=  (1 << LSM);   }MACROE\r
+                               #define USB_Device_SetFullSpeed()         MACROS{ UDCON &= ~(1 << LSM);   }MACROE\r
+                               \r
+                               #define USB_Device_SetDeviceAddress(addr) MACROS{ UDADDR =  ((1 << ADDEN) | DeviceAddress); }MACROE\r
+                       #endif\r
        #endif\r
 \r
 #endif\r
index 81fef1c..819e3f8 100644 (file)
@@ -225,12 +225,14 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-#include "Template/Template_Endpoint_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -239,12 +241,14 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-#include "Template/Template_Endpoint_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -260,12 +264,14 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                  void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -274,12 +280,14 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                  void*\r
+       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_RW.c"\r
+#endif\r
 \r
 #endif\r
 \r
@@ -293,10 +301,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_LE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_Control_EStream_LE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
@@ -308,29 +318,35 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_BE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-#include "Template/Template_Endpoint_Control_W.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_Control_EStream_BE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+       #include "Template/Template_Endpoint_Control_W.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_LE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_LE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_Control_R.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_Control_EStream_LE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_Control_R.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_BE\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
-#include "Template/Template_Endpoint_Control_R.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_Control_EStream_BE\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
+       #include "Template/Template_Endpoint_Control_R.c"\r
+#endif\r
 \r
 #endif\r
index 6d98b78..cf6fbc6 100644 (file)
 #define __ENDPOINT_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/pgmspace.h>\r
-               #include <avr/eeprom.h>\r
-               #include <stdbool.h>\r
-\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <avr/pgmspace.h>\r
+                       #include <avr/eeprom.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
+               \r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBTask.h"\r
 \r
                        static inline uint8_t Endpoint_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t Endpoint_Read_Byte(void)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               return 0; // TODO\r
+                               #elif defined(__AVR__)\r
                                return UEDATX;\r
+                               #endif\r
                        }\r
 \r
                        /** Writes one byte from the currently selected endpoint's bank, for IN direction endpoints.\r
                        static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Byte(const uint8_t Byte)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UEDATX = Byte;\r
+                               #endif\r
                        }\r
 \r
                        /** Discards one byte from the currently selected endpoint's bank, for OUT direction endpoints.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
+                               #endif\r
                        }\r
                        \r
                        /** Reads two bytes from the currently selected endpoint's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
+                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[0] = UEDATX;\r
+                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                        static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Word_LE(const uint16_t Word)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UEDATX = (Word & 0xFF);\r
                                UEDATX = (Word >> 8);\r
+                               #endif\r
                        }\r
                        \r
                        /** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN\r
                        static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Word_BE(const uint16_t Word)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UEDATX = (Word >> 8);\r
                                UEDATX = (Word & 0xFF);\r
+                               #endif\r
                        }\r
 \r
                        /** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
+                               #endif\r
                        }\r
 \r
                        /** Reads four bytes from the currently selected endpoint's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[2] = UEDATX;\r
                                Data.Bytes[3] = UEDATX;\r
+                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[3] = UEDATX;\r
                                Data.Bytes[2] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[0] = UEDATX;\r
+                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                        static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UEDATX = (DWord &  0xFF);\r
                                UEDATX = (DWord >> 8);\r
                                UEDATX = (DWord >> 16);\r
                                UEDATX = (DWord >> 24);\r
+                               #endif\r
                        }\r
                        \r
                        /** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN\r
                        static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UEDATX = (DWord >> 24);\r
                                UEDATX = (DWord >> 16);\r
                                UEDATX = (DWord >> 8);\r
                                UEDATX = (DWord &  0xFF);\r
+                               #endif\r
                        }\r
 \r
                        /** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints.       \r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
+                               #endif\r
                        }\r
 \r
                /* External Variables: */\r
index 5672dd5..1e4d3c9 100644 (file)
 #define __USBHOST_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
-               #include <util/delay.h>\r
-\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <stdbool.h>\r
+                       #include <util/delay.h>\r
+               #endif\r
+               \r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBInterrupt.h"\r
                #include "../HighLevel/StdDescriptors.h"\r
index 1a85cf6..1bd8b6f 100644 (file)
 #define __HOSTCHAPTER9_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
                \r
                #include "LowLevel.h"\r
                #include "../HighLevel/USBMode.h"\r
index 1a92d47..581dfd1 100644 (file)
 #define __USBLOWLEVEL_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/interrupt.h>\r
-               #include <stdbool.h>\r
-               \r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <avr/interrupt.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
+                               \r
                #include "../HighLevel/USBMode.h"\r
 \r
                #include "../../../Common/Common.h"\r
index 25cb180..acbd479 100644 (file)
 #define __USBOTG_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
                \r
                #include "../../../Common/Common.h"\r
 \r
index 78c82e8..e6ac0e5 100644 (file)
@@ -226,13 +226,15 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Pipe_Write_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_TOKEN                            PIPE_TOKEN_OUT\r
-#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-#include "Template/Template_Pipe_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Pipe_Write_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
+       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_OUT\r
+       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+       #include "Template/Template_Pipe_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -250,13 +252,15 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Pipe_Write_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      const void*\r
-#define  TEMPLATE_TOKEN                            PIPE_TOKEN_OUT\r
-#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearOUT()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-#include "Template/Template_Pipe_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Pipe_Write_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
+       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_OUT\r
+       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearOUT()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+       #include "Template/Template_Pipe_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_LE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -266,13 +270,15 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Pipe_Read_EStream_LE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_TOKEN                            PIPE_TOKEN_IN\r
-#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
-#include "Template/Template_Pipe_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Pipe_Read_EStream_LE\r
+       #define  TEMPLATE_BUFFER_TYPE                  void*\r
+       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_IN\r
+       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
+       #include "Template/Template_Pipe_RW.c"\r
+#endif\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -282,12 +288,14 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#define  TEMPLATE_FUNC_NAME                        Pipe_Read_EStream_BE\r
-#define  TEMPLATE_BUFFER_TYPE                      void*\r
-#define  TEMPLATE_TOKEN                            PIPE_TOKEN_IN\r
-#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearIN()\r
-#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
-#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
-#include "Template/Template_Pipe_RW.c"\r
+#if defined(__AVR__)\r
+       #define  TEMPLATE_FUNC_NAME                    Pipe_Read_EStream_BE\r
+       #define  TEMPLATE_BUFFER_TYPE                  void*\r
+       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_IN\r
+       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearIN()\r
+       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
+       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
+       #include "Template/Template_Pipe_RW.c"\r
+#endif\r
 \r
 #endif\r
index 3e25d49..08935e1 100644 (file)
 #define __PIPE_H__\r
 \r
        /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/pgmspace.h>\r
-               #include <avr/eeprom.h>\r
-               #include <stdbool.h>\r
+               #if defined(__AVR32__)\r
+                       #include <avr32/io.h>\r
+                       #include <stdint.h>\r
+                       #include <stdbool.h>\r
+               #elif defined(__AVR__)\r
+                       #include <avr/io.h>\r
+                       #include <avr/pgmspace.h>\r
+                       #include <avr/eeprom.h>\r
+                       #include <stdbool.h>\r
+               #endif\r
 \r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBTask.h"\r
                        static inline uint8_t Pipe_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t Pipe_Read_Byte(void)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               return 0; // TODO\r
+                               #elif defined(__AVR__)\r
                                return UPDATX;\r
+                               #endif\r
                        }\r
 \r
                        /** Writes one byte from the currently selected pipe's bank, for IN direction pipes.\r
                        static inline void Pipe_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Byte(const uint8_t Byte)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UPDATX = Byte;\r
+                               #endif\r
                        }\r
 \r
                        /** Discards one byte from the currently selected pipe's bank, for OUT direction pipes.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
+                               #endif\r
                        }\r
                        \r
                        /** Reads two bytes from the currently selected pipe's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
+                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[1] = UPDATX;\r
                                Data.Bytes[0] = UPDATX;\r
+                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                        static inline void Pipe_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Word_LE(const uint16_t Word)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UPDATX = (Word & 0xFF);\r
                                UPDATX = (Word >> 8);\r
+                               #endif\r
                        }\r
                        \r
                        /** Writes two bytes to the currently selected pipe's bank in big endian format, for IN\r
                        static inline void Pipe_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Word_BE(const uint16_t Word)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UPDATX = (Word >> 8);\r
                                UPDATX = (Word & 0xFF);\r
+                               #endif\r
                        }\r
 \r
                        /** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
+                               #endif\r
                        }\r
 \r
                        /** Reads four bytes from the currently selected pipe's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
                                Data.Bytes[2] = UPDATX;\r
                                Data.Bytes[3] = UPDATX;\r
+                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Data.Bytes[3] = UPDATX;\r
                                Data.Bytes[2] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
                        static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_DWord_LE(const uint32_t DWord)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UPDATX = (DWord &  0xFF);\r
                                UPDATX = (DWord >> 8);\r
                                UPDATX = (DWord >> 16);\r
                                UPDATX = (DWord >> 24);\r
+                               #endif\r
                        }\r
                        \r
                        /** Writes four bytes to the currently selected pipe's bank in big endian format, for IN\r
                        static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_DWord_BE(const uint32_t DWord)\r
                        {\r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                UPDATX = (DWord >> 24);\r
                                UPDATX = (DWord >> 16);\r
                                UPDATX = (DWord >> 8);\r
                                UPDATX = (DWord &  0xFF);\r
+                               #endif\r
                        }                       \r
                        \r
                        /** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.       \r
                        {\r
                                uint8_t Dummy;\r
                                \r
+                               #if defined(__AVR32__)\r
+                               // TODO\r
+                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
+                               #endif\r
                        }\r
 \r
                /* External Variables: */\r
index 3bc356d..484978b 100644 (file)
 \r
        /* Preprocessor Checks: */              \r
                #if (!defined(USB_SERIES_2_AVR) && !defined(USB_SERIES_4_AVR) && \\r
-                    !defined(USB_SERIES_6_AVR) && !defined(USB_SERIES_7_AVR))\r
+                    !defined(USB_SERIES_6_AVR) && !defined(USB_SERIES_7_AVR) && \\r
+                        !defined(USB_SERIES_UC3B_AVR))\r
                        #error The currently selected AVR model is not supported under the USB component of the LUFA library.\r
                #endif\r
                \r
index 53c074b..86114f4 100644 (file)
   *\r
   *  The following drivers have been partially ported:\r
   *    - SPI Peripheral Driver\r
+  *    - USB Driver\r
   *\r
   *  The following drivers have not yet been ported:\r
   *    - Dataflash Board Driver\r
   *    - Serial Peripheral Driver\r
   *    - ADC Peripheral Driver\r
   *    - TWI Peripheral Driver\r
-  *    - USB Driver\r
   */\r