Minor documentation improvements.
[pub/lufa.git] / LUFA / DoxygenPages / ChangeLog.txt
index b07e666..3b28fe5 100644 (file)
   *
   *  \section Sec_ChangeLogXXXXXX Version XXXXXX
   *  <b>New:</b>
+  *   - Added support for the Atmel Xplained-MINI series of development kits.
+  *
+  *  <b>Changed:</b>
+  *  - 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)
+  *
+  *  <b>Fixed:</b>
+  *   - None.
+  *
+  *  \section Sec_ChangeLog140928 Version 140928
+  *  <b>New:</b>
+  *  - Core:
+  *   - Updated the BUILD build system module to add a new COMPILER_PATH optional variable
+  *   - Added Serial_IsSendReady() and Serial_IsSendComplete() functions to the Serial hardware peripheral driver
+  *   - Added support for the Arduino Yun board (ATMEGA32U4 co-processor)
+  *   - Added support for the Arduino Micro board (thanks to Zoltán Szőke)
+  *  - Library Applications:
+  *   - Added new Dual MIDI class driver device demo
+  *
+  *  <b>Changed:</b>
+  *  - Core:
+  *   - The RNDIS device class driver now takes a user-supplied buffer and buffer length for the internal RNDIS
+  *     message management (thanks to Peter Mc Shane)
+  *
+  *  <b>Fixed:</b>
+  *  - Core:
+  *   - Fixed device class driver pipe configuration routines returning success with a partially constructed instance
+  *     when a pipe configuration failed (thanks to Helge Suess)
+  *   - Fixed incorrect XMEGA DFLL reference frequency (thanks to Martin Aakerberg)
+  *   - Fixed possible infinite loop in the control endpoint stream write function (thanks to Clayton Knight)
+  *   - Fixed missing HID report ID prefix on HID class driver GetReport request responses (thanks to Bert van Hall)
+  *   - Fixed incorrect XMEGA USB controller clock division factory for non-Full Speed operation (thanks to Bert van Hall)
+  *   - Fixed the LUFA build system to prevent incorrect code from being generated in newer toolchains when building for larger
+  *     FLASH memory devices (thanks to demultiplexer)
+  *   - Fixed missing parenthesis in the MIDI_EVENT() macro which could cause incorrect results (thanks to hexwab)
+  *   - Fixed mixed capitalization of TWI in the XMEGA TWI driver causing compilation failures (thanks to Jacob Schloss)
+  *   - Fixed broken AVR8 USART-SPI peripheral driver (thanks to Phil Zakielarz)
+  *  - Library Applications:
+  *   - Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen)
+  *   - Fixed blocking USART reads causing low throughput on slow baud rates in the USBtoSerial project (thanks to Nevada Smith)
+  *   - Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial project (thanks to Nevada Smith)
+  *   - Fixed broken LowLevel Audio Out demo sampling frequency configuration (thanks to Torsten Duwe)
+  *
+  *  \section Sec_ChangeLog140302 Version 140302
+  *  <b>New:</b>
+  *  - Library Applications:
+  *   - Added new Bulk Vendor low level device demo
+  *   - Added new libUSB host Python and NodeJS application examples for the Class driver GenericHID demo (thanks to Laszlo Monda)
+  *   - Added new AVR8 USB option to keep 3.3V regulator enabled (thanks to Michael Hanselmann)
+  *   - Added new USB_STRING_DESCRIPTOR() and USB_STRING_DESCRIPTOR_ARRAY() convenience macros (thanks to Laszlo Monda)
+  *
+  *  <b>Changed:</b>
+  *  - Library Applications:
+  *   - Refactored out USB interface IDs in the demo applications into enums (thanks to Laszlo Monda)
+  *   - AVRISP-MKII Clone Project PDI/TPI frequency increased from 250KHz to 2MHz as it is now stable
+  *   - Increased TPI/PDI handshake delay to 100us from 1us to support targets with high amounts of capacitance on their
+  *     /RESET lines (thanks to Paul Duke)
+  *   - Changed the VERSION_BCD() macro to accept the major/minor/revision values as separate parameters
+  *
+  *  <b>Fixed:</b>
+  *  - Core:
+  *   - Fixed MIDI device class driver MIDI_Device_ReceiveEventPacket() for the XMEGA architecture
+  *  - Library Applications:
+  *   - Fixed incorrect signature bytes returned in the DFU bootloader
+  *
+  *  \section Sec_ChangeLog130901 Version 130901
+  *  <b>New:</b>
+  *  - Core:
+  *   - Added additional MIDI command definitions to the MIDI class driver (thanks to Daniel Dreibrodt)
+  *   - Added new CONCAT() and CONCAT_EXPANDED() convenience macros
+  *   - Added new Printer Device Class driver
+  *   - Added support for the XMEGA C3 Xplained board
+  *   - Added support for the U2S board (thanks to megal0maniac)
+  *   - Added TWI Master driver for the XMEGA architecture (thanks to Michael Janssen)
+  *  - Library Applications:
+  *   - Added new Printer class bootloader
+  *   - Added new Mass Storage class bootloader
+  *   - Added XMEGA support for class driver device demos (where applicable)
+  *   - Added Python host application example for the Generic HID class driver device demo
+  *   - Added Python alternative host application for the HID class bootloader
+  *
+  *  <b>Changed:</b>
+  *  - Core:
+  *   - Updated the BUILD build system module to produce binary BIN files in addition to Intel HEX files
+  *   - Updated the Android Accessory Class to accept version 2 protocol devices (with version 1 functionality)
+  *   - All board drivers now implement dummy functions and constants when BOARD is set to NONE
+  *   - Added missing LEDs to the XMEGA A3BU Xplained board LED driver (thanks to Michael Janssen)
+  *   - Changed board Dataflash drivers to automatically configure the appropriate SPI interface for the selected board
+  *  - Library Applications:
+  *   - Re-added Set Control Line State request handling to the CDC class bootloader to prevent issues with the .NET serial
+  *     class (thanks to Erik Lins)
+  *   - TemperatureDataLogger project dummy RTC mode now tracks real time (thanks to David Lazarus)
+  *
+  *  <b>Fixed:</b>
+  *  - Core:
+  *   - Fixed Low Speed USB devices broken when using the library HID Class driver (thanks to Michael)
+  *   - Fixed possible register corruption in USB Host mode on AVR8 devices when ORDERED_EP_CONFIG is used (thanks to Martin Aakerberg)
+  *   - Fixed Pipe_GetBoundEndpointAddress() returning invalid endpoint directions on AVR8 architecture devices (thanks to decerri)
+  *     under some circumstances
+  *   - Fixed incorrect USB device state set when a suspended LUFA device is woken while addressed but not configured (thanks to Balaji Krishnan)
+  *   - Fixed broken USART SPI driver for the AVR8 architecture due to incorrect initialization
+  *   - Fixed re-enumeration issue of XMEGA architecture targets (thanks to Jaroslav Jedlinsky)
+  *   - Fixed error receiving PIMA events via the Still Image Host class driver
+  *  - Library Applications:
+  *   - Added handler for SCSI_CMD_START_STOP_UNIT in demos using the Mass Storage class, to prevent ejection errors on *nix systems due to an
+  *     unknown SCSI command
+  *   - Fixed incorrect HID report descriptor generated for 16-bit axis ranges by the HID_DESCRIPTOR_MOUSE() and HID_DESCRIPTOR_JOYSTICK()
+  *     macros (thanks to Armory)
+  *   - Fixed incorrect HID report descriptor generated for button multiples of 8 by the HID_DESCRIPTOR_MOUSE() and HID_DESCRIPTOR_JOYSTICK()
+  *     macros
+  *   - Fixed race condition in the DFU class bootloader causing failed device reprogramming in some circumstances (thanks to Luis Mendes)
+  *   - Fixed incorrect time/date configuration data order in the TempDataLogger host application (thanks to David Lazarus)
+  *
+  *  \section Sec_ChangeLog130303 Version 130303
+  *  <b>New:</b>
   *  - Core:
   *   - Added support for the Arduino Leonardo board
   *   - Added support for the Atmel UC3-A3 Xplained board
   *   - Added support for the Xevelabs USB2AX revision 3.1 board
+  *   - Added support for the Dimex Stange-ISP board (thanks to Gerhard Wesser)
   *   - Added new \c doxygen_upgrade and \c doxygen_create targets to the DOXYGEN build system module
+  *   - Added new Board Hardware Information board driver
   *  - Library Applications:
   *   - Added a different device serial number when the AVRISP-MKII Clone project is in libUSB compatibility mode, so that
   *     both the libUSB and Jungo drivers can be installed at the same time without having to use a filter driver
   *     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 "bc" command line calculator tool
+  *   - Updated bootloader makefiles to remove dependency on the \c bc command line calculator tool
+  *   - Updated AVRISP-MKII Clone Programmer project so that the SCK clock period is saved in EEPROM (thanks to Gerhard Wesser)
+  *   - Changed all *_SendByte() function prototypes to accept a void pointer for the input buffer (thanks to Simon Kuppers)
   *
   *  <b>Fixed:</b>
   *  - Core:
+  *   - Fixed incorrectly issuing STALL response to unsupported control request SETUP packets, rather than in the data/status stage
   *   - Fixed inverted LEDs_GetLEDs() function implementation for the Benito, Minimus and Arduino UNO boards
-  *   - Fixed missing Win-32bit compatibility sections in the LUFA INF driver files (thanks to Christan Beharrell)
+  *   - 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 definitions of \c HID_KEYBOARD_LED_KANA, \c HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN and \c HID_KEYBOARD_SC_KEYPAD_EQUAL_SIGN_AS400
   *     and added a missing definition for \c HID_KEYBOARD_SC_APPLICATION (thanks to David Monro)
   *   - Fixed maximum allowed keyboard key code usage of \c 0x65 rather than \c 0xFF for the \c HID_DESCRIPTOR_KEYBOARD() macro (thanks to David Monro)
+  *   - Fixed hardware race condition that could cause failed device enumerations for AVR8 and UC3 architectures (thanks to Mike Beyhs)
+  *   - Fixed incorrect Minimus board LED definitions (thanks to Joonas Lahtinen)
+  *   - Fixed incorrect ordering of the linker options in the build system causing link failures in some cases
+  *   - Fixed bug in the TWI peripheral driver for the AVR8 devices causing incorrect failure codes to be returned in some cases (thanks to Peter K)
+  *   - Fixed swapped LED3 and LED4 masks for the Olimex-32U4 development board LED driver
+  *   - Fixed potential NULL pointer dereference in the HID Host mode Class Driver (thanks to Pavel Kuzmin)
   *  - Library Applications:
   *   - Fixed broken RESET_TOGGLES_LIBUSB_COMPAT compile time option in the AVRISP-MKII project
   *   - Fixed incompatibility in the CDC class bootloader on some systems (thanks to Sylvain Munaut)
   *   - Fixed lengthy timeouts in the USBtoSerial project if no application on the host is consuming data (thanks to Nicolas Saugnier)
   *   - Fixed lengthy automatic data flushing in the CDC and MIDI device class drivers
+  *   - Fixed incorrect LED masks for received data display in the Device GenericHID demos (thanks to Denys Berkovskyy)
+  *   - Fixed incorrect output in the HIDReportViewer project when no device is connected (thanks to Pavel Kuzmin)
   *
   *  \section Sec_ChangeLog120730 Version 120730
   *  <b>New:</b>
   *   - 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 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:
   *   - 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 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 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)  
+  *   - 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
   *   - 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
+  *   - 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:
   *  - Added new RNDIS Ethernet Host ClassDriver demo
   *  - Added CDC_Host_Flush() function to the CDC Host Class driver to flush sent data to the attached device
   *  - Added PDI programming support for XMEGA devices to the AVRISP programmer project (thanks to Justin Mattair)
-  *  - Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different dataflash used
+  *  - Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different Dataflash used
   *    on the first revision boards compared to the one mounted on later revisions
   *  - Added new HID_ALIGN_DATA() macro to return the pre-retrieved value of a HID report item, left-aligned to a given datatype
   *  - Added new PreviousValue to the HID Report Parser report item structure, for easy monitoring of previous report item values
   *    Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe
   *    bank management API
   *  - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel from Curetis AG)
-  *  - Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
+  *  - Updated library Doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
   *  - Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity
   *  - Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway
   *  - Renamed the main Drivers/AT90USBXXX directory to Drivers/Peripheral, renamed the Serial_Stream driver to SerialStream
   *  - All HID demos now pass the USB.org automated HID compliance tests
   *  - Polling interval of the interrupt endpoint in the CDC based demos changed to 0xFF to fix problems on Linux systems
   *  - Changed stream functions to accept a new callback function, with NO_STREAM_CALLBACKS used to disable all callbacks
-  *  - Mass Storage demo dataflash management routines changed to use the endpoint stream functions
+  *  - Mass Storage demo Dataflash management routines changed to use the endpoint stream functions
   *  - Added AVRStudio project files for each demo in addition to the existing Programmer's Notepad master project file
   *  - Re-added call to ReconfigureUSART() in USBtoSerial SetLineCoding request, so that baud rate changes
   *    are reflected in the hardware (change was previously lost)
   *    size bits not required for the routines (improves compatibility with devices)
   *  - Fixed AudioInput demo - now correctly sends sampled audio to the host PC
   *  - Fixed AudioOutput demo once more -- apparently Windows requires endpoint packets to be >=192 bytes
-  *  - Shrunk round-robbin scheduler code slightly via the use of struct pointers rather than array indexes
+  *  - Shrunk round-robin scheduler code slightly via the use of struct pointers rather than array indexes
   *  - Fixed off-by-one error when determining if the Usage Stack is full inside the HID Report parser
   *  - Renamed Magstripe.h to MagstripeHW.h and moved driver out of the library and into the MagStripe demo folder
   *  - Added preprocessor checks to enable C linkage on the library components when used with a C++ compiler
   *  - Added support for custom board drivers to be supplied by selecting the board type as BOARD_USER, and
   *    placing board drivers in {Application Directory}/Board/
   *  - PLL is now stopped and USB clock is frozen when detached from host in device mode, to save power
-  *  - Joystick defines are now in synch with the schematics - orientation will be rotated for the USBKEY
+  *  - Joystick defines are now in sync with the schematics - orientation will be rotated for the USBKEY
   *  - Fixed USB_DEV_IsUSBSuspended() - now checks the correct register
   *  - Fixed data transfers to devices when in host mode
   *  - Renamed USB_DEV_OPT_HIGHSPEED to USB_DEV_OPT_FULLSPEED and USB_HOST_IsDeviceHighSpeed() to
   *  - AVR_HOST_GetDeviceConfigDescriptor routine no longer modifies ConfigSizePtr if a valid buffer
   *    pointer is passed
   *  - Added ALLOCABLE_BYTES to DynAlloc, and added code to make the size of key storage variables
-  *    dependant on size of memory parameters passed in via the user project's makefile
+  *    dependent on size of memory parameters passed in via the user project's makefile
   *  - Fixed incorrect device reset routine being called in USBTask
   *  - Devices which do not connect within the standard 300mS are now supported
   *  - Removed incorrect ATTR_PURE from Scheduler_SetTaskMode(), which was preventing tasks from being