summaryrefslogtreecommitdiffstats
path: root/tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt')
-rw-r--r--tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt1444
1 files changed, 0 insertions, 1444 deletions
diff --git a/tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt b/tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt
deleted file mode 100644
index 51786b9bee..0000000000
--- a/tmk_core/protocol/lufa/LUFA-120730/LUFA/DoxygenPages/ChangeLog.txt
+++ /dev/null
@@ -1,1444 +0,0 @@
-/** \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_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 reponse 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 mispelled 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
- * - Library Applications:
- * - Fixed Benito project discarding incoming data from the USB virtual serial port when the USART is busy
- * - Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground
- * - Fixed broken HID_REQ_GetReport request handler in the Low Level GenericHID demo
- * - Fixed possible lost data in the XPLAINBridge, USBtoSerial and Benito projects when the host exceeds the packet
- * timeout period on received packets as set by USB_STREAM_TIMEOUT_MS (thanks to Justin Rajewski)
- * - Fixed possible programming problem in the AVRISP-MKII clone project when programming specific patterns into a target
- * memory space that is only byte (not page) addressable
- * - Fixed errors in the incomplete Test and Measurement device demo preventing proper operation (thanks to Pavel Plotnikov)
- * - Fixed programming errors in the AVRISP-MKII project when the programming packet is a round multiple of the endpoint bank
- * size under avrdude (thanks to Steffan Woltjer)
- *
- *
- * \section Sec_ChangeLog101122 Version 101122
- * <b>New:</b>
- * - Core:
- * - Added new SCSI_ASENSE_NOT_READY_TO_READY_CHANGE constant to the Mass Storage class driver, to indicate when a previously
- * not ready removable medium has now become ready for the host's use (thanks to Martin Degelsegger)
- * - Moved the Pipe and Endpoint stream related code to two new USB library core source files EndpointStream.c and PipeStream.c
- * - Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number
- * - Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application
- * handling of USB Start of Frame events while in USB Host mode
- * - Added new PRNT_Host_BytesReceived(), PRNT_Host_ReceiveByte(), PRNT_Host_SendByte() and PRNT_Host_Flush() functions to the
- * Print Host Class driver
- * - Added class specific descriptor alternative struct type defines with standard USB-IF element naming
- * - Added new project makefile template to the library and moved board driver stub files into in a new "CodeTemplates" directory
- * - Added board hardware driver support for the Adafruit U4 breakout board
- * - Added board hardware driver support for the Arduino Uno development board
- * - Added board hardware driver support for the Blackcat USB JTAG board (thanks to the PSGroove team)
- * - Added board hardware driver support for the Busware BUI development board
- * - Added board hardware driver support for the Busware CUL V3 868MHZ radio board (thanks to Dirk Tostmann)
- * - Added board hardware driver support for the Kernel Concepts USBFOO development board
- * - Added board hardware driver support for the Linnix UDIP development board
- * - Added board hardware driver support for the Olimex AVR-USB-162 development board (thanks to Steve Fawcett)
- * - Added board hardware driver support for the Maximus board (thanks to the PSGroove team)
- * - Added board hardware driver support for the Microsin AVR-USB162 breakout board
- * - Added board hardware driver support for the Minimus board (thanks to the PSGroove team)
- * - Added new NO_CLASS_DRIVER_AUTOFLUSH compile time option to disable automatic flushing of interfaces when the USB management
- * tasks for each driver is called
- * - Added standard keyboard HID report scan-code defines (thanks to Laszlo Monda)
- * - Added new Pipe_GetBusyBanks(), Endpoint_GetBusyBanks() and Endpoint_AbortPendingIN() functions
- * - Library Applications:
- * - Added default test tone generation mode to the Device mode AudioInput demos
- * - Added new NO_BLOCK_SUPPORT, NO_EEPROM_BYTE_SUPPORT, NO_FLASH_BYTE_SUPPORT and NO_LOCK_BYTE_WRITE_SUPPORT compile time options to the
- * CDC class bootloader
- * - Added new XCK_RESCUE_CLOCK_ENABLE compile time option to the AVRISP-MKII clone programmer project (thanks to Tom Light)
- *
- * <b>Changed:</b>
- * - Core:
- * - Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions
- * depending of if the given bank size is a compile time constant, as the compiler does a better job of optimizing
- * with basic code
- * - Changed the signature of the CALLBACK_USB_GetDescriptor() callback function so that the descriptor pointer is const, to remove
- * the need for extra casting inside the callback (thanks to Jonathan Kollasch)
- * - Reduced HOST_DEVICE_SETTLE_DELAY_MS to 1000ms down from 1500ms to improve device compatibility while in USB Host mode
- * - Removed the EVENT_USB_InitFailure() event, not specifying a USB mode correctly now defaults to UID selection mode
- * - Renamed and moved class driver common constant definitions to make the naming scheme more uniform
- * - Moved the USB mode specifier constants into a new enum, so that they are semantically related to one another
- * - Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for
- * the given endpoint
- * - Better algorithm to extract and convert the internal device serial number into a string descriptor (if present)
- * - All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be separately included
- * - The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called
- * - Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library
- * request handlers, not afterwards
- * - Library Applications:
- * - Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints
- * - Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant
- * SCSI_Codes.h file as these values are part of the MassStorage Class Driver
- * - Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel
- * does not exist on these chips (thanks to Marco)
- * - Changed all Device mode LowLevel demos and Device Class drivers so that the control request is acknowledged and any data
- * transferred as quickly as possible without any processing in between sections, so that long callbacks or event handlers will
- * not break communications with the host by exceeding the maximum control request stage timeout period
- * - Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible
- * to free up the Start of Frame flag for interrupt use in the user application
- * - All project makefiles now correctly clean intermediate build files from assembly and C++ sources (thanks to Daniel Czigany)
- * - Changed default value for the reset polarity parameter in the AVRISP-MKII project so that it defaults to active low drive
- * - Changed configuration descriptor parser for all host mode projects and class drivers to ensure better compatibility with devices
- * - All LowLevel demos changed to use the constants and types defined in the USB class drivers
- * - Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer
- * - Rescue clock of the AVRISP-MKII moved to the AVR's OCR1A pin, so that the clock can be generated at all times
- * - Changed ClassDriver MIDI demos to process all incoming events in a loop until the bank becomes empty rather than one at a time
- * - Changed LowLevel MIDI demos to only clear the incoming event bank once it has become empty to support packed event packets
- *
- * <b>Fixed:</b>
- * - Core:
- * - Fixed USB_GetHIDReportItemInfo() function modifying the given report item's data when the report item does not exist
- * within the supplied report of a multiple report HID device
- * - Fixed critical pipe/endpoint memory allocation issue where the bank memory address space could be silently overlapped
- * in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger)
- * - Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev)
- * - Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts
- * - Fixed USB_Host_ClearPipeStall() incorrectly determining the endpoint direction from the currently selected pipe
- * - Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode
- * - Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests
- * - Fixed incorrect command name for EEPROM memory programming in the makefile dfu-ee target
- * - Fixed incorrect LEDs_ChangeLEDs() function in the Benito board LED driver
- * - Fixed incorrect USB_DeviceState value when unconfiguring the device without an address set
- * - Fixed SPI driver not explicitly setting /SS and MISO pins as inputs when SPI_Init() is called
- * - Fixed random enumeration failure while in device mode due to interrupts causing the Set Address request to exceed maximum timings
- * - Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface was not configured
- * - Fixed MIDI class driver send routines silently discarding packets if the endpoint or pipe is busy (thanks to Robin Green)
- * - Library Applications:
- * - Fixed MassStorage based demos and projects resetting the SCSI sense values before the command is executed, leading to
- * missed SCSI sense values when the host retrieves the sense key (thanks to Martin Degelsegger)
- * - Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control
- * request handler
- * - Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value
- * - Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2
- * - Fixed BootloaderCDC project failing on some operating systems due to removed Line Encoding options (thanks to Alexey Belyaev)
- * - Fixed broken FLASH/EEPROM programming in the AVRISP-MKII clone project when writing in non-paged mode and the polling byte cannot be used
- * - Fixed ISR definition conflict in the XPLAIN bridge between the software UART and the AVRISP-MKII ISP modules
- * - Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full
- * - Fixed broken input in the MagStripe reader project due to an incorrect HID report descriptor
- * - Fixed incorrect PollingIntervalMS values in the demo/project/bootloader endpoint descriptors (thanks to MCS Electronics)
- * - Fixed AVRISP-MKII clone project not starting the target's program automatically after exiting TPI programming mode
- *
- *
- * \section Sec_ChangeLog100807 Version 100807
- * <b>New:</b>
- * - Added new ADC_DisableChannel() function (thanks to Mich Davis)
- * - Added new VTARGET_REF_VOLTS and VTARGET_SCALE_FACTOR compile time defines to the AVRISP-MKII programmer project to set
- * the VTARGET reference voltage and scale factor
- * - Added new pgm_read_ptr() macro to Common.h for reading of pointers out of flash memory space
- * - Added new SWAPENDIAN_16() and SWAPENDIAN_32() macros to Common.h for statically initialized variables at compile time
- * - Added new Drivers/USB/LowLevel/Device.c file to house Device mode specific functions that are more complicated than simple macros
- * - Added new AVRStudio 4 project files for all library demos, projects and bootloaders
- * - Added ability to set the serial baud rate via the user's terminal in the XPLAINBridge project
- * - Added new LUFA module variables for the different source modules in the core library makefile to simplify project makefiles
- * - Added start of a new Test and Measurement class demo (thanks to Peter Lawrence)
- * - Added new SPI_ORDER_* data order masks to the SPI peripheral driver
- * - Added support to the AVRISP-MKII project for ISP speeds slower than 125KHz via a new software SPI driver
- * - Added support for the new button/LED on the latest model USBTINY-MKII
- *
- * <b>Changed:</b>
- * - The RingBuff library code has been replaced in the XPLAINBridge, Benito and USBtoSerial projects with an ultra lightweight
- * ring buffer to help improve the reliability of the projects
- * - The EEPROM stream read/write functions now use eeprom_update_byte() instead of eeprom_write_byte(), so that only
- * changed bytes are written to EEPROM to preserve its lifespan
- * - Changed over the AVRISP-MKII and TemperatureDataLogger projects to use eeprom_update_byte() when writing non-volatile
- * parameters to EEPROM to preserve its lifespan
- * - Removed unused line encoding data and control requests from the CDC Bootloader code, to save space
- * - Renamed SERIAL_STREAM_ASSERT() macro to STDOUT_ASSERT()
- * - The USB_Device_IsRemoteWakeupSent() and USB_Device_IsUSBSuspended() macros have been deleted, as they are now obsolete
- * - Rewrote the implementation of the SwapEndian_16() and SwapEndian_32() functions so that they compile down in most instances to
- * minimal loads and stores rather than complicated shifts
- * - The software UART in the XPLAINBridge has been largely altered to try to improve upon its performance and reliability
- * - The USBtoSerial and Benito projects now flushes received data via a flush timer, so that several bytes can be transmitted at once
- * - Removed the automated checking of event names in the demo, project and bootloader makefiles due to inconsistencies between the
- * behaviour of the command line tools used to perform the check on each platform
- * - Internal USB driver source files renamed and moved to ease future possible architecture ports
- * - All internal pseudo-function macros have been converted to true inline functions for type-safety and readability
- * - Changed LED indicator masks for the AVRISP-MKII project, so that there are defined roles for each LED
- * - Altered the CDC Device and Host Class drivers' receive byte routines, so that no data is indicated by the function returning a
- * negative value (thanks to Andreas Paulin)
- * - Added auto flushing of OUT data to the CDC Host Class driver's USBTask function to automatically flush the send pipe buffer
- *
- * <b>Fixed:</b>
- * - Fixed AVRISP project sending a LOAD EXTENDED ADDRESS command to 128KB AVRs after programming or reading from
- * the last page of FLASH (thanks to Gerard Sexton)
- * - Fixed AVRISP project not sending a full erase-and-write EEPROM command to XMEGA targets when writing to the EEPROM
- * instead of the split write-only command (thanks to Tim Margush)
- * - Fixed RNDISEthernet demos crashing when calculating checksums for Ethernet/TCP packets of more than ~500 bytes due to
- * an overflow in the checksum calculation loop (thanks to Kevin Malec)
- * - Fixed XPLAINBridge project not correctly reading the XMEGA's supply voltage when reporting back to the host
- * - Fixed incorrect signature for the ATMEGA32U2 in the DFU bootloader (thanks to Axel Rohde)
- * - Fixed internal device serial not being accessible on the ATMEGAXXU2 AVRs (thanks to Axel Rohde)
- * - Fixed void pointer arithmetic in ConfigDescriptor.h breaking C++ compatibility (thanks to Michael Hennebry)
- * - Fixed broken PDI EEPROM Section Erase functionality in the AVRISP-MKII project
- * - Fixed USB_Device_SendRemoteWakeup() not working when the USB clock was frozen during USB bus suspend (thanks to Brian Dickman)
- * - Fixed occasional lockup of the AVRISP project due to the timeout extension code incorrectly extending the timeout in
- * PDI and TPI programming modes infinitely
- * - Fixed HID device class driver still using PrevReportINBuffer for GetReport control requests even when it has been
- * set to NULL by the user application (thanks to Axel Rohde)
- * - Fixed MIDI_Device_SendEventPacket() not correctly waiting for the endpoint to become ready (thanks to Robin Green)
- * - Fixed Benito and USBtoSerial projects not turning off the USART before reconfiguring it, which could cause incorrect
- * operation to occur (thanks to Bob Paddock)
- * - Fixed Serial peripheral driver not turning off the USART before reconfiguring it, which would cause