From cf4575b94a3c65e6535a159fc71fc885aebc2620 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 2 Aug 2019 14:02:40 -0700 Subject: Fix the LUFA lib to use a submodule instead of just files (#6245) * Remove LUFA files * Update descriptions for newer version of LUFA * Create PR6245.md * Fix CDC(Serial) type errors * Fix missed merge conflict for AUDIO_DTYPE_CSInterface --- lib/lufa/LUFA/DoxygenPages/BuildSystem.txt | 281 ---- .../DoxygenPages/BuildingLinkableLibraries.txt | 23 - lib/lufa/LUFA/DoxygenPages/ChangeLog.txt | 1653 -------------------- lib/lufa/LUFA/DoxygenPages/CompileTimeTokens.txt | 223 --- lib/lufa/LUFA/DoxygenPages/CompilingApps.txt | 46 - lib/lufa/LUFA/DoxygenPages/ConfiguringApps.txt | 157 -- lib/lufa/LUFA/DoxygenPages/DevelopingWithLUFA.txt | 23 - lib/lufa/LUFA/DoxygenPages/DeviceSupport.txt | 424 ----- lib/lufa/LUFA/DoxygenPages/DirectorySummaries.txt | 80 - lib/lufa/LUFA/DoxygenPages/Donating.txt | 25 - lib/lufa/LUFA/DoxygenPages/FutureChanges.txt | 47 - lib/lufa/LUFA/DoxygenPages/GettingStarted.txt | 37 - lib/lufa/LUFA/DoxygenPages/Groups.txt | 38 - lib/lufa/LUFA/DoxygenPages/Images/Author.jpg | Bin 28410 -> 0 bytes lib/lufa/LUFA/DoxygenPages/Images/LUFA.png | Bin 10296 -> 0 bytes lib/lufa/LUFA/DoxygenPages/Images/LUFA_thumb.png | Bin 3729 -> 0 bytes lib/lufa/LUFA/DoxygenPages/KnownIssues.txt | 234 --- lib/lufa/LUFA/DoxygenPages/LUFAPoweredProjects.txt | 226 --- lib/lufa/LUFA/DoxygenPages/LibraryResources.txt | 33 - lib/lufa/LUFA/DoxygenPages/LicenseInfo.txt | 43 - lib/lufa/LUFA/DoxygenPages/MainPage.txt | 52 - .../LUFA/DoxygenPages/MigrationInformation.txt | 717 --------- lib/lufa/LUFA/DoxygenPages/OSDrivers.txt | 111 -- lib/lufa/LUFA/DoxygenPages/ProgrammingApps.txt | 27 - .../LUFA/DoxygenPages/SoftwareBootloaderJump.txt | 71 - lib/lufa/LUFA/DoxygenPages/Style/Footer.htm | 35 - lib/lufa/LUFA/DoxygenPages/Style/Style.css | 93 -- lib/lufa/LUFA/DoxygenPages/VIDAndPIDValues.txt | 199 --- lib/lufa/LUFA/DoxygenPages/WritingBoardDrivers.txt | 47 - 29 files changed, 4945 deletions(-) delete mode 100644 lib/lufa/LUFA/DoxygenPages/BuildSystem.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/BuildingLinkableLibraries.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/ChangeLog.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/CompileTimeTokens.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/CompilingApps.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/ConfiguringApps.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/DevelopingWithLUFA.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/DeviceSupport.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/DirectorySummaries.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/Donating.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/FutureChanges.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/GettingStarted.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/Groups.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/Images/Author.jpg delete mode 100644 lib/lufa/LUFA/DoxygenPages/Images/LUFA.png delete mode 100644 lib/lufa/LUFA/DoxygenPages/Images/LUFA_thumb.png delete mode 100644 lib/lufa/LUFA/DoxygenPages/KnownIssues.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/LUFAPoweredProjects.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/LibraryResources.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/LicenseInfo.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/MainPage.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/MigrationInformation.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/OSDrivers.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/ProgrammingApps.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/SoftwareBootloaderJump.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/Style/Footer.htm delete mode 100644 lib/lufa/LUFA/DoxygenPages/Style/Style.css delete mode 100644 lib/lufa/LUFA/DoxygenPages/VIDAndPIDValues.txt delete mode 100644 lib/lufa/LUFA/DoxygenPages/WritingBoardDrivers.txt (limited to 'lib/lufa/LUFA/DoxygenPages') diff --git a/lib/lufa/LUFA/DoxygenPages/BuildSystem.txt b/lib/lufa/LUFA/DoxygenPages/BuildSystem.txt deleted file mode 100644 index e0d84f0acd..0000000000 --- a/lib/lufa/LUFA/DoxygenPages/BuildSystem.txt +++ /dev/null @@ -1,281 +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_BuildSystem The LUFA Build System - * - * \section Sec_BuildSystem_Overview Overview of the LUFA Build System - * The LUFA build system was originally an attempt at making a set of - * re-usable, modular build make files which could be referenced in a LUFA - * powered project, to minimize the amount of code required in an - * application makefile. - * - * As it turned out to be fairly generic in nature, it was split out into its - * own separate project, called DMBS (Dean's Makefile Build System) - * which is released into the public domain. LUFA-specific portions of the - * LUFA build system extend DMBS, and provide a universal build system for all - * LUFA projects. - * - * The latest DMBS project information and documentation can be found at: - * https://github.com/abcminiuser/dmbs - * - * DMBS is written in GNU Make, and each module is independent of one-another. - * - * LUFA now uses DMBS for its build system, with some LUFA specific extension - * modules. - * - * If you have problems building using LUFA, see \subpage Page_BuildTroubleshooting for resolution steps. - * - * \li \subpage Page_BuildModule_LUFA_SOURCES - The LUFA SOURCES extension module for DMBS - * \li \subpage Page_BuildModule_LUFA_GCC - The LUFA GCC extension module for DMBS - */ - -/** \page Page_BuildModule_LUFA_SOURCES LUFA SOURCES extension module for DMBS - * - * The LUFA SOURCES extension more for DMBS provides LUFA specific variables - * listing the various LUFA source files required to be build by a project for - * a given LUFA module. This module gives a way to reference LUFA source files - * symbolically, so that changes to the library structure do not break the - * library makefile. - * - * To use this module in your application makefile, add the following code: - * \code - * include $(LUFA_PATH)/Build/LUFA/lufa-sources.mk - * \endcode - * - * \section SSec_BuildModule_LUFA_SOURCES_Requirements Requirements - * None. - * - * \section SSec_BuildModule_LUFA_SOURCES_Targets Targets - * - * - * - * - * - *
None
- * - * \section SSec_BuildModule_LUFA_SOURCES_MandatoryParams Mandatory Parameters - * - * - * - * - * - * - * - * - * - * - *
LUFA_PATHPath to the LUFA library core, either relative or absolute (e.g. ../LUFA-000000/LUFA/).
ARCHArchitecture of the target processor (see \ref Page_DeviceSupport).
- * - * \section SSec_BuildModule_LUFA_SOURCES_OptionalParams Optional Parameters - * - * - * - * - * - *
None
- * - * \section SSec_BuildModule_LUFA_SOURCES_ProvidedVariables Module Provided Variables - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
LUFA_SRC_USBList of LUFA USB driver source files.
LUFA_SRC_USBCLASSList of LUFA USB Class driver source files.
LUFA_SRC_TEMPERATUREList of LUFA temperature sensor driver source files.
LUFA_SRC_SERIALList of LUFA Serial U(S)ART driver source files.
LUFA_SRC_TWIList of LUFA TWI driver source files.
LUFA_SRC_PLATFORMList of LUFA architecture specific platform management source files.
- * - * \section SSec_BuildModule_LUFA_SOURCES_ProvidedMacros Module Provided Macros - * - * - * - * - * - *
None
- */ - -/** \page Page_BuildModule_LUFA_GCC LUFA GCC extension module for DMBS - * - * The LUFA GCC extension module for the standard DMBS GCC module extends the - * latter to support the compilation of LUFA powered projects. It should be - * imported into your LUFA powered project makefiles to ensure that the correct - * build settings are used for the project's configuration. - * - * To use this module in your application makefile, add the following code: - * \code - * include $(LUFA_PATH)/Build/LUFA/lufa-gcc.mk - * \endcode - * - * \section SSec_BuildModule_LUFA_GCC_Requirements Requirements - * This module should be included in your makefile *after* the DMBS GCC module. - * - * \section SSec_BuildModule_LUFA_GCC_Targets Targets - * - * - * - * - * - *
None
- * - * \section SSec_BuildModule_LUFA_GCC_MandatoryParams Mandatory Parameters - * - * - * - * - * - * - *
LUFA_PATHPath to the LUFA library core, either relative or absolute (e.g. ../LUFA-000000/LUFA/).
- * - * \section SSec_BuildModule_LUFA_GCC_OptionalParams Optional Parameters - * - * - * - * - * - * - *
BOARDLUFA board hardware drivers to use (see \ref Page_DeviceSupport).
- * - * \section SSec_BuildModule_LUFA_GCC_ProvidedVariables Module Provided Variables - * - * - * - * - * - *
None
- * - * \section SSec_BuildModule_LUFA_GCC_ProvidedMacros Module Provided Macros - * - * - * - * - * - *
None
- */ - -/** \page Page_BuildTroubleshooting Troubleshooting Information - * - * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and - * surrounding binaries. This can sometimes lead to problems compiling - * applications if one of these features is buggy in the version of the tools - * used in a build environment. Missing utilities and incorrectly set makefile - * configuration options can also result in different errors being produced - * when compilation or other operations are attempted. The table below lists a - * set of commonly encountered errors and their resolutions. - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
ProblemResolution
Error "relocation truncated to fit: R_AVR_13_PCREL against symbol {X}" shown when compiling.Try compiling with the setting LINKER_RELAXATIONS=N in your LUFA Build System 2.0 makefile, or remove the line -Wl,--relax - * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.
Error "error: ld terminated with signal 11 [Segmentation fault]" shown when compiling.Try compiling with the setting DEBUG_LEVEL=2 in your LUFA Build System 2.0 makefile, or make sure you are using binutils version 2.22 or later.
Error "EMERGENCY ABORT: INFINITE RECURSION DETECTED" shown when compiling.Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with - * GNU make or other variants of Make causing an infinitely recursive build.
Error "Unsupported architecture "{X}"" shown when compiling.Ensure your makefile's ARCH setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.
Error "Makefile {X} value not set" shown when compiling.The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA - * build system modules. Define the value in your project makefile and try again.
Error "Makefile {X} option cannot be blank" shown when compiling.The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration - * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.
Error "Makefile {X} option must be Y or N" shown when compiling.The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No"). - * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.
Error "Unknown input source file formats: {X}" shown when compiling.The nominated source files, specified in your project's makefile in the SRC configuration option, has an extension that the LUFA build system does not - * recognise. The file extensions are case sensitive, and must be one of the supported formats (*.c, *.cpp or *.S).
Error "Cannot build with OBJDIR parameter set - one or more object file name is not unique" shown when compiling.When a project is built with a non-empty OBJDIR object directory name set, all input source files must have unique names, excluding extension and path. - * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.
Error "Source file does not exist: {X}" shown when compiling.The nominated input source file, specified in the user project's SRC parameter, could not be found. Ensure the source file exists and the absolute or - * relative path given in the user project makefile is correct and try again.
Error "Doxygen configuration file {X} does not exist" shown when upgrading a Doxygen configuration file.The nominated Doxygen configuration file, specified in the user project's DOXYGEN_CONF parameter, could not be found. Ensure the configuration file exists - * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration - * file.
Error "avr-gcc: error: unrecognized option '{X}'" shown when compiling.An unrecognised option was supplied to the compiler, usually in the C_FLAGS, CPP_FLAGS, ASM_FLAGS or CC_FLAGS configuration - * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or - * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.
Error "makefile:{X}: {Y}.mk: No such file or directory" shown when make is invoked.The path to the nominated makefile module was incorrect. This usually indicates that the makefile LUFA_PATH option is not set to a valid relative or - * absolute path to the LUFA library core.
Error "fatal error: LUFAConfig.h: No such file or directory" shown when compiling.The USE_LUFA_CONFIG_HEADER compile time option was set in the user project makefile, but the user supplied LUFAConfig.h header could not be - * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile CC_FLAGS - * parameter.
Error "ld.exe: section .apitable_trampolines loaded at {X} overlaps section .text" shown when compiling a bootloader.The bootloader is compiling too large for the given FLASH_SIZE_KB and BOOT_SECTION_SIZE_KB parameters set in the bootloader makefile. This - * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the - * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.
Error "unknown MCU '{X}' specified" shown when compiling.The specified microcontroller device model name set in the user application's makefile as the MCU parameter is incorrect, or unsupported by the - * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.
Error "undefined reference to `{X}'" shown when compiling.This is usually caused by a missing source file in the user application's SRC configuration parameter. If the indicated symbol is one from the LUFA - * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_LUFA_SOURCES).
- * - * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp. - */ diff --git a/lib/lufa/LUFA/DoxygenPages/BuildingLinkableLibraries.txt b/lib/lufa/LUFA/DoxygenPages/BuildingLinkableLibraries.txt deleted file mode 100644 index cbbae4b8e9..0000000000 --- a/lib/lufa/LUFA/DoxygenPages/BuildingLinkableLibraries.txt +++ /dev/null @@ -1,23 +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_BuildLibrary Building as a Linkable Library - * - * The LUFA library can be built as a proper linkable library (with the extension .a) under AVR-GCC, so that - * the library does not need to be recompiled with each revision of a user project. Instructions for creating - * a library from a given source tree can be found in the AVR-GCC user manual included in the WinAVR install - * /Docs/ directory. - * - * However, building the library is not recommended, as the static (compile-time) options will be - * unable to be changed without a recompilation of the LUFA code. Therefore, if the library is to be built - * from the LUFA source, it should be made to be application-specific and compiled with the static options - * that are required for each project (which should be recorded along with the library). - * - * Normal library use has the library components compiled in at the same point as the application code, as - * demonstrated in the library demos and applications. This is the preferred method, as the library is recompiled - * each time to ensure that all static options for a particular application are applied. - */ - diff --git a/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt b/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt deleted file mode 100644 index aedfd3ce53..0000000000 --- a/lib/lufa/LUFA/DoxygenPages/ChangeLog.txt +++ /dev/null @@ -1,1653 +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_ChangeLog170418 Version 170418 - * New: - * - 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) - * - * Fixed: - * - 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) - * - * Changed: - * - 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 - * New: - * - 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) - * - * Changed: - * - 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 - * - * Fixed: - * - 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 - * New: - * - 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 - * - * Changed: - * - 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) - * - * Fixed: - * - 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 - * New: - * - 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) - * - * Changed: - * - 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 - * - * Fixed: - * - 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 - * New: - * - 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 - * - * Changed: - * - 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) - * - * Fixed: - * - 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 - * New: - * - 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 - * - * Changed: - * - 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) - * - * Fixed: - * - 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 - * New: - * - 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) - * - * Changed: - * - 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) - * - * Fixed: - * - 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 - * New: - * - 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.) - * - * Changed: - * - 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 - * - * Fixed: - * - 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 - * New: - * - 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) - * - * Changed: - * - 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) - * - * Fixed: - * - 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 - * New: - * - 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 - * - * Changed: - * - 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) - * - * Fixed: - * - 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 LED