diff options
author | Dean Camera <[email protected]> | 2011-04-10 06:43:02 +0000 |
---|---|---|
committer | Dean Camera <[email protected]> | 2011-04-10 06:43:02 +0000 |
commit | 852b5e612d549d1f086ceca4df0b589ac24cb37f (patch) | |
tree | ced320248de1fb786dda5e515ad306cbd81086dd /LUFA | |
parent | d08116b02fd0032f24be18b255c9d80ec9ca316d (diff) | |
download | qmk_firmware-852b5e612d549d1f086ceca4df0b589ac24cb37f.tar.gz qmk_firmware-852b5e612d549d1f086ceca4df0b589ac24cb37f.zip |
Remove redundant type information for bitfield elements, other than the signed/unsignedness of the element.
Change type of USB_SelectedPipe and USB_SelectedEndpoint for the AVR32 UC3 architecture to uint32_t to reduce the compiled code size.
Diffstat (limited to 'LUFA')
-rw-r--r-- | LUFA/Common/Common.h | 46 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Class/Common/MIDI.h | 10 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Class/Common/MassStorage.h | 92 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Class/Device/MIDI.h | 1 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c | 2 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h | 2 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c | 2 | ||||
-rw-r--r-- | LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h | 2 | ||||
-rw-r--r-- | LUFA/ManPages/LUFAPoweredProjects.txt | 1 |
9 files changed, 85 insertions, 73 deletions
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h index 93c7289c37..9d64403bce 100644 --- a/LUFA/Common/Common.h +++ b/LUFA/Common/Common.h @@ -99,7 +99,7 @@ #define pgm_read_byte(x) *x #define memcmp_P(...) memcmp(__VA_ARGS__) #define memcpy_P(...) memcpy(__VA_ARGS__) - // ================================================== + // ================================================= typedef uint32_t uint_reg_t; @@ -159,6 +159,8 @@ * 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" ::) @@ -166,27 +168,17 @@ /** 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" ::) - #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. * - * \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 */ @@ -198,6 +190,8 @@ * * 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 @@ -205,6 +199,22 @@ #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 @@ -231,8 +241,8 @@ * 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 * diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h index 2525ccfca1..1d6eb703dc 100644 --- a/LUFA/Drivers/USB/Class/Common/MIDI.h +++ b/LUFA/Drivers/USB/Class/Common/MIDI.h @@ -272,12 +272,12 @@ */ 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: */ diff --git a/LUFA/Drivers/USB/Class/Common/MassStorage.h b/LUFA/Drivers/USB/Class/Common/MassStorage.h index d641c33a30..0f5db97ec6 100644 --- a/LUFA/Drivers/USB/Class/Common/MassStorage.h +++ b/LUFA/Drivers/USB/Class/Common/MassStorage.h @@ -289,23 +289,23 @@ */ 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. @@ -318,35 +318,35 @@ */ 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: */ diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h index 1375136765..c3a97f6ef5 100644 --- a/LUFA/Drivers/USB/Class/Device/MIDI.h +++ b/LUFA/Drivers/USB/Class/Device/MIDI.h @@ -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. */ + struct { // No state information for this class diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c index 14f66d9226..b978ec7f1d 100644 --- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c +++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c @@ -39,7 +39,7 @@ uint8_t USB_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;
#endif
-volatile uint8_t USB_SelectedEndpoint = ENDPOINT_CONTROLEP;
+volatile uint32_t USB_SelectedEndpoint = ENDPOINT_CONTROLEP;
volatile uint8_t* USB_EndpointFIFOPos[ENDPOINT_TOTAL_ENDPOINTS];
bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,
diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h index 2fe42aa304..43e432b045 100644 --- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h +++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h @@ -155,7 +155,7 @@ const uint32_t UECFGXData);
/* External Variables: */
- extern volatile uint8_t USB_SelectedEndpoint;
+ extern volatile uint32_t USB_SelectedEndpoint;
extern volatile uint8_t* USB_EndpointFIFOPos[];
#endif
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c index 870828ec1e..86bed03889 100644 --- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c +++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c @@ -37,7 +37,7 @@ uint8_t USB_ControlPipeSize = PIPE_CONTROLPIPE_DEFAULT_SIZE;
-volatile uint8_t USB_SelectedPipe = PIPE_CONTROLPIPE;
+volatile uint32_t USB_SelectedPipe = PIPE_CONTROLPIPE;
volatile uint8_t* USB_PipeFIFOPos[PIPE_TOTAL_PIPES];
bool Pipe_ConfigurePipe(const uint8_t Number,
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h index 045aaad1de..7edfb3e1bc 100644 --- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h +++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h @@ -102,7 +102,7 @@ #define PIPE_HSB_ADDRESS_SPACE_SIZE (64 * 1024UL)
/* External Variables: */
- extern volatile uint8_t USB_SelectedPipe;
+ extern volatile uint32_t USB_SelectedPipe;
extern volatile uint8_t* USB_PipeFIFOPos[];
#endif
diff --git a/LUFA/ManPages/LUFAPoweredProjects.txt b/LUFA/ManPages/LUFAPoweredProjects.txt index 5aff7d1622..59baa9745f 100644 --- a/LUFA/ManPages/LUFAPoweredProjects.txt +++ b/LUFA/ManPages/LUFAPoweredProjects.txt @@ -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 + * - 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/ |