Remove redundant type information for bitfield elements, other than the signed/unsign...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Apr 2011 06:43:02 +0000 (06:43 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Apr 2011 06:43:02 +0000 (06:43 +0000)
Change type of USB_SelectedPipe and USB_SelectedEndpoint for the AVR32 UC3 architecture to uint32_t to reduce the compiled code size.

18 files changed:
Demos/Device/ClassDriver/RNDISEthernet/Lib/IP.h
Demos/Device/ClassDriver/RNDISEthernet/Lib/TCP.h
Demos/Device/Incomplete/Sideshow/Lib/SideshowCommon.h
Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h
Demos/Device/LowLevel/MassStorage/Lib/SCSI.h
Demos/Device/LowLevel/RNDISEthernet/Lib/IP.h
Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h
Demos/Host/Incomplete/BluetoothHost/Lib/RFCOMMControl.h
LUFA/Common/Common.h
LUFA/Drivers/USB/Class/Common/MIDI.h
LUFA/Drivers/USB/Class/Common/MassStorage.h
LUFA/Drivers/USB/Class/Device/MIDI.h
LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
LUFA/ManPages/LUFAPoweredProjects.txt
Projects/TempDataLogger/Lib/DS1307.h

index c613c08..1891ef4 100644 (file)
                /** Type define of an IP packet header. */
                typedef struct
                {
                /** Type define of an IP packet header. */
                typedef struct
                {
-                       unsigned char  HeaderLength   : 4; /**< Total length of the packet header, in 4-byte blocks */
-                       unsigned char  Version        : 4; /**< IP protocol version */
-                       uint8_t        TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
-                       uint16_t       TotalLength; /**< Total length of the IP packet, in bytes */
+                       unsigned     HeaderLength   : 4; /**< Total length of the packet header, in 4-byte blocks */
+                       unsigned     Version        : 4; /**< IP protocol version */
+                       uint8_t      TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
+                       uint16_t     TotalLength; /**< Total length of the IP packet, in bytes */
 
 
-                       uint16_t       Identification; /**< Identification value for identifying fragmented packets */
-                       unsigned int   FragmentOffset : 13; /**< Offset of this IP fragment */
-                       unsigned int   Flags          : 3; /**< Fragment flags, to indicate if a packet is fragmented */
+                       uint16_t     Identification; /**< Identification value for identifying fragmented packets */
+                       unsigned     FragmentOffset : 13; /**< Offset of this IP fragment */
+                       unsigned     Flags          : 3; /**< Fragment flags, to indicate if a packet is fragmented */
 
 
-                       uint8_t        TTL; /**< Maximum allowable number of hops to reach the packet destination */
-                       uint8_t        Protocol; /**< Encapsulated protocol type */
-                       uint16_t       HeaderChecksum; /**< Ethernet checksum of the IP header */
+                       uint8_t      TTL; /**< Maximum allowable number of hops to reach the packet destination */
+                       uint8_t      Protocol; /**< Encapsulated protocol type */
+                       uint16_t     HeaderChecksum; /**< Ethernet checksum of the IP header */
 
 
-                       IP_Address_t  SourceAddress; /**< Source protocol IP address of the packet */
-                       IP_Address_t  DestinationAddress; /**< Destination protocol IP address of the packet */
+                       IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */
+                       IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */
                } IP_Header_t;
 
        /* Function Prototypes: */
                } IP_Header_t;
 
        /* Function Prototypes: */
index f14b70e..cbb3c6e 100644 (file)
                        uint32_t               SequenceNumber; /**< Data sequence number of the packet */
                        uint32_t               AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
 
                        uint32_t               SequenceNumber; /**< Data sequence number of the packet */
                        uint32_t               AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
 
-                       unsigned char          Reserved : 4; /**< Reserved, must be all 0 */
-                       unsigned char          DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
+                       unsigned               Reserved : 4; /**< Reserved, must be all 0 */
+                       unsigned               DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
                        uint8_t                Flags; /**< TCP packet flags */
                        uint16_t               WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
 
                        uint8_t                Flags; /**< TCP packet flags */
                        uint16_t               WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
 
index 6d1110c..794b91e 100644 (file)
        /* Type Defines: */
                typedef struct
                {
        /* Type Defines: */
                typedef struct
                {
-                       uint32_t         Chunks[4];
+                       uint32_t Chunks[4];
                } GUID_t;
 
                typedef struct
                {
                } GUID_t;
 
                typedef struct
                {
-                       uint16_t         LengthInBytes;
-                       int              UnicodeString[];
+                       uint16_t LengthInBytes;
+                       int      UnicodeString[];
                } Unicode_String_t;
 
                typedef union
                } Unicode_String_t;
 
                typedef union
 
                        struct
                        {
 
                        struct
                        {
-                               uint8_t TypeBytes[3];
+                               uint8_t  TypeBytes[3];
 
 
-                               int ErrorCode     : 6;
-                               int NAK           : 1;
-                               int Response      : 1;
+                               unsigned ErrorCode     : 6;
+                               unsigned NAK           : 1;
+                               unsigned Response      : 1;
                        } TypeFields;
                } SideShowPacketType_t;
 
                typedef struct
                {
                        } TypeFields;
                } SideShowPacketType_t;
 
                typedef struct
                {
-                       uint32_t               Length;
-                       SideShowPacketType_t   Type;
-                       uint16_t               Number;
+                       uint32_t             Length;
+                       SideShowPacketType_t Type;
+                       uint16_t             Number;
                } SideShow_PacketHeader_t;
 
        /* Function Prototypes: */
                } SideShow_PacketHeader_t;
 
        /* Function Prototypes: */
index 42e6598..53f32a2 100644 (file)
                        \r
                        struct\r
                        {\r
                        \r
                        struct\r
                        {\r
-                               unsigned char ListenOnly             : 1;\r
-                               unsigned char TalkOnly               : 1;\r
-                               unsigned char PulseIndicateSupported : 1;\r
-                               unsigned char Reserved               : 5;\r
+                               unsigned ListenOnly             : 1;\r
+                               unsigned TalkOnly               : 1;\r
+                               unsigned PulseIndicateSupported : 1;\r
+                               unsigned Reserved               : 5;\r
                        } Interface;\r
                        \r
                        struct\r
                        {\r
                        } Interface;\r
                        \r
                        struct\r
                        {\r
-                               unsigned char SupportsAbortINOnMatch : 1;\r
-                               unsigned char Reserved               : 7;\r
+                               unsigned SupportsAbortINOnMatch : 1;\r
+                               unsigned Reserved               : 7;\r
                        } Device;\r
                        \r
                        uint8_t Reserved2[6];\r
                        } Device;\r
                        \r
                        uint8_t Reserved2[6];\r
                \r
                typedef struct\r
                {\r
                \r
                typedef struct\r
                {\r
-                       unsigned char LastMessageTransaction : 1;\r
-                       unsigned char Reserved               : 7;\r
+                       unsigned LastMessageTransaction     : 1;\r
+                       unsigned Reserved                   : 7;\r
 \r
                        uint8_t Reserved2[3];\r
                } TMC_DevOUTMessageHeader_t;\r
 \r
                typedef struct\r
                {\r
 \r
                        uint8_t Reserved2[3];\r
                } TMC_DevOUTMessageHeader_t;\r
 \r
                typedef struct\r
                {\r
-                       unsigned char TermCharEnabled        : 1;\r
-                       unsigned char Reserved               : 7;\r
+                       unsigned TermCharEnabled            : 1;\r
+                       unsigned Reserved                   : 7;\r
 \r
                        uint8_t TermChar;\r
                        uint8_t Reserved2[2];\r
 \r
                        uint8_t TermChar;\r
                        uint8_t Reserved2[2];\r
index 76efd17..a9d96f4 100644 (file)
                 */
                typedef struct
                {
                 */
                typedef struct
                {
-                       unsigned char DeviceType          : 5;
-                       unsigned char PeripheralQualifier : 3;
-
-                       unsigned char Reserved            : 7;
-                       unsigned char Removable           : 1;
-
-                       uint8_t       Version;
-
-                       unsigned char ResponseDataFormat  : 4;
-                       unsigned char Reserved2           : 1;
-                       unsigned char NormACA             : 1;
-                       unsigned char TrmTsk              : 1;
-                       unsigned char AERC                : 1;
-
-                       uint8_t       AdditionalLength;
-                       uint8_t       Reserved3[2];
-
-                       unsigned char SoftReset           : 1;
-                       unsigned char CmdQue              : 1;
-                       unsigned char Reserved4           : 1;
-                       unsigned char Linked              : 1;
-                       unsigned char Sync                : 1;
-                       unsigned char WideBus16Bit        : 1;
-                       unsigned char WideBus32Bit        : 1;
-                       unsigned char RelAddr             : 1;
-
-                       uint8_t       VendorID[8];
-                       uint8_t       ProductID[16];
-                       uint8_t       RevisionID[4];
+                       unsigned DeviceType          : 5;
+                       unsigned PeripheralQualifier : 3;
+
+                       unsigned Reserved            : 7;
+                       unsigned Removable           : 1;
+
+                       uint8_t  Version;
+
+                       unsigned ResponseDataFormat  : 4;
+                       unsigned Reserved2           : 1;
+                       unsigned NormACA             : 1;
+                       unsigned TrmTsk              : 1;
+                       unsigned AERC                : 1;
+
+                       uint8_t  AdditionalLength;
+                       uint8_t  Reserved3[2];
+
+                       unsigned SoftReset           : 1;
+                       unsigned CmdQue              : 1;
+                       unsigned Reserved4           : 1;
+                       unsigned Linked              : 1;
+                       unsigned Sync                : 1;
+                       unsigned WideBus16Bit        : 1;
+                       unsigned WideBus32Bit        : 1;
+                       unsigned RelAddr             : 1;
+
+                       uint8_t  VendorID[8];
+                       uint8_t  ProductID[16];
+                       uint8_t  RevisionID[4];
                } MS_SCSI_Inquiry_Response_t;
 
                /** Type define for a SCSI sense structure to a SCSI REQUEST SENSE command. For details of the
                } MS_SCSI_Inquiry_Response_t;
 
                /** Type define for a SCSI sense structure to a SCSI REQUEST SENSE command. For details of the
                 */
                typedef struct
                {
                 */
                typedef struct
                {
-                       uint8_t       ResponseCode;
-
-                       uint8_t       SegmentNumber;
-
-                       unsigned char SenseKey            : 4;
-                       unsigned char Reserved            : 1;
-                       unsigned char ILI                 : 1;
-                       unsigned char EOM                 : 1;
-                       unsigned char FileMark            : 1;
-
-                       uint8_t       Information[4];
-                       uint8_t       AdditionalLength;
-                       uint8_t       CmdSpecificInformation[4];
-                       uint8_t       AdditionalSenseCode;
-                       uint8_t       AdditionalSenseQualifier;
-                       uint8_t       FieldReplaceableUnitCode;
-                       uint8_t       SenseKeySpecific[3];
+                       uint8_t  ResponseCode;
+
+                       uint8_t  SegmentNumber;
+
+                       unsigned SenseKey            : 4;
+                       unsigned Reserved            : 1;
+                       unsigned ILI                 : 1;
+                       unsigned EOM                 : 1;
+                       unsigned FileMark            : 1;
+
+                       uint8_t  Information[4];
+                       uint8_t  AdditionalLength;
+                       uint8_t  CmdSpecificInformation[4];
+                       uint8_t  AdditionalSenseCode;
+                       uint8_t  AdditionalSenseQualifier;
+                       uint8_t  FieldReplaceableUnitCode;
+                       uint8_t  SenseKeySpecific[3];
                } MS_SCSI_Request_Sense_Response_t;
 
        /* Function Prototypes: */
                } MS_SCSI_Request_Sense_Response_t;
 
        /* Function Prototypes: */
index fb6ed04..0e87562 100644 (file)
                /** Type define of an IP packet header. */
                typedef struct
                {
                /** Type define of an IP packet header. */
                typedef struct
                {
-                       unsigned char  HeaderLength   : 4; /**< Total length of the packet header, in 4-byte blocks */
-                       unsigned char  Version        : 4; /**< IP protocol version */
-                       uint8_t        TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
-                       uint16_t       TotalLength; /**< Total length of the IP packet, in bytes */
+                       unsigned     HeaderLength   : 4; /**< Total length of the packet header, in 4-byte blocks */
+                       unsigned     Version        : 4; /**< IP protocol version */
+                       uint8_t      TypeOfService; /**< Special service type identifier, indicating delay/throughput/reliability levels */
+                       uint16_t     TotalLength; /**< Total length of the IP packet, in bytes */
 
 
-                       uint16_t       Identification; /**< Identification value for identifying fragmented packets */
-                       unsigned int   FragmentOffset : 13; /**< Offset of this IP fragment */
-                       unsigned int   Flags          : 3; /**< Fragment flags, to indicate if a packet is fragmented */
+                       uint16_t     Identification; /**< Identification value for identifying fragmented packets */
+                       unsigned     FragmentOffset : 13; /**< Offset of this IP fragment */
+                       unsigned     Flags          : 3; /**< Fragment flags, to indicate if a packet is fragmented */
 
 
-                       uint8_t        TTL; /**< Maximum allowable number of hops to reach the packet destination */
-                       uint8_t        Protocol; /**< Encapsulated protocol type */
-                       uint16_t       HeaderChecksum; /**< Ethernet checksum of the IP header */
+                       uint8_t      TTL; /**< Maximum allowable number of hops to reach the packet destination */
+                       uint8_t      Protocol; /**< Encapsulated protocol type */
+                       uint16_t     HeaderChecksum; /**< Ethernet checksum of the IP header */
 
 
-                       IP_Address_t  SourceAddress; /**< Source protocol IP address of the packet */
-                       IP_Address_t  DestinationAddress; /**< Destination protocol IP address of the packet */
+                       IP_Address_t SourceAddress; /**< Source protocol IP address of the packet */
+                       IP_Address_t DestinationAddress; /**< Destination protocol IP address of the packet */
                } IP_Header_t;
 
        /* Function Prototypes: */
                } IP_Header_t;
 
        /* Function Prototypes: */
index 58574d8..373ff5b 100644 (file)
                        uint32_t               SequenceNumber; /**< Data sequence number of the packet */
                        uint32_t               AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
 
                        uint32_t               SequenceNumber; /**< Data sequence number of the packet */
                        uint32_t               AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
 
-                       unsigned char          Reserved   : 4; /**< Reserved, must be all 0 */
-                       unsigned char          DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
+                       unsigned               Reserved   : 4; /**< Reserved, must be all 0 */
+                       unsigned               DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
                        uint8_t                Flags; /**< TCP packet flags */
                        uint16_t               WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
 
                        uint8_t                Flags; /**< TCP packet flags */
                        uint16_t               WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
 
index 8ff6334..6242d51 100644 (file)
@@ -77,9 +77,9 @@
        /* Type Defines: */
                typedef struct
                {
        /* Type Defines: */
                typedef struct
                {
-                       unsigned char EA   : 1;
-                       unsigned char CR   : 1;
-                       unsigned char DLCI : 6;
+                       unsigned EA   : 1;
+                       unsigned CR   : 1;
+                       unsigned DLCI : 6;
                } RFCOMM_Address_t;
 
                typedef struct
                } RFCOMM_Address_t;
 
                typedef struct
 
                typedef struct
                {
 
                typedef struct
                {
-                       unsigned char EA      : 1;
-                       unsigned char CR      : 1;
-                       unsigned char Command : 6;
+                       unsigned EA      : 1;
+                       unsigned CR      : 1;
+                       unsigned Command : 6;
                } RFCOMM_Command_t;
 
                typedef struct
                {
                } RFCOMM_Command_t;
 
                typedef struct
                {
-                       uint8_t          DLCI;
-                       unsigned char    FrameType        : 4;
-                       unsigned char    ConvergenceLayer : 4;
-                       uint8_t          Priority;
-                       uint8_t          ACKTimerTicks;
-                       uint16_t         MaximumFrameSize;
-                       uint8_t          MaxRetransmissions;
-                       uint8_t          RecoveryWindowSize;
+                       uint8_t  DLCI;
+                       unsigned FrameType        : 4;
+                       unsigned ConvergenceLayer : 4;
+                       uint8_t  Priority;
+                       uint8_t  ACKTimerTicks;
+                       uint16_t MaximumFrameSize;
+                       uint8_t  MaxRetransmissions;
+                       uint8_t  RecoveryWindowSize;
                } RFCOMM_DPN_Parameters_t;
 
                typedef struct
                } RFCOMM_DPN_Parameters_t;
 
                typedef struct
index 93c7289..9d64403 100644 (file)
@@ -99,7 +99,7 @@
                        #define pgm_read_byte(x)         *x
                        #define memcmp_P(...)            memcmp(__VA_ARGS__)
                        #define memcpy_P(...)            memcpy(__VA_ARGS__)
                        #define pgm_read_byte(x)         *x
                        #define memcmp_P(...)            memcmp(__VA_ARGS__)
                        #define memcpy_P(...)            memcpy(__VA_ARGS__)
-                       // ==================================================
+                       // =================================================
 
                        typedef uint32_t uint_reg_t;
                        
 
                        typedef uint32_t uint_reg_t;
                        
                                 *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
                                 *  removes/reorders code to the point where break points cannot reliably be set.
                                 *
                                 *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
                                 *  removes/reorders code to the point where break points cannot reliably be set.
                                 *
+                                *  \note This macro is not available for all architectures.
+                                *
                                 *  \ingroup Group_Debugging
                                 */
                                #define JTAG_DEBUG_POINT()      __asm__ __volatile__ ("NOP" ::)
                                 *  \ingroup Group_Debugging
                                 */
                                #define JTAG_DEBUG_POINT()      __asm__ __volatile__ ("NOP" ::)
                                /** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When
                                 *  a JTAG is used, this causes the program execution to halt when reached until manually resumed.
                                 *
                                /** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When
                                 *  a JTAG is used, this causes the program execution to halt when reached until manually resumed.
                                 *
+                                *  \note This macro is not available for all architectures.
+                                *
                                 *  \ingroup Group_Debugging
                                 */
                                #define JTAG_DEBUG_BREAK()      __asm__ __volatile__ ("BREAK" ::)
 
                                 *  \ingroup Group_Debugging
                                 */
                                #define JTAG_DEBUG_BREAK()      __asm__ __volatile__ ("BREAK" ::)
 
-                               #if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
-                                       /** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
-                                        *  avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
-                                        *  to a pointer variable or used in pointer arithmetic without further casting in C. In a future
-                                        *  avr-libc distribution this will be part of the standard API and will be implemented in a more formal
-                                        *  manner.
-                                        *
-                                        *  \param[in] Addr  Address of the pointer to read.
-                                        *
-                                        *  \return Pointer retrieved from PROGMEM space.
-                                        */
-                                       #define pgm_read_ptr(Addr)    (void*)pgm_read_word(Addr)
-                               #endif
-
                                /** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false.
                                 *
                                /** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false.
                                 *
-                                *  \param[in] Condition  Condition that will be evaluated,
+                                *  \note This macro is not available for all architectures.
+                                *
+                                *  \param[in] Condition  Condition that will be evaluated.
                                 *
                                 *  \ingroup Group_Debugging
                                */
                                 *
                                 *  \ingroup Group_Debugging
                                */
                                 *
                                 *  The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
                                 *
                                 *
                                 *  The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
                                 *
+                                *  \note This macro is not available for all architectures.
+                                *
                                 *  \param[in] Condition  Condition that will be evaluated,
                                 *
                                 *  \ingroup Group_Debugging
                                 *  \param[in] Condition  Condition that will be evaluated,
                                 *
                                 *  \ingroup Group_Debugging
                                #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: "   \
                                                                                "Assertion \"%s\" failed.\r\n"),     \
                                                                                __FILE__, __func__, __LINE__, #Condition); } }MACROE
                                #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: "   \
                                                                                "Assertion \"%s\" failed.\r\n"),     \
                                                                                __FILE__, __func__, __LINE__, #Condition); } }MACROE
+
+                               #if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
+                                       /** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
+                                        *  avr-libc \c pgm_read_ptr() macro with a \c void* cast, so that its value can be assigned directly
+                                        *  to a pointer variable or used in pointer arithmetic without further casting in C. In a future
+                                        *  avr-libc distribution this will be part of the standard API and will be implemented in a more formal
+                                        *  manner.
+                                        *
+                                        *  \note This macro is not available for all architectures.
+                                        *
+                                        *  \param[in] Address  Address of the pointer to read.
+                                        *
+                                        *  \return Pointer retrieved from PROGMEM space.
+                                        */
+                                       #define pgm_read_ptr(Addr)          (void*)pgm_read_word(Address)
+                               #endif
                        #endif
                        
                        /** Forces GCC to use pointer indirection (via the device's pointer register pairs) when accessing the given
                        #endif
                        
                        /** Forces GCC to use pointer indirection (via the device's pointer register pairs) when accessing the given
                                 *  Interrupt handlers written using this macro may still need to be registered with the microcontroller's
                                 *  Interrupt Controller (if present) before they will properly handle incoming interrupt events.
                                 *
                                 *  Interrupt handlers written using this macro may still need to be registered with the microcontroller's
                                 *  Interrupt Controller (if present) before they will properly handle incoming interrupt events.
                                 *
-                                *  \note This is supplied on some architectures where the standard library does not include a valid
-                                *        definition. If an existing definition exists, the definition here will be ignored.
+                                *  \note This macro is only supplied on some architectures, where the standard library does not include a valid
+                                *        definition. If an existing definition exists, the alternative definition here will be ignored.
                                 *
                                 *  \ingroup Group_GlobalInt
                                 *
                                 *
                                 *  \ingroup Group_GlobalInt
                                 *
index 2525ccf..1d6eb70 100644 (file)
                 */
                typedef struct
                {
                 */
                typedef struct
                {
-                       unsigned char Command     : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet. */
-                       unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface. */
+                       unsigned Command     : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet. */
+                       unsigned CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface. */
 
 
-                       uint8_t Data1; /**< First byte of data in the MIDI event. */
-                       uint8_t Data2; /**< Second byte of data in the MIDI event. */
-                       uint8_t Data3; /**< Third byte of data in the MIDI event. */
+                       uint8_t  Data1; /**< First byte of data in the MIDI event. */
+                       uint8_t  Data2; /**< Second byte of data in the MIDI event. */
+                       uint8_t  Data3; /**< Third byte of data in the MIDI event. */
                } ATTR_PACKED MIDI_EventPacket_t;
 
        /* Disable C linkage for C++ Compilers: */
                } ATTR_PACKED MIDI_EventPacket_t;
 
        /* Disable C linkage for C++ Compilers: */
index d641c33..0f5db97 100644 (file)
                 */
                typedef struct
                {
                 */
                typedef struct
                {
-                       uint8_t       ResponseCode;
-
-                       uint8_t       SegmentNumber;
-
-                       unsigned char SenseKey            : 4;
-                       unsigned char Reserved            : 1;
-                       unsigned char ILI                 : 1;
-                       unsigned char EOM                 : 1;
-                       unsigned char FileMark            : 1;
-
-                       uint8_t       Information[4];
-                       uint8_t       AdditionalLength;
-                       uint8_t       CmdSpecificInformation[4];
-                       uint8_t       AdditionalSenseCode;
-                       uint8_t       AdditionalSenseQualifier;
-                       uint8_t       FieldReplaceableUnitCode;
-                       uint8_t       SenseKeySpecific[3];
+                       uint8_t  ResponseCode;
+
+                       uint8_t  SegmentNumber;
+
+                       unsigned SenseKey            : 4;
+                       unsigned Reserved            : 1;
+                       unsigned ILI                 : 1;
+                       unsigned EOM                 : 1;
+                       unsigned FileMark            : 1;
+
+                       uint8_t  Information[4];
+                       uint8_t  AdditionalLength;
+                       uint8_t  CmdSpecificInformation[4];
+                       uint8_t  AdditionalSenseCode;
+                       uint8_t  AdditionalSenseQualifier;
+                       uint8_t  FieldReplaceableUnitCode;
+                       uint8_t  SenseKeySpecific[3];
                } ATTR_PACKED SCSI_Request_Sense_Response_t;
 
                /** \brief Mass Storage Class SCSI Inquiry Structure.
                } ATTR_PACKED SCSI_Request_Sense_Response_t;
 
                /** \brief Mass Storage Class SCSI Inquiry Structure.
                 */
                typedef struct
                {
                 */
                typedef struct
                {
-                       unsigned char DeviceType          : 5;
-                       unsigned char PeripheralQualifier : 3;
-
-                       unsigned char Reserved            : 7;
-                       unsigned char Removable           : 1;
-
-                       uint8_t       Version;
-
-                       unsigned char ResponseDataFormat  : 4;
-                       unsigned char Reserved2           : 1;
-                       unsigned char NormACA             : 1;
-                       unsigned char TrmTsk              : 1;
-                       unsigned char AERC                : 1;
-
-                       uint8_t       AdditionalLength;
-                       uint8_t       Reserved3[2];
-
-                       unsigned char SoftReset           : 1;
-                       unsigned char CmdQue              : 1;
-                       unsigned char Reserved4           : 1;
-                       unsigned char Linked              : 1;
-                       unsigned char Sync                : 1;
-                       unsigned char WideBus16Bit        : 1;
-                       unsigned char WideBus32Bit        : 1;
-                       unsigned char RelAddr             : 1;
-
-                       uint8_t       VendorID[8];
-                       uint8_t       ProductID[16];
-                       uint8_t       RevisionID[4];
+                       unsigned DeviceType          : 5;
+                       unsigned PeripheralQualifier : 3;
+
+                       unsigned Reserved            : 7;
+                       unsigned Removable           : 1;
+
+                       uint8_t  Version;
+
+                       unsigned ResponseDataFormat  : 4;
+                       unsigned Reserved2           : 1;
+                       unsigned NormACA             : 1;
+                       unsigned TrmTsk              : 1;
+                       unsigned AERC                : 1;
+
+                       uint8_t  AdditionalLength;
+                       uint8_t  Reserved3[2];
+
+                       unsigned SoftReset           : 1;
+                       unsigned CmdQue              : 1;
+                       unsigned Reserved4           : 1;
+                       unsigned Linked              : 1;
+                       unsigned Sync                : 1;
+                       unsigned WideBus16Bit        : 1;
+                       unsigned WideBus32Bit        : 1;
+                       unsigned RelAddr             : 1;
+
+                       uint8_t  VendorID[8];
+                       uint8_t  ProductID[16];
+                       uint8_t  RevisionID[4];
                } ATTR_PACKED SCSI_Inquiry_Response_t;
 
        /* Disable C linkage for C++ Compilers: */
                } ATTR_PACKED SCSI_Inquiry_Response_t;
 
        /* Disable C linkage for C++ Compilers: */
index 1375136..c3a97f6 100644 (file)
@@ -91,6 +91,7 @@
                                } Config; /**< Config data for the USB class interface within the device. All elements in this section
                                           *   <b>must</b> be set or the interface will fail to enumerate and operate correctly.
                                           */
                                } Config; /**< Config data for the USB class interface within the device. All elements in this section
                                           *   <b>must</b> be set or the interface will fail to enumerate and operate correctly.
                                           */
+                               
                                struct
                                {
                                        // No state information for this class
                                struct
                                {
                                        // No state information for this class
index 14f66d9..b978ec7 100644 (file)
@@ -39,7 +39,7 @@
 uint8_t USB_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;\r
 #endif\r
 \r
 uint8_t USB_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;\r
 #endif\r
 \r
-volatile uint8_t  USB_SelectedEndpoint = ENDPOINT_CONTROLEP;\r
+volatile uint32_t USB_SelectedEndpoint = ENDPOINT_CONTROLEP;\r
 volatile uint8_t* USB_EndpointFIFOPos[ENDPOINT_TOTAL_ENDPOINTS];\r
 \r
 bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,\r
 volatile uint8_t* USB_EndpointFIFOPos[ENDPOINT_TOTAL_ENDPOINTS];\r
 \r
 bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,\r
index 2fe42aa..43e432b 100644 (file)
                                                            const uint32_t UECFGXData);\r
                \r
                /* External Variables: */\r
                                                            const uint32_t UECFGXData);\r
                \r
                /* External Variables: */\r
-                       extern volatile uint8_t  USB_SelectedEndpoint;\r
+                       extern volatile uint32_t USB_SelectedEndpoint;\r
                        extern volatile uint8_t* USB_EndpointFIFOPos[];\r
        #endif\r
 \r
                        extern volatile uint8_t* USB_EndpointFIFOPos[];\r
        #endif\r
 \r
index 870828e..86bed03 100644 (file)
@@ -37,7 +37,7 @@
 \r
 uint8_t USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;\r
 \r
 \r
 uint8_t USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;\r
 \r
-volatile uint8_t  USB_SelectedPipe = PIPE_CONTROLPIPE;\r
+volatile uint32_t USB_SelectedPipe = PIPE_CONTROLPIPE;\r
 volatile uint8_t* USB_PipeFIFOPos[PIPE_TOTAL_PIPES];\r
 \r
 bool Pipe_ConfigurePipe(const uint8_t Number,\r
 volatile uint8_t* USB_PipeFIFOPos[PIPE_TOTAL_PIPES];\r
 \r
 bool Pipe_ConfigurePipe(const uint8_t Number,\r
index 045aaad..7edfb3e 100644 (file)
                        #define PIPE_HSB_ADDRESS_SPACE_SIZE     (64 * 1024UL)\r
        \r
                /* External Variables: */\r
                        #define PIPE_HSB_ADDRESS_SPACE_SIZE     (64 * 1024UL)\r
        \r
                /* External Variables: */\r
-                       extern volatile uint8_t  USB_SelectedPipe;\r
+                       extern volatile uint32_t USB_SelectedPipe;\r
                        extern volatile uint8_t* USB_PipeFIFOPos[];\r
        #endif\r
 \r
                        extern volatile uint8_t* USB_PipeFIFOPos[];\r
        #endif\r
 \r
index 5aff7d1..59baa97 100644 (file)
@@ -55,6 +55,7 @@
  *  - IR Remote to Keyboard decoder: http://netzhansa.blogspot.com/2010/04/our-living-room-hi-fi-setup-needs-mp3.html
  *  - LED Panel controller: http://projects.peterpolidoro.net/caltech/panelscontroller/panelscontroller.htm
  *  - LUFA powered DDR dance mat (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:ddr_repair
  *  - IR Remote to Keyboard decoder: http://netzhansa.blogspot.com/2010/04/our-living-room-hi-fi-setup-needs-mp3.html
  *  - LED Panel controller: http://projects.peterpolidoro.net/caltech/panelscontroller/panelscontroller.htm
  *  - LUFA powered DDR dance mat (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:ddr_repair
+ *  - MIDI Theremin: http://baldwisdom.com/usb-midi-controller-theremin-style-on-arduino-uno/
  *  - Motherboard BIOS flasher: http://www.coreboot.org/InSystemFlasher
  *  - Multi-button Joystick (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:joystick
  *  - Nikon wireless camera remote control (Norwegian): http://hekta.org/~hpe1119/
  *  - Motherboard BIOS flasher: http://www.coreboot.org/InSystemFlasher
  *  - Multi-button Joystick (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:joystick
  *  - Nikon wireless camera remote control (Norwegian): http://hekta.org/~hpe1119/
index 5181c3e..9d93f2c 100644 (file)
@@ -30,9 +30,9 @@
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Sec            : 4;
-                                       unsigned int TenSec         : 3;
-                                       unsigned int CH             : 1;
+                                       unsigned Sec            : 4;
+                                       unsigned TenSec         : 3;
+                                       unsigned CH             : 1;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
@@ -42,9 +42,9 @@
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Min            : 4;
-                                       unsigned int TenMin         : 3;
-                                       unsigned int Reserved       : 1;
+                                       unsigned Min            : 4;
+                                       unsigned TenMin         : 3;
+                                       unsigned Reserved       : 1;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Hour            : 4;
-                                       unsigned int TenHour         : 2;
-                                       unsigned int TwelveHourMode  : 1;
-                                       unsigned int Reserved        : 1;
+                                       unsigned Hour            : 4;
+                                       unsigned TenHour         : 2;
+                                       unsigned TwelveHourMode  : 1;
+                                       unsigned Reserved        : 1;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
@@ -67,8 +67,8 @@
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int DayOfWeek       : 3;
-                                       unsigned int Reserved        : 5;
+                                       unsigned DayOfWeek       : 3;
+                                       unsigned Reserved        : 5;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
@@ -78,9 +78,9 @@
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Day             : 4;
-                                       unsigned int TenDay          : 2;
-                                       unsigned int Reserved        : 2;
+                                       unsigned Day             : 4;
+                                       unsigned TenDay          : 2;
+                                       unsigned Reserved        : 2;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
@@ -90,9 +90,9 @@
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Month           : 4;
-                                       unsigned int TenMonth        : 1;
-                                       unsigned int Reserved        : 3;
+                                       unsigned Month           : 4;
+                                       unsigned TenMonth        : 1;
+                                       unsigned Reserved        : 3;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;
                        {
                                struct
                                {
                        {
                                struct
                                {
-                                       unsigned int Year            : 4;
-                                       unsigned int TenYear         : 4;
+                                       unsigned Year            : 4;
+                                       unsigned TenYear         : 4;
                                } Fields;
 
                                uint8_t IntVal;
                                } Fields;
 
                                uint8_t IntVal;