summaryrefslogtreecommitdiffstats
path: root/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-07-07 11:55:23 -0400
committerJack Humbert <jack.humb@gmail.com>2017-07-07 11:55:23 -0400
commit8655d4f4948b2deef7844503c8d690f23ac1a062 (patch)
treeb2c6effc9d6cd5b5b43933a1e53b8bf17e9e82cf /lib/lufa/LUFA/DoxygenPages/ChangeLog.txt
parent1896c76a2928c96f9ab7947bec2ef8dd37623cff (diff)
parent60b30c036397cb5627fa374bb930794b225daa29 (diff)
Merge commit '60b30c036397cb5627fa374bb930794b225daa29' as 'lib/lufa'
Diffstat (limited to 'lib/lufa/LUFA/DoxygenPages/ChangeLog.txt')
-rw-r--r--lib/lufa/LUFA/DoxygenPages/ChangeLog.txt1653
1 files changed, 1653 insertions, 0 deletions
diff --git a/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt b/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt
new file mode 100644
index 0000000000..aedfd3ce53
--- /dev/null
+++ b/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt
@@ -0,0 +1,1653 @@
+/** \file
+ *
+ * This file contains special DoxyGen information for the generation of the main page and other special
+ * documentation pages. It is not a project source file.
+ */
+
+ /** \page Page_ChangeLog Project Changelog
+ *
+ * \section Sec_ChangeLog170418 Version 170418
+ * <b>New:</b>
+ * - Core:
+ * - Added support for the Pololu A-Star Micro board (thanks to Joh Schneider)
+ * - Added new \c LUFA_VERSION_RELEASE_TYPE macro to the library version header, to determine release type (thanks to NicoHood)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - The CALLBACK_USB_GetDescriptor() callback function into the user application erroneously had a uint8_t type for the wIndex
+ * parameter, instead of uint16_t (thanks to Matlo)
+ * - Fixed broken USE_RAM_DESCRIPTORS compile time option when the FIXED_NUM_CONFIGURATIONS compile time option is not enabled
+ * in a user application (thanks to Matlo)
+ * - Fixed missing \c va_end() calls in the HID bootloader CLI app which could cause portability issues
+ * - Fixed void pointer arithmetic in the \c Serial_SendData() functions for AVR8 and XMEGA architectures
+ * - Fixed void pointer arithmetic in the low level and class driver RNDIS demo protocol decoders
+ * - Fixed low level RNDIS demo incorrectly setting the RNDIS state when a null packet filter was requested
+ * - Fixed missing entries in several project's Atmel Studio integration files, such as driver INF files
+ * - Fixed invalid endpoint indexes causing memory corruption in device Clear/Set Feature standard requests (thanks to Peter Popovec)
+ * - Fixed incorrect serialization in USB_SetHIDReportItemInfo() function (thanks to e-chip)
+ *
+ * <b>Changed:</b>
+ * - Added signed alternative libUSB driver for the AVRISP-MKII clone project, to support Atmel Studio 7 (thanks to Atmel)
+ * - Removed no longer required LIBUSB_DRIVER_COMPAT and RESET_TOGGLES_LIBUSB_COMPAT configuration options from the AVRISP-MKII
+ * clone project, as the new libUSB driver works for AVRDUDE and Atmel Studio 7 under Windows
+ * - Replaced the LUFA build system with its (compatible) successor, DMBS (Dean's Makefile Build System)
+ * - Removed obsolete library TAR export and associated documentation
+ * - Fixed incorrect HID_DESCRIPTOR_KEYBOARD() macro definition (thanks to Eric Tang)
+ *
+ * \section Sec_ChangeLog151115 Version 151115
+ * <b>New:</b>
+ * - Added support for the Atmel Xplained-MINI series of development kits
+ * - Added new PROGMEM variant send functions to the CDC class device driver (thanks to Stefan Hellermann)
+ * - Added new PROGMEM variant send functions to the CDC class host driver
+ * - Added additional Arduino Uno board definitions for the main processor reset (thanks to NicoHood)
+ * - Added modified DocBook transforms to generate Atmel Studio 6/7 internal help documentation (thanks to Morten Engelhardt Olsen)
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - The TWI peripheral driver's TWI_WritePacket() and TWI_ReadPacket() functions now takes a 16-bit Length rather than an 8-bit
+ * length, for longer transfers
+ * - Library Applications:
+ * - The CDC, DFU, Mass Storage and Printer class bootloaders will no longer run the user application if the application reset
+ * vector is blank (thanks to Alex Kazik)
+ * - The CDC, DFU and Printer class bootloaders are now compatible with the original Atmel XPLAIN and Arduino Leonardo boards
+ * - The CDC, DFU, Mass Storage and Printer class bootloaders are not compatible with devices with the BOOTRST fuse set and will
+ * exit automatically unless an external reset was the last reset cause (thanks to Alex Kazik)
+ * - Added missing force-inline attribute to the endianness utility functions (thanks to Stefan Hellermann)
+ * - Updated the DFU build system module to use updated EEPROM programming command arguments for dfu-programmer 0.6.2 or newer
+ *
+ * <b>Fixed:</b>
+ * - Fixed broken XMEGA serial stream driver due to missing USART base pointer parameter (thanks to William Patterson)
+ * - Fixed incorrect signature reported in the CDC/DFU bootloaders for the AT90USB82 (thanks to NicoHood)
+ * - Fixed broken RNDIS demos on Linux machines whose DHCP hosts require a Lease Time option (thanks to Stefan Hellermann)
+ * - Fixed broken LEDs_Disable() implementation for the Arduino Uno board (thanks to NicoHood)
+ * - Fixed missing bounds checks and off-by-one in the DFU bootloader signature bytes (thanks to Reuti)
+ *
+ * \section Sec_ChangeLog140928 Version 140928
+ * <b>New:</b>
+ * - Core:
+ * - Updated the BUILD build system module to add a new COMPILER_PATH optional variable
+ * - Added Serial_IsSendReady() and Serial_IsSendComplete() functions to the Serial hardware peripheral driver
+ * - Added support for the Arduino Yun board (ATMEGA32U4 co-processor)
+ * - Added support for the Arduino Micro board (thanks to Zoltán Szőke)
+ * - Library Applications:
+ * - Added new Dual MIDI class driver device demo
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - The RNDIS device class driver now takes a user-supplied buffer and buffer length for the internal RNDIS
+ * message management (thanks to Peter Mc Shane)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed device class driver pipe configuration routines returning success with a partially constructed instance
+ * when a pipe configuration failed (thanks to Helge Suess)
+ * - Fixed incorrect XMEGA DFLL reference frequency (thanks to Martin Aakerberg)
+ * - Fixed possible infinite loop in the control endpoint stream write function (thanks to Clayton Knight)
+ * - Fixed missing HID report ID prefix on HID class driver GetReport request responses (thanks to Bert van Hall)
+ * - Fixed incorrect XMEGA USB controller clock division factory for non-Full Speed operation (thanks to Bert van Hall)
+ * - Fixed the LUFA build system to prevent incorrect code from being generated in newer toolchains when building for larger
+ * FLASH memory devices (thanks to demultiplexer)
+ * - Fixed missing parenthesis in the MIDI_EVENT() macro which could cause incorrect results (thanks to hexwab)
+ * - Fixed mixed capitalization of TWI in the XMEGA TWI driver causing compilation failures (thanks to Jacob Schloss)
+ * - Fixed broken AVR8 USART-SPI peripheral driver (thanks to Phil Zakielarz)
+ * - Library Applications:
+ * - Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen)
+ * - Fixed blocking USART reads causing low throughput on slow baud rates in the USBtoSerial project (thanks to Nevada Smith)
+ * - Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial project (thanks to Nevada Smith)
+ * - Fixed broken LowLevel Audio Out demo sampling frequency configuration (thanks to Torsten Duwe)
+ *
+ * \section Sec_ChangeLog140302 Version 140302
+ * <b>New:</b>
+ * - Library Applications:
+ * - Added new Bulk Vendor low level device demo
+ * - Added new libUSB host Python and NodeJS application examples for the Class driver GenericHID demo (thanks to Laszlo Monda)
+ * - Added new AVR8 USB option to keep 3.3V regulator enabled (thanks to Michael Hanselmann)
+ * - Added new USB_STRING_DESCRIPTOR() and USB_STRING_DESCRIPTOR_ARRAY() convenience macros (thanks to Laszlo Monda)
+ *
+ * <b>Changed:</b>
+ * - Library Applications:
+ * - Refactored out USB interface IDs in the demo applications into enums (thanks to Laszlo Monda)
+ * - AVRISP-MKII Clone Project PDI/TPI frequency increased from 250KHz to 2MHz as it is now stable
+ * - Increased TPI/PDI handshake delay to 100us from 1us to support targets with high amounts of capacitance on their
+ * /RESET lines (thanks to Paul Duke)
+ * - Changed the VERSION_BCD() macro to accept the major/minor/revision values as separate parameters
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed MIDI device class driver MIDI_Device_ReceiveEventPacket() for the XMEGA architecture
+ * - Library Applications:
+ * - Fixed incorrect signature bytes returned in the DFU bootloader
+ *
+ * \section Sec_ChangeLog130901 Version 130901
+ * <b>New:</b>
+ * - Core:
+ * - Added additional MIDI command definitions to the MIDI class driver (thanks to Daniel Dreibrodt)
+ * - Added new CONCAT() and CONCAT_EXPANDED() convenience macros
+ * - Added new Printer Device Class driver
+ * - Added support for the XMEGA C3 Xplained board
+ * - Added support for the U2S board (thanks to megal0maniac)
+ * - Added TWI Master driver for the XMEGA architecture (thanks to Michael Janssen)
+ * - Library Applications:
+ * - Added new Printer class bootloader
+ * - Added new Mass Storage class bootloader
+ * - Added XMEGA support for class driver device demos (where applicable)
+ * - Added Python host application example for the Generic HID class driver device demo
+ * - Added Python alternative host application for the HID class bootloader
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - Updated the BUILD build system module to produce binary BIN files in addition to Intel HEX files
+ * - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
+ * - All board drivers now implement dummy functions and constants when BOARD is set to NONE
+ * - Added missing LEDs to the XMEGA A3BU Xplained board LED driver (thanks to Michael Janssen)
+ * - Changed board Dataflash drivers to automatically configure the appropriate SPI interface for the selected board
+ * - Library Applications:
+ * - Re-added Set Control Line State request handling to the CDC class bootloader to prevent issues with the .NET serial
+ * class (thanks to Erik Lins)
+ * - TemperatureDataLogger project dummy RTC mode now tracks real time (thanks to David Lazarus)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed Low Speed USB devices broken when using the library HID Class driver (thanks to Michael)
+ * - Fixed possible register corruption in USB Host mode on AVR8 devices when ORDERED_EP_CONFIG is used (thanks to Martin Aakerberg)
+ * - Fixed Pipe_GetBoundEndpointAddress() returning invalid endpoint directions on AVR8 architecture devices (thanks to decerri)
+ * under some circumstances
+ * - Fixed incorrect USB device state set when a suspended LUFA device is woken while addressed but not configured (thanks to Balaji Krishnan)
+ * - Fixed broken USART SPI driver for the AVR8 architecture due to incorrect initialization
+ * - Fixed re-enumeration issue of XMEGA architecture targets (thanks to Jaroslav Jedlinsky)
+ * - Fixed error receiving PIMA events via the Still Image Host class driver
+ * - Library Applications:
+ * - Added handler for SCSI_CMD_START_STOP_UNIT in demos using the Mass Storage class, to prevent ejection errors on *nix systems due to an
+ * unknown SCSI command
+ * - Fixed incorrect HID report descriptor generated for 16-bit axis ranges by the HID_DESCRIPTOR_MOUSE() and HID_DESCRIPTOR_JOYSTICK()
+ * macros (thanks to Armory)
+ * - Fixed incorrect HID report descriptor generated for button multiples of 8 by the HID_DESCRIPTOR_MOUSE() and HID_DESCRIPTOR_JOYSTICK()
+ * macros
+ * - Fixed race condition in the DFU class bootloader causing failed device reprogramming in some circumstances (thanks to Luis Mendes)
+ * - Fixed incorrect time/date configuration data order in the TempDataLogger host application (thanks to David Lazarus)
+ *
+ * \section Sec_ChangeLog130303 Version 130303
+ * <b>New:</b>
+ * - Core:
+ * - Added support for the Arduino Leonardo board
+ * - Added support for the Atmel UC3-A3 Xplained board
+ * - Added support for the Xevelabs USB2AX revision 3.1 board
+ * - Added support for the Dimex Stange-ISP board (thanks to Gerhard Wesser)
+ * - Added new \c doxygen_upgrade and \c doxygen_create targets to the DOXYGEN build system module
+ * - Added new Board Hardware Information board driver
+ * - Library Applications:
+ * - Added a different device serial number when the AVRISP-MKII Clone project is in libUSB compatibility mode, so that
+ * both the libUSB and Jungo drivers can be installed at the same time without having to use a filter driver
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - Added workaround for broken VBUS detection on AVR8 devices when a bootloader starts the application
+ * via a software jump without first turning off the OTG pad (thanks to Simon Inns)
+ * - Library Applications:
+ * - Increased throughput in the USBtoSerial project now that data transmission is non-blocking (thanks to Joseph Lacerte)
+ * - Updated bootloader makefiles to remove dependency on the \c bc command line calculator tool
+ * - Updated AVRISP-MKII Clone Programmer project so that the SCK clock period is saved in EEPROM (thanks to Gerhard Wesser)
+ * - Changed all *_SendByte() function prototypes to accept a void pointer for the input buffer (thanks to Simon Kuppers)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed incorrectly issuing STALL response to unsupported control request SETUP packets, rather than in the data/status stage
+ * - Fixed inverted LEDs_GetLEDs() function implementation for the Benito, Minimus and Arduino UNO boards
+ * - Fixed missing Windows 32-bit compatibility sections in the LUFA INF driver files (thanks to Christan Beharrell)
+ * - Fixed logic hole breaking USB operations on a USB controller with only one supported USB mode and no USB_DEVICE_ONLY or USB_HOST_ONLY
+ * configuration token set
+ * - Fixed possible rounding in the VERSION_BCD() macros for some 0.01 step increments (thanks to Oliver Zander)
+ * - Fixed incorrect Dataflash functionality in the USBKEY board if the driver is modified for a single Dataflash chip (thanks to Jonathan Oakley)
+ * - Fixed incorrect definitions of \c HID_KEYBOARD_LED_KANA, \c HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN and \c HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN_AS400
+ * and added a missing definition for \c HID_KEYBOARD_SC_APPLICATION (thanks to David Monro)
+ * - Fixed maximum allowed keyboard key code usage of \c 0x65 rather than \c 0xFF for the \c HID_DESCRIPTOR_KEYBOARD() macro (thanks to David Monro)
+ * - Fixed hardware race condition that could cause failed device enumerations for AVR8 and UC3 architectures (thanks to Mike Beyhs)
+ * - Fixed incorrect Minimus board LED definitions (thanks to Joonas Lahtinen)
+ * - Fixed incorrect ordering of the linker options in the build system causing link failures in some cases
+ * - Fixed bug in the TWI peripheral driver for the AVR8 devices causing incorrect failure codes to be returned in some cases (thanks to Peter K)
+ * - Fixed swapped LED3 and LED4 masks for the Olimex-32U4 development board LED driver
+ * - Fixed potential NULL pointer dereference in the HID Host mode Class Driver (thanks to Pavel Kuzmin)
+ * - Library Applications:
+ * - Fixed broken RESET_TOGGLES_LIBUSB_COMPAT compile time option in the AVRISP-MKII project
+ * - Fixed incompatibility in the CDC class bootloader on some systems (thanks to Sylvain Munaut)
+ * - Fixed lengthy timeouts in the USBtoSerial project if no application on the host is consuming data (thanks to Nicolas Saugnier)
+ * - Fixed lengthy automatic data flushing in the CDC and MIDI device class drivers
+ * - Fixed incorrect LED masks for received data display in the Device GenericHID demos (thanks to Denys Berkovskyy)
+ * - Fixed incorrect output in the HIDReportViewer project when no device is connected (thanks to Pavel Kuzmin)
+ *
+ * \section Sec_ChangeLog120730 Version 120730
+ * <b>New:</b>
+ * - Core:
+ * - Added new, revamped modular build system with new makefile templates
+ * - Added support for the BitWizard Multio and Big-Multio boards
+ * - Added support for the DorkbotPDX Duce board
+ * - Added support for the Olimex AVR-USB-32U4 board
+ * - Added support for the Olimex AVR-USB-T32U4 board
+ * - Added support for the Olimex AVR-ISP-MK2 board
+ * - Added new Endpoint_ConfigureEndpointTable() function
+ * - Added new Pipe_ConfigurePipeTable() function
+ * - Added build test to verify correct compilation of all board drivers using all driver APIs
+ * - Added build test to verify correct compilation of all bootloaders using all supported devices
+ * - Added build test to verify that there are no detectable errors in the codebase via static analysis
+ * - Added new JTAG_ENABLE() macro for the AVR8 architecture
+ * - Library Applications:
+ * - Modified the CDC Host demos to set a default CDC Line Encoding on enumerated devices
+ * - Added Dataflash operational checks and aborts to all projects using the Dataflash to ensure it is working correctly before use
+ * - Added new SerialToLCD user project contributed by Simon Foster
+ * - Added new RESET_TOGGLES_LIBUSB_COMPAT compile time option to the AVRISP-MKII clone programmer project (thanks to Robert Spitzenpfeil)
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - Android Accessory Host property strings changed from a struct of pointer to an array to prevent unaligned access on greater than 8-bit architectures
+ * - Audio Device Class driver changed to also require the index of the Audio Control interface within the device, for SET/GET/CUR/MIN/MAX/RES property adjustments
+ * - Removed variable axis support from the HID_DESCRIPTOR_JOYSTICK() macro due to OS incompatibilities, replaced with fixed 3-axis joystick report structure
+ * - Removed the old pseudo-scheduler from the library as it was unused and deprecated since the 090810 release
+ * - Endpoint indexes are now specified as full endpoint addresses within the device in device mode, rather than a logical index
+ * - The Endpoint_ConfigureEndpoint() function no longer takes an endpoint direction as a parameter, as this is now deduced from the specified full endpoint
+ * address and type
+ * - The Endpoint_ConfigureEndpoint() function no longer takes a number of banks as a special mask; the number of banks is now specified as an integer parameter
+ * - Endpoints are now configured via instances of a new struct USB_Endpoint_Table_t in all device mode class drivers, rather than a list of endpoint parameters
+ * - Pipe indexes are now specified as full pipe addresses within the host in host mode, rather than a logical index
+ * - The Pipe_ConfigurePipe() function no longer takes an pipe token as a parameter, as this is now deduced from the specified full pipe address and type
+ * - The Pipe_ConfigurePipe() function no longer takes a number of banks as a special mask; the number of banks is now specified as an integer parameter
+ * - Pipes are now configured via instances of a new struct USB_Pipe_Table_t in all host mode class drivers, rather than a list of pipe parameters
+ * - Added support for various assert and debugging macros for the UC3 devices
+ * - Changed MIDI event structure MIDI_EventPacket_t to use a single field for the combined virtual cable index and command ID, to prevent bitfield packing issues
+ * on some architectures (thanks to Darren Gibbs)
+ * - Changed board LED driver implementations of LEDs_ToggleLEDs() for the AVR8 architecture to use the fast PIN register toggle alternative function for speed
+ * - Library Applications:
+ * - Raised the guard bits in the AVRISP-MKII clone project when in PDI and TPI to 32, to prevent communication errors on low quality connections to a target
+ * - Added additional bootloader API data to expose the bootloader start address and class to the DFU and CDC class bootloaders
+ * - Reverted AVRISP-MKII clone project watchdog based command timeout patch in favour of a hardware timer, to allow for use in devices with WDTRST fuse programmed
+ * - The library bootloaders will now correctly start the user application after a watchdog-based application start, even if the /HWB line is held low externally
+ * during the reset phase
+ * - Increased endpoint polling interval for all demos and projects to 5ms, as 1ms was causing some enumeration issues on some machines (thanks to Riku Salminen)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed possible enumeration error if the user application selects a pipe other than the default Control pipe between the Powered and Default states of
+ * the host state machine
+ * - Fixed incorrect call to the user callback CALLBACK_Audio_Device_GetSetInterfaceProperty() in the Audio Class device driver (thanks to Tiit Ratsep)
+ * - Fixed compile error for the UC3 architecture when INTERRUPT_CONTROL_ENDPOINT is specified (thanks to Andrus Aaslaid)
+ * - Fixed compile error if LEDs_Disable() is called and BOARD=NONE is set (thanks to Sam Lin)
+ * - Fixed inverted LED logic in the OLIMEX162 board LED driver
+ * - Fixed incorrect response to GET STATUS requests in device mode if NO_DEVICE_SELF_POWER or NO_DEVICE_REMOTE_WAKEUP tokens are defined (thanks to Georg Glock)
+ * - Fixed inverted LED logic in the USB2AX board LED driver
+ * - Fixed possible deadlock in the CDC device driver if the USB connection is dropped while the CDC_REQ_SetLineEncoding control request is being processed by
+ * the stack (thanks to Jonathan Hudgins)
+ * - Fixed broken MIDI host driver MIDI_Host_ReceiveEventPacket() function due to not unfreezing the MIDI data IN pipe before use (thanks to Michael Brown)
+ * - Fixed swapped Little Endian/Big Endian endpoint and pipe write code for the UC3 devices (thanks to Andrew Chu)
+ * - Fixed the JTAG_DISABLE() macro clearing all other bits in MCUSR when called
+ * - Fixed incorrect Micropendous board LED driver LEDs_SetAllLEDs() and LEDs_ChangeLEDs() function implementations (thanks to MitchJS)
+ * - Fixed endianess issues in the RNDIS host class driver for UC3 devices (thanks to Andrew Chu)
+ * - Library Applications:
+ * - Fixed error in the AVRISP-MKII programmer when ISP mode is used at 64KHz (thanks to Ben R. Porter)
+ * - Fixed AVRISP-MKII programmer project failing to compile for the U4 chips when VTARGET_ADC_CHANNEL is defined to an invalid channel and NO_VTARGET_DETECT is
+ * defined (thanks to Steven Morehouse)
+ * - Fixed AVRISP-MKII programmer project reset line polarity inverted when the generated EEP file is loaded into the USB AVR's EEPROM and avr-dude is used
+ * - Fixed CDC and DFU bootloaders failing to compile when the bootloader section size is 8KB or more (thanks to Georg Glock)
+ * - Fixed CDC and DFU bootloaders API function offsets incorrect on some devices (thanks to Rod DeMay)
+ * - Fixed incorrect DFU version number reported to the host in the DFU bootloader descriptors (thanks to Georg Glock)
+ * - Fixed incorrect version hundredths value encoding in VERSION_BCD() macro (thanks to Georg Glock)
+ * - Fixed invalid configuration descriptor in the low level KeyboardMouse device demo (thanks to Jun Wako)
+ * - Fixed CDC and DFU bootloaders API page erase and write function failures (thanks to Martin Lambert)
+ *
+ * \section Sec_ChangeLog120219 Version 120219
+ * <b>New:</b>
+ * - Core:
+ * - Added support for the XMEGA A3BU Xplained board
+ * - Added support for the new B series XMEGA devices
+ * - Added support for version 2 of the Teensy boards (thanks to Christoph Redecker)
+ * - Added support for the USB2AX boards, hardware revision 1-3
+ * - Added new Android Accessory Host class driver
+ * - Added new USB_Host_GetDescriptor(), USB_Host_GetDeviceConfiguration() and USB_Host_GetInterfaceAltSetting() functions
+ * - Added new CALLBACK_Audio_Device_GetSetInterfaceProperty() callback to the Audio Device Class driver
+ * - Added new LEDs_Disable(), Buttons_Disable() and Joystick_Disable() functions to the board hardware drivers
+ * - Added support for the Micropendous family of boards (Arduino-like revisions 1 and 2, DIP, 32U2, A, 1, 2, 3 and 4)
+ * - Added INVERTED_VBUS_ENABLE_LINE and NO_AUTO_VBUS_MANAGEMENT compile time options (thanks to Opendous Inc.)
+ * - Added support for the Atmel XMEGA B1 Xplained board
+ * - Added Serial USART peripheral driver for the XMEGA architecture
+ * - Added Master Mode SPI USART peripheral driver for the XMEGA and AVR8 architectures
+ * - Added build test to verify correct compilation of as many modules as possible under as many architectures as possible under the C and C++ languages
+ * - Added build test to verify correct compilation of the USB driver when forced into single USB mode under as many architectures as possible
+ * - Library Applications:
+ * - Added User Application APIs to the CDC and DFU class bootloaders
+ * - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)
+ * - Added new Android Accessory Host demo (thanks to Opendous Inc.)
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - When automatic PLL management mode is enabled on the U4 series AVR8 chips, the PLL is now configured for 48MHz and not
+ * a divided 96MHz, to lower power consumption and to keep the system within the datasheet specs for 3.3V operation (thanks to Scott Vitale)
+ * - Added Class, ClassDevice, ClassHost and ClassCommon to the internal class driver source filenames to prevent ambiguities
+ * - Altered the Mass Storage Host class driver so that SCSI data STALLs from the attached device can be recovered from automatically without
+ * having to reset the Mass Storage interface
+ * - USB_CONFIG_ATTR_BUSPOWERED constant renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed (thanks to NXP Semiconductors)
+ * - Reordered board name definition indexes so that a misspelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
+ * - Altered the HID class driver to only try to construct at maximum one packet per USB frame, to reduce CPU usage
+ * - All USB Class Driver configuration struct values are now non-const, to allow for run-time modifications if required before configuring an instance
+ * - Library Applications:
+ * - Altered the Mass Storage Host LowLevel demo so that SCSI data STALLs from the attached device can be recovered from automatically without
+ * having to reset the Mass Storage interface
+ * - Updated the AVRISP-MKII Clone programmer project to be compatible with the latest version of AVR Studio (version 5.1)
+ * - Changed the AVRISP-MKII Clone programmer project to report a fixed 3.3V VTARGET voltage on USB AVRs lacking an ADC instead of 5V to prevent
+ * warnings in AVR Studio 5.1 when programming XMEGA devices
+ * - Allow serial strings to be generated on the older AVR8 devices which do not explicitly state they contain unique values in the datasheet,
+ * as this appears to be implemented in hardware
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed ring buffer size limited to 255 elements, instead of the intended 65535 elements.
+ * - Fixed CDC class drivers not saving and sending all 16-bits of the control line states (thanks to Matthew Swabey)
+ * - Fixed race conditions in the CDC, HID and Mass Storage class drivers when processing some control requests
+ * - Fixed misspelled HID_KEYBOARD_MODIFIER_* macros in the HID class driver (thanks to Laszlo Monda)
+ * - Fixed broken AVR32 endpoint/pipe communications when ORDERED_EP_CONFIG compile time option is not enabled (thanks to Matthias Jahr)
+ * - Fixed broken compilation for the AVR32 devices if the NO_SOF_EVENTS compile time option was not enabled (thanks to Matthias Jahr)
+ * - Fixed compiler warning on GCC with \c -wundef compile flag is used (thanks to Georg Glock)
+ * - Fixed incorrect implementation of LEDs_ToggleLEDs() for the Adafruit-U4 board (thanks to Caroline Saliman)
+ * - 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
+ * - Fixed AVRISP-MKII Clone failing to start application firmware once a TPI programming session is exited
+ * - Fixed DFU class bootloader not resetting the LED pins as high impedance inputs when a software jump to the user applications is requested
+ * - Fixed AVRISP-MKII Clone timing out on long programming commands such as programming the EEPROM on an ATMEGA8 (thanks to Martin Kelling)
+ * - Fixed invalid PID value used in the TempDataLogger project host application (thanks to Anupam Pathak)
+ *
+ * \section Sec_ChangeLog111009 Version 111009
+ * <b>New:</b>
+ * - Core:
+ * - Added USE_LUFA_CONFIG_HEADER compile time option to include a LUFAConfig.h header in the user director for LUFA configuration
+ * tokens as an alternative to tokens defined in the project makefile
+ * - Added new USB_Host_SetInterfaceAltSetting() convenience function for the selection of an interface's alternative setting
+ * - Added Audio class control request definitions
+ * - Added new CALLBACK_Audio_Device_GetSetEndpointProperty() callback to the Audio Device Class driver to allow for endpoint control manipulations
+ * such as data sample rates
+ * - Added support for the Audio class GET STATUS request in the Audio Device Class driver so that it is correctly ACKed when sent by the host
+ * - Added new EVENT_Audio_Device_StreamStartStop() event to the Audio Device Class driver to detect stream start/stop events
+ * - Added board driver support for the Busware TUL board
+ * - Added board hardware driver support for the EVK1100 board
+ * - Added board hardware driver support for the EVK1104 board
+ * - Added new Host mode Audio Class driver
+ * - Added new SPI_GetCurrentMode() function to the SPI peripheral driver
+ * - Added RingBuffer_GetFreeCount() function to the Ring Buffer driver
+ * - Added new HID_Host_SetIdlePeriod() function to the HID Host Class driver
+ * - Added new USB_Host_ConfigurationNumber global variable to indicate the selected configuration in an attached device
+ * - Added new USB_Host_GetDeviceStatus() function to the host standard request function set
+ * - Added AVR USB XMEGA architecture port (currently incomplete/experimental)
+ * - Added new STRINGIFY() and STRINGIFY_EXPANDED() convenience macros
+ * - Added new JTAG_DISABLE() macro for the AVR8 architecture
+ * - Added Device Qualifier standard descriptor structure definitions USB_StdDescriptor_DeviceQualifier_t and USB_Descriptor_DeviceQualifier_t
+ * - Library Applications:
+ * - Added RNDIS device mode to the Webserver project
+ * - Added new incomplete AndroidAccessoryHost Host LowLevel demo
+ * - Added new HIDReportViewer project
+ * - Added new MediaControl project
+ * - Added new AudioInputHost Host ClassDriver demo
+ * - Added new AudioOutputHost Host ClassDriver demo
+ * - Added new AudioInputHost Host LowLevel demo
+ * - Added new AudioOutputHost Host LowLevel demo
+ * - Added new "checksource" target to all library project makefiles
+ * - Added new VTARGET_USE_INTERNAL_REF configuration option to the AVRISP-MKII clone project (thanks to Volker Bosch)
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - Altered the definition of the USB_Audio_Descriptor_Format_t descriptor so that the user is now responsible for supplying
+ * the supported audio sampling rates, to allow for multiple audio interfaces with different numbers of supported rates and/or
+ * continuous sample rates
+ * - Pipe_BoundEndpointNumber() has been renamed to Pipe_GetBoundEndpointAddress(), and now returns the correct endpoint direction
+ * as part of the endpoint address
+ * - Renamed global state variables that are specific to a certain USB mode to clearly indicate which mode the variable relates to,
+ * by changing the USB_* prefix to USB_Device_* or USB_Host_*
+ * - Removed the HOST_STATE_WaitForDeviceRemoval and HOST_STATE_Suspended host state machine states, as these are no longer required
+ * - Altered the USB_Host_SetDeviceConfiguration() function to update the global Host state machine state and the new
+ * USB_Host_ConfigurationNumber global as required
+ * - Added endian correcting code to the library USB class drivers for multiple architecture support
+ * - Removed the ENDPOINT_DESCRIPTOR_DIR_* macros, replaced by ENDPOINT_DIR_* instead
+ * - Renamed the JTAG_DEBUG_ASSERT() macro to JTAG_ASSERT()
+ * - Added variable number of axis to HID_DESCRIPTOR_JOYSTICK() for multi-axis joysticks above just X and Y
+ * - Renamed USB_Host_ClearPipeStall() to USB_Host_ClearEndpointStall() as the function works on an endpoint address within the attached device,
+ * and not a Pipe within the host
+ * - The MS_Host_ResetMSInterface() now performs a full Mass Storage reset sequence to prevent data corruption in the event of a device
+ * lock up or timeout (thanks to David Lyons)
+ * - Added endian-correction to the CDC driver's Line Encoding control request handlers.
+ * - Library Applications:
+ * - Modified the Low Level and Class Driver AudioInput and AudioOutput demos to support multiple audio sample rates
+ * - Updated all host mode demos and projects to use the EVENT_USB_Host_DeviceEnumerationComplete() event callback for device configuration
+ * instead of manual host state machine manipulations in the main application task
+ * - Changed the reports in the GenericHID device demos to control the board LEDs, to reduce user confusion over the callback routines
+ * - Added reliability patches to the AVRISP-MKII Clone project's ISP and PDI/TPI protocols (thanks to Justin Mattair)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Large number of documentation and code comment corrections (thanks to Andrey from Microsin.ru)
+ * - Fixed possibility of the AVR's SPI interface being pulled out of master mode if the /SS pin is a input and pulled low (thanks
+ * to Andrey from Microsin.ru)
+ * - Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time
+ * option was not enabled on the AVR8s
+ * - Fixed lack of C++ compatibility in some internal header files causing compile errors when using LUFA in C++ projects
+ * - Fixed error in the pipe unordered allocation algorithm for the AVR8 devices breaking compatibility with some devices
+ * - Fixed USB_USBTask not being called internally in stream transfers between packets when Partial Stream Transfers are used
+ * - Fixed swapped TWI_ADDRESS_READ and TWI_ADDRESS_WRITE values
+ * - Fixed TWI_ReadPacket() not releasing the TWI bus on read completion
+ * - Fixed optimization error in the HID Parser item value USB_SetHIDReportItemInfo() and USB_GetHIDReportItemInfo() routines if the report item was
+ * \c NULL (which should be allowable according to the API)
+ * - Fixed HID Parser CALLBACK_HIDParser_FilterHIDReportItem() callback function not being passed a cacheable report item pointer
+ * - Fixed HID Parser's largest report size bit count not including the size of the last parsed report item
+ * - Fixed HID host driver's largest HID report size count corrupt when the number of report bits exceeds 255
+ * - Library Applications:
+ * - Fixed incorrect signature in the CDC and DFU class bootloaders for the ATMEGA8U2
+ * - Fixed KeyboardHost and KeyboardHostWithParser demos displaying incorrect values when numerical keys were pressed
+ * - Fixed compile errors in the incomplete BluetoothHost demo application (thanks to Timo Lindfors)
+ * - Fixed incorrect Dataflash buffer use in the DataflashManager_WriteBlocks_RAM() function of several demos/projects (thanks to Jeremy Willden)
+ * - Fixed incorrect logging interval (always 500ms longer than requested) in the TempDataLogger project
+ * - Fixed incorrect buffer size check in the USBtoSerial project (thanks to Yuri A Nikiforov)
+ * - Fixed port state table corruption in the TCP layer of the RNDIS Ethernet device demos
+ *
+ * \section Sec_ChangeLog110528 Version 110528
+ * <b>New:</b>
+ * - Core:
+ * - Added new ORDERED_EP_CONFIG compile time option to restrict endpoint/pipe configuration to ascending order
+ * in exchange for a smaller compiled program binary size
+ * - Added a new general RingBuff.h miscellaneous ring buffer library driver header
+ * - Added new GCC_FORCE_POINTER_ACCESS() macro to correct GCC's mishandling of struct pointer accesses
+ * - Added new GCC_MEMORY_BARRIER() macro to prevent instruction reordering across boundaries
+ * - Added basic driver example use code to the library documentation
+ * - Added new Endpoint_Null_Stream() and Pipe_Null_Stream() functions
+ * - Added new ADC_GET_CHANNEL_MASK() convenience macro
+ * - Added new HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors
+ * - Added new HID_DESCRIPTOR_MOUSE(), HID_DESCRIPTOR_KEYBOARD(), HID_DESCRIPTOR_JOYSTICK() and HID_DESCRIPTOR_VENDOR() macros
+ * for easy automatic creation of basic USB HID device reports
+ * - Added new MAX() and MIN() convenience macros
+ * - Added new Serial_SendData() function to the Serial driver
+ * - Added board driver support for the Sparkfun ATMEGA8U2 breakout board
+ * - Added TWI baud rate prescaler and bit length parameters to the TWI_Init() function (thanks to Thomas Herlinghaus)
+ * - Internal restructuring for eventual multiple architecture ports
+ * - Added AVR32 UC3 architecture port (currently incomplete/experimental)
+ * - Added new architecture independent functions to enable, disable, save and restore the Global Interrupt Enable flags
+ * - Added new RNDIS Device Class Driver packet send and receive functions
+ * - Library Applications:
+ * - Added ability to write protect Mass Storage disk write operations from the host OS
+ * - Added new MIDIToneGenerator project
+ * - Added new KeyboardMouseMultiReport Device ClassDriver demo
+ * - Added new VirtualSerialMassStorage Device ClassDriver demo
+ * - Added HID class bootloader, compatible with a modified version of the command line Teensy loader from PJRC.com
+ * - Added LED flashing to the CDC and DFU class bootloaders to indicate when they are running
+ *
+ * <b>Changed:</b>
+ * - Core:
+ * - Unordered Endpoint/Pipe configuration is now allowed once again by default via the previous reconfig workaround
+ * - Refactored Host mode Class Driver *_Host_ConfigurePipes() routines to be more space efficient when compiled
+ * - Added new *_ENUMERROR_PipeConfigurationFailed error codes for the *_Host_ConfigurePipes() routines
+ * - The USARTStream global is now public and documented in the SerialStream module, allowing for the serial USART
+ * stream to be accessed via its handle rather than via the implicit stdout and stdin streams
+ * - The FAST_STREAM_TRANSFERS compile time option has been removed due to lack of use and low cost/benefit ratio
+ * - Altered all endpoint/pipe stream transfers so that the new BytesProcessed parameter now points to a location
+ * where the number of bytes in the transfer that have been completed can be stored (or NULL if entire transaction
+ * should be performed in one chunk)
+ * - The NO_STREAM_CALLBACKS compile time option has now been removed due to the new partial stream transfer feature
+ * - Changed over all project and demo HID report descriptors to use the new HID report item macros
+ * - Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/
+ * - Added support to the HID parser for extended USAGE items that contain the usage page as well as the usage index
+ * - Removed the SerialStream driver, rolled functionality into the regular Serial peripheral driver via the new
+ * Serial_CreateStream() and Serial_CreateBlockingStream() functions
+ * - Renamed the low level Serial byte send/receive functions, to be consistent with the CDC class driver byte functions
+ * - Altered the behaviour of the serial byte reception function so that is is non-blocking, and now returns a negative
+ * value if no character is received (to remain consistent with the CDC class driver byte reception routines)
+ * - Renamed the PRNT_Host_SendString(), CDC_Host_SendString() and CDC_Device_SendString() functions to *_SendData(), and
+ * added new versions of the *_SendString() routines that expect a null terminated string instead
+ * - Renamed all driver termination *_ShutDown() functions to the more logical name *_Disable()
+ * - Reduced latency for executing the Start-Of-Frame events (if enabled in the user application)
+ * - Removed Pipe_ClearErrorFlags(), pipe error flags are now automatically cleared when Pipe_ClearError() is called
+ * - Endpoint_ResetFIFO() renamed to Endpoint_ResetEndpoint(), to be consistent with the Pipe_ResetPipe() function name
+ * - Implemented on-demand PLL clock generation for the U4, U6 and U7 series USB AVRs when automatic PLL mode is specified
+ * - F_CLOCK changed to F_USB to be more descriptive, and applicable on future architecture ports
+ * - Renamed all low level Endpoint_Read_*, Endpoint_Write_* and Endpoint_Discard_* functions to use the number of bits instead of
+ * a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures
+ * - Renamed all low level Pipe_Read_*, Pipe_Write_* and Pipe_Discard_* functions to use the number of bits instead of
+ * a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures
+ * - Separated out board drivers by architecture in the library internals for better organisation
+ * - Library Applications:
+ * - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode
+ * via the Input Capture register, to reduce user confusion
+ * - Combined page and word ISP programming mode code in the AVRISP-MKII clone project to reduce compiled size and
+ * increase maintainability of the code
+ * - Changed over library projects to use the new general ring buffer library driver module
+ * - Added new high level TWI packet read/write commands, altered behaviour of the TWI_StartTransmission() function
+ * - Changed TempDataLogger project's DS1307 driver to simplify the function interface and prevent a possible race condition
+ * - Changed AVRISP-MKII project to use the Watchdog interrupt for command timeouts, to reduce CPU usage and free timer 0
+ * for other uses
+ * - Updated the software USART code in the XPLAIN Bridge application so that the incoming bits are sampled at their mid-point
+ * instead of starting point, to give maximum reliability (thanks to Anton Staaf)
+ *
+ * <b>Fixed:</b>
+ * - Core:
+ * - Fixed broken USBFOO board drivers due to missing BOARD_USBFOO define
+ * - Fixed HID host class driver incorrectly binding to HID devices that do not have an OUT endpoint
+ * - Fixed incorrect definition of the HID_KEYBOARD_SC_D constant in the HID class driver (thanks to Opendous Inc.)
+ * - Fixed incorrect definition of the HID_KEYBOARD_SC_RIGHT_ARROW constant in the HID class driver (thanks to Joby Taffey)
+ * - Fixed incorrect endpoint initialisation order in the several device demos (thanks to Rick Drolet)
+ * - Fixed inverted Minimus board LEDs
+ * - Fixed incorrect byte ordering in the Audio_Device_WriteSample24 function (thanks to WZab)
+ * - Fixed several functions in the Host mode Still Image Class driver returning an error code from the incorrect
+ * error code enum (thanks to Daniel Seibert)
+ * - Fixed ReportID not being removed from the feature/out report data array in the HID class driver when Report IDs are used
+ * - Fixed incorrect BUTTONS_BUTTON1 definition for the Minimus board
+ * - Fixed Still Image Host class driver exiting the descriptor search routine prematurely if the data pipes (but not event pipe)
+ * is found
+ * - Fixed missing call to Pipe_SetInfiniteINRequests() in the Pipe_ConfigurePipe() routine
+ * - Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the SUSPI bit is set (thanks to Holger Steinhaus)
+ * - Fixed possible invalid program execution when in host mode if corrupt descriptor lengths are supplied by the attached device