Fix errors uncovered by the new build test compile warnings; fix UC3 pipe configurati...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 19 Feb 2012 15:26:42 +0000 (15:26 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 19 Feb 2012 15:26:42 +0000 (15:26 +0000)
LUFA/DoxygenPages/ChangeLog.txt
LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
LUFA/Platform/XMEGA/ClockManagement.h

index 28f710d..ea0bc60 100644 (file)
@@ -62,6 +62,7 @@
   *   - Fixed broken compilation of LUFA under C++ compilers when the Serial peripheral module header file is included in a C++ source file
   *   - Fixed missing semicolon in the UC3 architecture host pipe functions
   *   - Fixed failed compilation for the XMEGA architecture if USB_DEVICE_ONLY us not specified
+  *   - Fixed UC3 architecture ignoring the pipe size when Pipe_ConfigurePipe() is called
   *  - Library Applications:
   *   - Added reliability patches to the AVRISP-MKII Clone project's PDI/TPI protocols (thanks to Justin Mattair)
   *   - Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETECT is enabled
index 56697ff..17c1e5c 100644 (file)
                         */
                        bool TWI_ReceiveByte(uint8_t* const Byte,
                                             const bool LastByte) ATTR_NON_NULL_PTR_ARG(1);
-                       bool TWI_ReceiveByte(uint8_t* const Byte,
-                                            const bool LastByte);
 
                        /** High level function to perform a complete packet transfer over the TWI bus to the specified
                         *  device.
index 770f285..dbd03c7 100644 (file)
@@ -58,6 +58,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
                                        ((uint32_t)Type  << AVR32_USBB_PTYPE_OFFSET)  |
                                        ((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
                                        ((uint32_t)Banks << AVR32_USBB_PBK_OFFSET)    |
+                                       Pipe_BytesToEPSizeMask(Size) |
                                        ((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
 
        Pipe_SetInfiniteINRequests();
@@ -76,6 +77,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
                                      ((uint32_t)Type  << AVR32_USBB_PTYPE_OFFSET)  |
                                      ((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
                                      ((uint32_t)Banks << AVR32_USBB_PBK_OFFSET)    |
+                                     Pipe_BytesToEPSizeMask(Size) |
                                      ((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
                }
                else
index 7b9e799..1433d8c 100644 (file)
                        static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber)
                        {
-                               return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << USB_Pipe_SelectedPipe)) ? true : false);
+                               return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << PipeNumber)) ? true : false);
                        }
 
                        /** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
index 37059c1..c4dfab3 100644 (file)
        #endif
 
        /* Public Interface - May be used in end-application: */
-               /* ISR Prototypes: */
+               /* Function Prototypes: */
                        #if defined(__DOXYGEN__)
                                /** Interrupt service routine handler for the USB controller ISR group. This interrupt routine <b>must</b> be
                                 *  linked to the entire USB controller ISR vector group inside the AVR32's interrupt controller peripheral,
                                 *  using the user application's preferred USB controller driver.
                                 */
                                void USB_GEN_vect(void);
-                       #else
-                               ISR(USB_GEN_vect);
                        #endif
 
        /* Disable C linkage for C++ Compilers: */
index aaac091..8cea092 100644 (file)
                        static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber)
                        {
+                               (void)EndpointNumber;
                                return 0; // TODO
                        }
 
index e40a1f5..6a07626 100644 (file)
                                switch (Interrupt)
                                {
                                        case USB_INT_BUSEVENTI:
-                                               USB.INTCTRLA |=  USB_BUSEVIE_bm;
+                                               USB.INTCTRLA |= USB_BUSEVIE_bm;
                                                return;
                                        case USB_INT_SOFI:
-                                               USB.INTCTRLA |=  USB_SOFIE_bm;
+                                               USB.INTCTRLA |= USB_SOFIE_bm;
                                                return;
                                }
                        }
index 415c987..20fb646 100644 (file)
                         *  and ready for use before this function is called.
                         *
                         *  \param[in] Source      Clock source for the CPU core, a value from \ref XMEGA_System_ClockSource_t.
-                        *  \param[in] SourceFreq  Frequency of the CPU core's clock source, in Hz.
                         *
                         *  \return Boolean \c true if the CPU core clock was sucessfully altered, \c false if invalid parameters specified.
                         */
-                       static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
-                                                                     const uint32_t SourceFreq) ATTR_ALWAYS_INLINE;
-                       static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
-                                                                     const uint32_t SourceFreq)
+                       static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source) ATTR_ALWAYS_INLINE;
+                       static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source)
                        {
                                uint8_t ClockSourceMask = 0;