Spell check code and manual pages. Remove custom Doxygen CSS stylesheet, as the new 1.7 Doxygen's default stylesheet is much better.
This commit is contained in:
		
							parent
							
								
									13ea700b35
								
							
						
					
					
						commit
						711542ee89
					
				
					 40 changed files with 140 additions and 687 deletions
				
			
		| 
						 | 
				
			
			@ -11,10 +11,10 @@
 | 
			
		|||
 *  past and planned changes, and links to other projects incorporating LUFA.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Subsections:</b>
 | 
			
		||||
 *  - \subpage Page_DeviceSupport Current Device and Hardware Support
 | 
			
		||||
 *  - \subpage Page_Resources LUFA and USB Related Resources
 | 
			
		||||
 *  - \subpage Page_ChangeLog Project Changelog
 | 
			
		||||
 *  - \subpage Page_FutureChanges Planned Changes to the Library
 | 
			
		||||
 *  - \subpage Page_LUFAPoweredProjects Other Projects Using LUFA
 | 
			
		||||
 *  \li \subpage Page_DeviceSupport - Current Device and Hardware Support
 | 
			
		||||
 *  \li \subpage Page_Resources - LUFA and USB Related Resources
 | 
			
		||||
 *  \li \subpage Page_ChangeLog - Project Changelog
 | 
			
		||||
 *  \li \subpage Page_FutureChanges - Planned Changes to the Library
 | 
			
		||||
 *  \li \subpage Page_LUFAPoweredProjects - Other Projects Using LUFA
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
 *    <b>License:</b> Atmel Limited License (see Atmel download for details) \n
 | 
			
		||||
 *    <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
 | 
			
		||||
 *    <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
 | 
			
		||||
 *                        USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
 | 
			
		||||
 *                        USB AVR is separated into a separate download stack, which is both AVR-GCC and IAR compatible.
 | 
			
		||||
 *
 | 
			
		||||
 *  - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
 | 
			
		||||
 *    <b>Cost:</b> Free \n
 | 
			
		||||
| 
						 | 
				
			
			@ -59,4 +59,4 @@
 | 
			
		|||
 *                        Used in many commercial and non-commercial designs, with user-submitted projects available for viewing
 | 
			
		||||
 *                        on the company's website. Uses C language code mixed with assembly for time-critical sections.
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,7 @@
 | 
			
		|||
  *  - Removed the cast to uint16_t on the set baud rate in the USBtoSerial project, so that the higher >1M baud rates can be
 | 
			
		||||
  *    selected (thanks to Steffan Woltjer)
 | 
			
		||||
  *  - Removed software PDI and TPI emulation from the AVRISP-MKII clone project as it was very buggy and slow - PDI and TPI must
 | 
			
		||||
  *    now be implemented via seperate programming headers
 | 
			
		||||
  *    now be implemented via separate programming headers
 | 
			
		||||
  *  - The CDC class bootloader now uses a watchdog reset rather than a soft-reset when exited to ensure that all hardware is
 | 
			
		||||
  *    properly reset to their defaults
 | 
			
		||||
  *  - Device mode class driver callbacks are now fired before the control request status stage is sent to prevent the host from
 | 
			
		||||
| 
						 | 
				
			
			@ -79,7 +79,7 @@
 | 
			
		|||
  *  - Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly
 | 
			
		||||
  *    selected when the ISR completes
 | 
			
		||||
  *  - Fixed AVRISP-MKII clone project not correctly issuing LOAD EXTENDED ADDRESS commands when the extended address
 | 
			
		||||
  *    boundary is crossed during programming or readback (thanks to Gerard Sexton)
 | 
			
		||||
  *    boundary is crossed during programming or read back (thanks to Gerard Sexton)
 | 
			
		||||
  *  - Fixed warnings when building the AVRISP-MKII clone project with the ENABLE_XPROG_PROTOCOL compile time option disabled
 | 
			
		||||
  *  - Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin
 | 
			
		||||
  *  - Fixed TWI_StartTransmission() corrupting the contents of the GPIOR0 register
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@
 | 
			
		|||
  *  - Fixed Set Configuration requests not being stalled until the host has set the device's address
 | 
			
		||||
  *  - Fixed Host mode HID class driver not sending the correct report type when HID_Host_SendReportByID() was called and the 
 | 
			
		||||
  *    HID_HOST_BOOT_PROTOCOL_ONLY compile time option is set
 | 
			
		||||
  *  - Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occuring while the control endpoint
 | 
			
		||||
  *  - Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occurring while the control endpoint
 | 
			
		||||
  *    request is being processed, causing possible lockups if a USB interrupt occurs during a transfer
 | 
			
		||||
  *  - Remove incorrect Abstract Call Management class specific descriptor from the CDC demos, bootloaders and projects
 | 
			
		||||
  *
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +123,7 @@
 | 
			
		|||
  *  - Added ADC MUX masks for the standard ADC input channels on all AVR models with an ADC, altered demos to use these masks
 | 
			
		||||
  *    as on some models, the channel number is not identical to its single-ended ADC MUX mask
 | 
			
		||||
  *  - New Webserver project, a RNDIS host USB webserver using the open source uIP TCP/IP network stack and FatFS library
 | 
			
		||||
  *  - New BOARD value option BOARD_NONE (equivelent to not specifying BOARD) which will remove all board hardware drivers which
 | 
			
		||||
  *  - New BOARD value option BOARD_NONE (equivalent to not specifying BOARD) which will remove all board hardware drivers which
 | 
			
		||||
  *    do not adversely affect the code operation (currently only the LEDs driver)
 | 
			
		||||
  *  - Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) and LED report masks (KEYBOARD_LED_*) to the HID class driver and
 | 
			
		||||
  *    Keyboard demos
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +154,7 @@
 | 
			
		|||
  *  - Fixed Benito project not resetting the target AVR automatically when programming has completed
 | 
			
		||||
  *  - Fixed DFU bootloader programming not discarding the correct number of filler bytes from the host when non-aligned programming
 | 
			
		||||
  *    ranges are specified (thanks to Thomas Bleeker)
 | 
			
		||||
  *  - Fixed CDC and RNDIS host demos and class drivers - bidirectional endpoints should use two seperate pipes, not one half-duplex pipe
 | 
			
		||||
  *  - Fixed CDC and RNDIS host demos and class drivers - bidirectional endpoints should use two separate pipes, not one half-duplex pipe
 | 
			
		||||
  *  - Fixed Pipe_IsEndpointBound() not taking the endpoint's direction into account
 | 
			
		||||
  *  - Fixed EEPROM and FLASH ISP programming in the AVRISP project
 | 
			
		||||
  *  - Fixed incorrect values of USB_CONFIG_ATTR_SELFPOWERED and USB_CONFIG_ATTR_REMOTEWAKEUP tokens (thanks to Claus Christensen)
 | 
			
		||||
| 
						 | 
				
			
			@ -162,7 +162,7 @@
 | 
			
		|||
  *  - Fixed SerialStream driver not setting stdin to the created serial stream (thanks to Mike Alexander)
 | 
			
		||||
  *  - Fixed USB_GetHIDReportSize() returning the number of bits in the specified report instead of bytes
 | 
			
		||||
  *  - Fixed AVRISP project not extending the command delay after each successful page/word/byte program
 | 
			
		||||
  *  - Fixed accuracy of the SERIAL_UBBRVAL() and SERIAL_2X_UBBRVAL() macros for higher baudrates (thanks to Renaud Cerrato)
 | 
			
		||||
  *  - Fixed accuracy of the SERIAL_UBBRVAL() and SERIAL_2X_UBBRVAL() macros for higher baud rates (thanks to Renaud Cerrato)
 | 
			
		||||
  *
 | 
			
		||||
  *  \section Sec_ChangeLog091223 Version 091223
 | 
			
		||||
  *
 | 
			
		||||
| 
						 | 
				
			
			@ -186,8 +186,8 @@
 | 
			
		|||
  *  - Added new NO_DEVICE_REMOTE_WAKEUP and NO_DEVICE_SELF_POWER compile time options
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Changed:</b>
 | 
			
		||||
  *  - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of keycodes
 | 
			
		||||
  *    as this relied on non-standard OS driver behaviour to repeat key groups
 | 
			
		||||
  *  - Removed code in the Keyboard demos to send zeroed reports between two reports with differing numbers of key codes
 | 
			
		||||
  *    as this relied on non-standard OS driver behavior to repeat key groups
 | 
			
		||||
  *  - The SCSI_Request_Sense_Response_t and SCSI_Inquiry_Response_t type defines are now part of the Mass Storage Class
 | 
			
		||||
  *    driver common defines, rather than being defined in the Host mode Class driver section only
 | 
			
		||||
  *  - The USB_MODE_HOST token is now defined even when host mode is not available
 | 
			
		||||
| 
						 | 
				
			
			@ -196,7 +196,7 @@
 | 
			
		|||
  *  - All Class Drivers now return false or the "DeviceDisconnected" error code of their respective error enums when a function
 | 
			
		||||
  *    is called when no host/device is connected where possible
 | 
			
		||||
  *  - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to HOST_SENDCONTROL_DeviceDisconnected to be in line
 | 
			
		||||
  *    with the rest of the library errorcodes
 | 
			
		||||
  *    with the rest of the library error codes
 | 
			
		||||
  *  - Make MIDI device demos also turn off the on board LEDs if MIDI Note On messages are sent with a velocity of zero,
 | 
			
		||||
  *    which some devices use instead of Note Off messages (thanks to Robin Green)
 | 
			
		||||
  *  - The CDC demos are now named "VirtualSerial" instead to indicate the demos' function rather than its implemented USB class,
 | 
			
		||||
| 
						 | 
				
			
			@ -244,7 +244,7 @@
 | 
			
		|||
  *  - Added new stream creation function to the CDC Class drivers, to easily make standard I/O streams from CDC Class driver instances
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Changed:</b>
 | 
			
		||||
  *  - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library
 | 
			
		||||
  *  - Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for syntax errors in the library
 | 
			
		||||
  *  - MIDI device demos now receive MIDI events from the host and display note ON messages via the board LEDs
 | 
			
		||||
  *  - Cleanups to the Device mode Mass Storage demo application SCSI routines
 | 
			
		||||
  *  - Changed Audio Class driver sample read/write functions to be inline, to reduce the number of cycles needed to transfer
 | 
			
		||||
| 
						 | 
				
			
			@ -257,12 +257,12 @@
 | 
			
		|||
  *  - Changed MouseHostWithParser demos to check that the report items have a Mouse usage collection as a parent at some point,
 | 
			
		||||
  *    to prevent Joysticks from enumerating with the demo
 | 
			
		||||
  *  - Corrected the name of the misnamed USB_GetDeviceConfigDescriptor() function to USB_Host_GetDeviceConfigDescriptor().
 | 
			
		||||
  *  - Keyboard LowLevel/ClassDriver demos now support multiple simultaneous keypresses (up to 6) per report
 | 
			
		||||
  *  - Keyboard LowLevel/ClassDriver demos now support multiple simultaneous key presses (up to 6) per report
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Fixed:</b>
 | 
			
		||||
  *  - Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a
 | 
			
		||||
  *    device ID (thanks to Andrei Krainev)
 | 
			
		||||
  *  - Changed LUFA_VERSION_INTEGER define to use BCD values, to make comparisons eaiser
 | 
			
		||||
  *  - Changed LUFA_VERSION_INTEGER define to use BCD values, to make comparisons easier
 | 
			
		||||
  *  - Fixed issue in the HID Host class driver's HID_Host_SendReportByID() routine using the incorrect mode (control/pipe)
 | 
			
		||||
  *    to send report to the attached device
 | 
			
		||||
  *  - Fixed ClassDriver AudioOutput device demo not selecting an audio output mode
 | 
			
		||||
| 
						 | 
				
			
			@ -282,7 +282,7 @@
 | 
			
		|||
  *  - Added new host mode class drivers and matching demos to the library for rapid application development
 | 
			
		||||
  *  - Added flag to the HID report parser to indicate if a device has multiple reports
 | 
			
		||||
  *  - Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and
 | 
			
		||||
  *    USB_Device_DisableSOFEvents() macros to give bus-synchronised millisecond interrupts when in USB device mode
 | 
			
		||||
  *    USB_Device_DisableSOFEvents() macros to give bus-synchronized millisecond interrupts when in USB device mode
 | 
			
		||||
  *  - Added new Endpoint_SetEndpointDirection() macro for bidirectional endpoints
 | 
			
		||||
  *  - Added new AVRISP project, a LUFA powered clone of the Atmel AVRISP-MKII programmer
 | 
			
		||||
  *  - Added ShutDown() functions for all hardware peripheral drivers, so that peripherals can be turned off after use
 | 
			
		||||
| 
						 | 
				
			
			@ -302,10 +302,10 @@
 | 
			
		|||
  *  - Added return values to the CDC and MIDI class driver transmit functions
 | 
			
		||||
  *  - Optimized Endpoint_Read_Word_* and Pipe_Read_Word_* macros to reduce compiled size
 | 
			
		||||
  *  - Added non-null function parameter pointer restrictions to USB Class drivers to improve user code reliability
 | 
			
		||||
  *  - Added new "Common" section to the class drivers, to hold all mode-independant definitions for clarity
 | 
			
		||||
  *  - Added new "Common" section to the class drivers, to hold all mode-independent definitions for clarity
 | 
			
		||||
  *  - Moved SCSI command/sense constants into the Mass Storage Class driver, instead of the user-code
 | 
			
		||||
  *  - Altered the SCSI commands in the LowLevel Mass Storage Host to save on FLASH space by reducing function calls
 | 
			
		||||
  *  - Changed the parameters and behaviour of the USB_GetDeviceConfigDescriptor() function so that it now performs size checks
 | 
			
		||||
  *  - Changed the parameters and behavior of the USB_GetDeviceConfigDescriptor() function so that it now performs size checks
 | 
			
		||||
  *    and data validations internally, to simplify user code
 | 
			
		||||
  *  - Changed HIDParser to only zero out important values in the Parsed HID Report Item Information structure to save cycles
 | 
			
		||||
  *  - The HID report parser now always processed FEATURE items - HID_ENABLE_FEATURE_PROCESSING token now has no effect
 | 
			
		||||
| 
						 | 
				
			
			@ -314,7 +314,7 @@
 | 
			
		|||
  *  - Add in new invalid event hook check targets to project makefiles to produce compilation errors when invalid event names
 | 
			
		||||
  *    are used in a project
 | 
			
		||||
  *  - The HID Report Parser now gives information on the total length of each report within a HID interface
 | 
			
		||||
  *  - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_* and
 | 
			
		||||
  *  - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_* and
 | 
			
		||||
  *    USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so both may be used
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Fixed:</b>
 | 
			
		||||
| 
						 | 
				
			
			@ -325,7 +325,7 @@
 | 
			
		|||
  *  - Fixed HID report parser not resetting the FEATURE item count when a REPORT ID item is encountered
 | 
			
		||||
  *  - Fixed USBtoSerial demos not reading in UDR1 when the USART receives data but the USB interface is not enumerated,
 | 
			
		||||
  *    causing continuous USART receive interrupts
 | 
			
		||||
  *  - Fixed misspelt event name in the Class driver USBtoSerial demo, preventing correct operation
 | 
			
		||||
  *  - Fixed misspelled event name in the Class driver USBtoSerial demo, preventing correct operation
 | 
			
		||||
  *  - Fixed invalid data being returned when a GetStatus request is issued in Device mode with an unhandled data recipient
 | 
			
		||||
  *  - Added hardware USART receive interrupt and software buffering to the Benito project to ensure received data is not
 | 
			
		||||
  *    missed or corrupted
 | 
			
		||||
| 
						 | 
				
			
			@ -348,7 +348,7 @@
 | 
			
		|||
  *  <b>New:</b>
 | 
			
		||||
  *  - Added new device class drivers and matching demos to the library for rapid application development
 | 
			
		||||
  *  - Added new PrinterHost demo (thanks to John Andrews)
 | 
			
		||||
  *  - Added USB Missle Launcher project, submitted by Dave Fletcher
 | 
			
		||||
  *  - Added USB Missile Launcher project, submitted by Dave Fletcher
 | 
			
		||||
  *  - Added new Benito Arduino Programmer project
 | 
			
		||||
  *  - Added incomplete device and host mode demos for later enhancement
 | 
			
		||||
  *  - Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%
 | 
			
		||||
| 
						 | 
				
			
			@ -375,7 +375,7 @@
 | 
			
		|||
  *  - Added 404 Not Found errors to the webserver in the RNDIS demos to indicate invalid URLs
 | 
			
		||||
  *  
 | 
			
		||||
  *  <b>Changed:</b>
 | 
			
		||||
  *  - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)
 | 
			
		||||
  *  - Deprecated pseudo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)
 | 
			
		||||
  *  - The device-mode CALLBACK_USB_GetDescriptor() function now has an extra parameter so that the memory space in which the requested
 | 
			
		||||
  *    descriptor is located can be specified. This means that descriptors can now be located in multiple memory spaces within a device.
 | 
			
		||||
  *  - Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality
 | 
			
		||||
| 
						 | 
				
			
			@ -390,7 +390,7 @@
 | 
			
		|||
  *    the existing Pipe_SetFiniteINRequests() function
 | 
			
		||||
  *  - Changed F_CLOCK entries in project makefiles to alias to F_CPU by default, as this is the most common case
 | 
			
		||||
  *  - Host mode demos now use sane terminal escape codes, so that text is always readable and events/program output is visually distinguished
 | 
			
		||||
  *    from oneanother using foreground colours
 | 
			
		||||
  *    from one another using foreground colours
 | 
			
		||||
  *  - Internal per-device preprocessing conditions changed to per-device series rather than per-controller group for finer-grain
 | 
			
		||||
  *    internal control
 | 
			
		||||
  *  - Interrupts are no longer disabled during the processing of Control Requests on the default endpoint while in device mode
 | 
			
		||||
| 
						 | 
				
			
			@ -398,13 +398,13 @@
 | 
			
		|||
  *  - Removed SINGLE_DEVICE_CONFIGURATION compile time option in favour of the new FIXED_NUM_CONFIGURATIONS option so that the exact number
 | 
			
		||||
  *    of device configurations can be defined statically
 | 
			
		||||
  *  - Removed VBUS events, as they are already exposed to the user application via the regular device connection and disconnection events
 | 
			
		||||
  *  - Renamed and altered existing events to properly seperate out Host and Device mode events
 | 
			
		||||
  *  - Renamed and altered existing events to properly separate out Host and Device mode events
 | 
			
		||||
  *
 | 
			
		||||
  *  <b>Fixed:</b>
 | 
			
		||||
  *  - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed to fix
 | 
			
		||||
  *    bootloaders on some of the USB AVR devices where avr-libc erronously defines RAMPZ
 | 
			
		||||
  *    bootloaders on some of the USB AVR devices where avr-libc erroneously defines RAMPZ
 | 
			
		||||
  *  - Fixes to MassStorageHost for better device compatibility (increase command timeout, change MassStore_WaitForDataReceived()
 | 
			
		||||
  *    to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while trasferring data
 | 
			
		||||
  *    to only unfreeze and check one data pipe at a time) to prevent incorrect device enumerations and freezes while transferring data
 | 
			
		||||
  *  - Make Pipe_ConfigurePipe() mask the given endpoint number against PIPE_EPNUM_MASK to ensure the endpoint IN direction bit is
 | 
			
		||||
  *    cleared to prevent endpoint type corruption
 | 
			
		||||
  *  - Fixed issue opening CDC-ACM ports on hosts when the CDC device tries to send data before the host has set the line encoding
 | 
			
		||||
| 
						 | 
				
			
			@ -423,7 +423,7 @@
 | 
			
		|||
  *  - Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered
 | 
			
		||||
  *  - Fixed incorrect BUTTONS_BUTTON1 for the STK526 target
 | 
			
		||||
  *  - Fixed RNDIS demos freezing when more than one connection was attempted simultaneously, causing memory corruption
 | 
			
		||||
  *  - Fixed USBtoSerial demo receiving noise from the USART due to pullup not being enabled
 | 
			
		||||
  *  - Fixed USBtoSerial demo receiving noise from the USART due to pull-up not being enabled
 | 
			
		||||
  *
 | 
			
		||||
  *
 | 
			
		||||
  *  \section Sec_ChangeLog090605 Version 090605
 | 
			
		||||
| 
						 | 
				
			
			@ -439,7 +439,7 @@
 | 
			
		|||
  *    interface is skipped
 | 
			
		||||
  *  - Clarified the size of library tokens which accept integer values in the Compile Time Tokens page, values now use the smallest datatype
 | 
			
		||||
  *    inside the library that is able to hold their defined value to save space
 | 
			
		||||
  *  - Removed DESCRIPTOR_ADDRESS() macro as it was largely supurflous and only served to obfuscate code
 | 
			
		||||
  *  - Removed DESCRIPTOR_ADDRESS() macro as it was largely superfluous and only served to obfuscate code
 | 
			
		||||
  *  - Rewritten event system to remove all macros, to make user code clearer
 | 
			
		||||
  *  - Fixed incorrect ENDPOINT_EPNUM_MASK mask preventing endpoints above EP3 from being selected (thanks to Jonathan Oakley)
 | 
			
		||||
  *  - Removed STREAM_CALLBACK() macro - callbacks now use regular function definitions to clarify user code
 | 
			
		||||
| 
						 | 
				
			
			@ -447,10 +447,10 @@
 | 
			
		|||
  *  - USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed
 | 
			
		||||
  *  - Fixed incorrect PID value being used in the USBtoSerial project (thanks to Phill)
 | 
			
		||||
  *  - Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the
 | 
			
		||||
  *    LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs
 | 
			
		||||
  *    LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preparation for the new USB class APIs
 | 
			
		||||
  *  - Moved out each demos' functionality library files (e.g. Ring Buffer library) to /Lib directories for a better directory structure
 | 
			
		||||
  *  - Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt
 | 
			
		||||
  *  - Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition
 | 
			
		||||
  *  - Fixed possible enumeration errors from spin-loops which may fail to exit if the USB connection is severed before the exit condition
 | 
			
		||||
  *    becomes true
 | 
			
		||||
  *
 | 
			
		||||
  *
 | 
			
		||||
| 
						 | 
				
			
			@ -500,7 +500,7 @@
 | 
			
		|||
  *    device descriptor
 | 
			
		||||
  *  - Renamed functions in the HID parser to have a "USB_" prefix and the acronym "HID" in the name
 | 
			
		||||
  *  - Fixed incorrect HID interface class and subclass values in the Mouse and KeyboardMouse demos (thanks to Brian Dickman)
 | 
			
		||||
  *  - Capitalised the "Descriptor_Search" and "Descriptor_Search_Comp" prefixes of the values in the DSearch_Return_ErrorCodes_t and
 | 
			
		||||
  *  - Capitalized the "Descriptor_Search" and "Descriptor_Search_Comp" prefixes of the values in the DSearch_Return_ErrorCodes_t and
 | 
			
		||||
  *    DSearch_Comp_Return_ErrorCodes_t enums
 | 
			
		||||
  *  - Removed "ERROR" from the enum names in the endpoint and pipe stream error code enums
 | 
			
		||||
  *  - Renamed the USB_PowerOnErrorCodes_t enum to USB_InitErrorCodes_t, renamed the POWERON_ERROR_NoUSBModeSpecified enum value to
 | 
			
		||||
| 
						 | 
				
			
			@ -607,7 +607,7 @@
 | 
			
		|||
  *  - Added new "dfu" and "flip" programming targets to project makefiles
 | 
			
		||||
  *  - HID_PARSE_Sucessful enum member typo corrected to HID_PARSE_Successful
 | 
			
		||||
  *  - Changed COLLECTION item structures in the HID descriptor parser to include the collection's Usage Page value
 | 
			
		||||
  *  - Serial driver now sets Tx line as output, enables pullup on Rx line
 | 
			
		||||
  *  - Serial driver now sets Tx line as output, enables pull-up on Rx line
 | 
			
		||||
  *  - Fixed smaller USB AVRs raising multiple connection and disconnection events when NO_LIMITED_CONTROLLER_CONNECT is disabled
 | 
			
		||||
  *  - Added HOST_DEVICE_SETTLE_DELAY_MS to give the host delay after a device is connected before it is enumerated
 | 
			
		||||
  *  - Fixed KeyboardHostWithParser demo linking against the wrong global variables
 | 
			
		||||
| 
						 | 
				
			
			@ -724,7 +724,7 @@
 | 
			
		|||
  *  - Fixed DFU bootloader EEPROM programming mode wiping first flash page
 | 
			
		||||
  *  - Fixed Clear/Set Feature device standard request processing code (fixing MassStorage demo in the process)
 | 
			
		||||
  *  - Added support for the ATMEGA16U4 AVR microcontroller
 | 
			
		||||
  *  - Library licence changed from LGPLv3 to MIT license
 | 
			
		||||
  *  - Library license changed from LGPLv3 to MIT license
 | 
			
		||||
  *
 | 
			
		||||
  *
 | 
			
		||||
  *  \section Sec_ChangeLog151 Version 1.5.1 - Released 31st July, 2008
 | 
			
		||||
| 
						 | 
				
			
			@ -786,7 +786,7 @@
 | 
			
		|||
  *  - Corrected OTG.h is now included when the AVR supports both Host and Device modes, for creating OTG products
 | 
			
		||||
  *  - USB_DeviceEnumerationComplete event is now also fired when in device mode and the host has finished its enumeration
 | 
			
		||||
  *  - Interrupt driven demos now properly restore previously selected endpoint when ISR is complete
 | 
			
		||||
  *  - USB_HOST_TIMEOUT_MS is now overridable in the user project makefile to a custom fixed timeout value
 | 
			
		||||
  *  - The value of USB_HOST_TIMEOUT_MS can now be overridden in the user project makefile to a custom fixed timeout value
 | 
			
		||||
  *  - Renamed USB_Host_SOFGeneration_* macros to more friendly USB_Host_SuspendBus(), USB_Host_ResumeBus()
 | 
			
		||||
  *    and USB_Host_IsBusSuspended()
 | 
			
		||||
  *  - Renamed *_*_Is* macros to *_Is* to make all flag checking macros consistent, Pipe_SetInterruptFreq() is now
 | 
			
		||||
| 
						 | 
				
			
			@ -916,7 +916,7 @@
 | 
			
		|||
  *  \section Sec_ChangeLog120 Version 1.2.0 - Released February 4th, 2008
 | 
			
		||||
  *
 | 
			
		||||
  *  - Added USB_DeviceEnumerationComplete event for host mode
 | 
			
		||||
  *  - Added new Scheduler_Init routine to preprepare the scheduler, so that tasks can be started and
 | 
			
		||||
  *  - Added new Scheduler_Init routine to prepare the scheduler, so that tasks can be started and
 | 
			
		||||
  *    stopped before the scheduler has been started (via Scheduler_Start)
 | 
			
		||||
  *  - Connection events in both Device and Host mode are now interrupt-driven, allowing the USB management
 | 
			
		||||
  *    task to be stopped when the USB is not connected to a host or device
 | 
			
		||||
| 
						 | 
				
			
			@ -935,7 +935,7 @@
 | 
			
		|||
  *
 | 
			
		||||
  *  - Fixed DCONNI interrupt being enabled accidentally after a USB reset
 | 
			
		||||
  *  - Fixed DDISCI interrupt not being disabled when a device is not connected
 | 
			
		||||
  *  - Added workaround for powerless pullup devices causing false disconnect interrupts
 | 
			
		||||
  *  - Added workaround for powerless pull-up devices causing false disconnect interrupts
 | 
			
		||||
  *  - Added USB_DeviceEnumerationFailed event for Host mode
 | 
			
		||||
  *  - AVR_HOST_GetDeviceConfigDescriptor routine no longer modifies ConfigSizePtr if a valid buffer
 | 
			
		||||
  *    pointer is passed
 | 
			
		||||
| 
						 | 
				
			
			@ -947,8 +947,8 @@
 | 
			
		|||
  *    started/stopped, as well as USB_InitTaskPointer(), which was breaking dual device/host USB projects
 | 
			
		||||
  *  - Changed scheduler to use the task name rather than IDs for setting the task mode, eliminating the
 | 
			
		||||
  *    need to have a task ID list
 | 
			
		||||
  *  - ID transistion interrupt now raises the appropriate device/host disconnect event if device attached
 | 
			
		||||
  *  - Fixed double VBUS change (and VBUS -) event when detatching in device mode
 | 
			
		||||
  *  - ID transition interrupt now raises the appropriate device/host disconnect event if device attached
 | 
			
		||||
  *  - Fixed double VBUS change (and VBUS -) event when detaching in device mode
 | 
			
		||||
  *  - Added ability to disable ANSI terminal codes by the defining of DISABLE_TERMINAL_CODES in makefile
 | 
			
		||||
  *  - Removed return from ConfigurePipe and ConfigureEndpoint functions - use Pipe_IsConfigured() and 
 | 
			
		||||
  *    Endpoint_IsConfigured() after calling the config functions to determine success
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
/** \page Page_TokenSummary Summary of Compile Tokens
 | 
			
		||||
 *
 | 
			
		||||
 *  The following lists all the possible tokens which can be defined in a project makefile, and passed to the
 | 
			
		||||
 *  compiler via the -D switch, to alter the LUFA library code. These tokens may alter the library behaviour,
 | 
			
		||||
 *  compiler via the -D switch, to alter the LUFA library code. These tokens may alter the library behavior,
 | 
			
		||||
 *  or remove features unused by a given application in order to save flash space.
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
 *  By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
 | 
			
		||||
 *  communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
 | 
			
		||||
 *  Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
 | 
			
		||||
 *  mode can be removed to save space in the compiled application by defining this token. When defined, it is still neccesary
 | 
			
		||||
 *  mode can be removed to save space in the compiled application by defining this token. When defined, it is still necessary
 | 
			
		||||
 *  to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
 | 
			
		||||
 * 
 | 
			
		||||
 *  <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 *  <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
 | 
			
		||||
 *  HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
 | 
			
		||||
 *  keyboard and mouse might use report IDs to seperate the keyboard reports from the mouse reports. In order to determine the size of each
 | 
			
		||||
 *  keyboard and mouse might use report IDs to separate the keyboard reports from the mouse reports. In order to determine the size of each
 | 
			
		||||
 *  report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
 | 
			
		||||
 *  stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
 | 
			
		||||
 *  and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
 | 
			
		||||
| 
						 | 
				
			
			@ -83,11 +83,11 @@
 | 
			
		|||
 *  By default, streams are transferred internally via a loop, sending or receiving one byte per iteration before checking for a bank full
 | 
			
		||||
 *  or empty condition. This allows for multiple stream functions to be chained together easily, as there are no alignment issues. However,
 | 
			
		||||
 *  this can lead to heavy performance penalties in applications where large streams are used frequently. When this compile time option is
 | 
			
		||||
 *  used, bytes are sent or recevied in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
 | 
			
		||||
 *  used, bytes are sent or received in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
 | 
			
		||||
 *  due to the extra code required to deal with byte alignment.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>USE_STATIC_OPTIONS</b>=<i>x</i> - ( \ref Group_USBManagement ) \n
 | 
			
		||||
 *  By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
 | 
			
		||||
 *  By default, the USB_Init() function accepts dynamic options at runtime to alter the library behavior, including whether the USB pad
 | 
			
		||||
 *  voltage regulator is enabled, and the device speed when in device mode. By defining this token to a mask comprised of the USB options
 | 
			
		||||
 *  mask defines usually passed as the Options parameter to USB_Init(), the resulting compiled binary can be decreased in size by removing
 | 
			
		||||
 *  the dynamic options code, and replacing it with the statically set options. When defined, the USB_Init() function no longer accepts an
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +143,7 @@
 | 
			
		|||
 *  binary.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>DEVICE_STATE_AS_GPIOR</b> - ( \ref Group_Device ) \n
 | 
			
		||||
 *  One of the most frequenty used global variables in the stack is the USB_DeviceState global, which indicates the current state of
 | 
			
		||||
 *  One of the most frequently used global variables in the stack is the USB_DeviceState global, which indicates the current state of
 | 
			
		||||
 *  the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
 | 
			
		||||
 *  may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
 | 
			
		||||
 *  reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
 | 
			
		||||
| 
						 | 
				
			
			@ -161,7 +161,7 @@
 | 
			
		|||
 *  endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>INTERRUPT_CONTROL_ENDPOINT</b> - ( \ref Group_USBManagement ) \n
 | 
			
		||||
 *  Some applications prefer to not call the USB_USBTask() management task reguarly while in device mode, as it can complicate code significantly.
 | 
			
		||||
 *  Some applications prefer to not call the USB_USBTask() management task regularly while in device mode, as it can complicate code significantly.
 | 
			
		||||
 *  Instead, when device mode is used this token can be passed to the library via the -D switch to allow the library to manage the USB control
 | 
			
		||||
 *  endpoint entirely via USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
 | 
			
		||||
 *  when in USB device mode.
 | 
			
		||||
| 
						 | 
				
			
			@ -181,7 +181,7 @@
 | 
			
		|||
 *  This section describes compile tokens which affect USB driver stack of the LUFA library when used in Host mode.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>HOST_STATE_AS_GPIOR</b> - ( \ref Group_Host ) \n
 | 
			
		||||
 *  One of the most frequenty used global variables in the stack is the USB_HostState global, which indicates the current state of
 | 
			
		||||
 *  One of the most frequently used global variables in the stack is the USB_HostState global, which indicates the current state of
 | 
			
		||||
 *  the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
 | 
			
		||||
 *  may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
 | 
			
		||||
 *  reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,12 @@
 | 
			
		|||
 *  information on compile-time tuning of the library and other developer-related sections.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Subsections:</b>
 | 
			
		||||
 *  - \subpage Page_TokenSummary Summary of Compile Time Tokens
 | 
			
		||||
 *  - \subpage Page_Migration Migrating from an Older LUFA Version
 | 
			
		||||
 *  - \subpage Page_VIDPID Allocated USB VID and PID Values
 | 
			
		||||
 *  - \subpage Page_BuildLibrary Building as a Linkable Library
 | 
			
		||||
 *  - \subpage Page_WritingBoardDrivers How to Write Custom Board Drivers
 | 
			
		||||
 *  - \subpage Page_SoftwareBootloaderStart How to jump to the bootloader in software
 | 
			
		||||
 *  - \subpage Page_SchedulerOverview Overview of the Simple LUFA Scheduler (DEPRECATED)
 | 
			
		||||
 *  \li \subpage Page_TokenSummary - Summary of Compile Time Tokens
 | 
			
		||||
 *  \li \subpage Page_Migration - Migrating from an Older LUFA Version
 | 
			
		||||
 *  \li \subpage Page_VIDPID - Allocated USB VID and PID Values
 | 
			
		||||
 *  \li \subpage Page_BuildLibrary - Building as a Linkable Library
 | 
			
		||||
 *  \li \subpage Page_WritingBoardDrivers - How to Write Custom Board Drivers
 | 
			
		||||
 *  \li \subpage Page_SoftwareBootloaderStart - How to jump to the bootloader in software
 | 
			
		||||
 *  \li \subpage Page_SchedulerOverview - Overview of the Simple LUFA Scheduler (DEPRECATED)
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -14,11 +14,11 @@
 | 
			
		|||
 *  and supporter. Please consider donating a small amount to support this and my future Open Source projects - All
 | 
			
		||||
 *  donations are <i>greatly</i> appreciated.
 | 
			
		||||
 *
 | 
			
		||||
 *  Note that commercial entities can remove the attribution portion of the LUFA licence by a one-time fee - see
 | 
			
		||||
 *  Note that commercial entities can remove the attribution portion of the LUFA license by a one-time fee - see
 | 
			
		||||
 *  \ref Page_LicenceInfo for more details (<b>Note: Please do NOT pay this in advance through the donation link below -
 | 
			
		||||
 *  contact author for payment details.</b>).
 | 
			
		||||
 *
 | 
			
		||||
 *  \image html "http://www.pledgie.com/campaigns/6927.png?skin_name=chrome"
 | 
			
		||||
 *  <a href='http://www.pledgie.com/campaigns/6927'>Donate to this project via PayPal</a> - Thanks in Advance!
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,13 +14,13 @@
 | 
			
		|||
 *  LUFA applications using different settings, see the subsections below.
 | 
			
		||||
 *
 | 
			
		||||
 *  Most of the included demos in the /Demos/ folder come in both ClassDriver and LowLevel varieties. If you are new
 | 
			
		||||
 *  to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the premade USB
 | 
			
		||||
 *  to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the pre-made USB
 | 
			
		||||
 *  Class Drivers (\ref Group_USBClassDrivers) to simplify the use of the standard USB classes in user applications.
 | 
			
		||||
 *
 | 
			
		||||
 *  For an overview of the included library applications, bootloaders and demos, see \ref Page_LibraryApps.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Subsections:</b>
 | 
			
		||||
 *  - \subpage Page_ConfiguringApps How to Configure the Included Demos, Projects and Bootloaders
 | 
			
		||||
 *  - \subpage Page_CompilingApps How to Compile the Included Demos, Projects and Bootloaders
 | 
			
		||||
 *  - \subpage Page_ProgrammingApps How to Program an AVR with the Included Demos, Projects and Bootloaders
 | 
			
		||||
 *  \li \subpage Page_ConfiguringApps - How to Configure the Included Demos, Projects and Bootloaders
 | 
			
		||||
 *  \li \subpage Page_CompilingApps - How to Compile the Included Demos, Projects and Bootloaders
 | 
			
		||||
 *  \li \subpage Page_ProgrammingApps - How to Program an AVR with the Included Demos, Projects and Bootloaders
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 *  - <b>Clean API:</b>
 | 
			
		||||
 *    One of the main design goals of LUFA is to make the API easy to use. While LUFA is a fluid project which has undergone many
 | 
			
		||||
 *    API improvements, the API is arguably much nicer to use and easier to understand than the equivelent Atmel stack code. LUFA's
 | 
			
		||||
 *    API improvements, the API is arguably much nicer to use and easier to understand than the equivalent Atmel stack code. LUFA's
 | 
			
		||||
 *    API is also more complete than the Atmel stack, and contains many features to speed up application development.
 | 
			
		||||
 *
 | 
			
		||||
 *  - <b>Full Hardware Support:</b>
 | 
			
		||||
| 
						 | 
				
			
			@ -43,4 +43,4 @@
 | 
			
		|||
 *    As many people are now using LUFA, there is a community being built around it. You can get answers to your LUFA related questions
 | 
			
		||||
 *    quickly by either emailing the library author (subject to author's schedule) or by posting to the official LUFA support mailing list.
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
/** \page Page_LibraryApps Included Library Applications
 | 
			
		||||
 *
 | 
			
		||||
 *  The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory. Within this
 | 
			
		||||
 *  directory the demos are seperated by USB mode (Device, Host, OTG) and further seperated by the use or non-use of the
 | 
			
		||||
 *  directory the demos are separated by USB mode (Device, Host, OTG) and further separated by the use or non-use of the
 | 
			
		||||
 *  library USB Class drivers (which abstract out the actual implementation of the USB classes to simplify development even
 | 
			
		||||
 *  further at the expense of a loss of flexibility).
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -111,4 +111,4 @@
 | 
			
		|||
 *      - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
 | 
			
		||||
 *
 | 
			
		||||
 *  </small>
 | 
			
		||||
 */
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
 *  Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n
 | 
			
		||||
 *  Author's Website: http://www.fourwalledcubicle.com \n
 | 
			
		||||
 *  Development Blog: http://www.fourwalledcubicle.com/blog \n
 | 
			
		||||
 *  Commercial Licences: http://fourwalledcubicle.com/PurchaseLUFA.php \n
 | 
			
		||||
 *  Commercial Licenses: http://fourwalledcubicle.com/PurchaseLUFA.php \n
 | 
			
		||||
 *
 | 
			
		||||
 *  \section Sec_ProjectHelp Assistance With LUFA
 | 
			
		||||
 *  Discussion Group: http://groups.google.com/group/myusb-support-list \n
 | 
			
		||||
| 
						 | 
				
			
			@ -32,4 +32,4 @@
 | 
			
		|||
 *  \section Sec_USBResources USB Resources
 | 
			
		||||
 *  USB-IF Website: http://www.usb.org \n
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,14 +5,14 @@
 | 
			
		|||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  \page Page_LicenceInfo Source Code Licence
 | 
			
		||||
 *  \page Page_LicenseInfo Source Code License
 | 
			
		||||
 *
 | 
			
		||||
 *  The LUFA library is currently released under the MIT licence, included below.
 | 
			
		||||
 *  The LUFA library is currently released under the MIT license, included below.
 | 
			
		||||
 *
 | 
			
		||||
 *  Commercial entities can opt out of the public disclosure clause in this license
 | 
			
		||||
 *  for a one-time US$1500 payment. This provides a non-exclusive modified MIT licensed which
 | 
			
		||||
 *  allows for the free use of the LUFA library, bootloaders and (where the sole copyright
 | 
			
		||||
 *  is attributed to Dean Camera) demos without public disclosure within an organisation, in
 | 
			
		||||
 *  is attributed to Dean Camera) demos without public disclosure within an organization, in
 | 
			
		||||
 *  addition to three free hours of consultation with the library author, and priority support.
 | 
			
		||||
 *  Please contact the author for more information via the address shown on on \ref Page_Resources.
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -36,10 +36,10 @@
 | 
			
		|||
 *  and open source LUFA powered projects.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Subsections:</b>
 | 
			
		||||
 *  - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
 | 
			
		||||
 *  - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
 | 
			
		||||
 *  - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
 | 
			
		||||
 *  - \subpage Page_LicenceInfo Project source licence and commercial use information
 | 
			
		||||
 *  - \subpage Page_Donating Donating to support this project
 | 
			
		||||
 *  - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
 | 
			
		||||
 *  \li \subpage Page_WhyUseLUFA - What are the advantages of using LUFA?
 | 
			
		||||
 *  \li \subpage Page_LUFAvsAtmelStack - How does LUFA compare to the Atmel USB AVR stack?
 | 
			
		||||
 *  \li \subpage Page_AlternativeStacks - Alternative USB AVR Stacks
 | 
			
		||||
 *  \li \subpage Page_LicenceInfo - Project source license and commercial use information
 | 
			
		||||
 *  \li \subpage Page_Donating - Donating to support this project
 | 
			
		||||
 *  \li \subpage Page_LibraryApps - Overview of included Demos, Bootloaders and Projects
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
 *      Projects must update their makefile SRC values accordingly.
 | 
			
		||||
 *    - The HID Device Class driver's function signature for the CALLBACK_HID_Device_ProcessHIDReport() function has been changed, to
 | 
			
		||||
 *      allow for a new ReportType parameter. This new parameter must be added in all user applications using the Device mode HID Class
 | 
			
		||||
 *      Driver, but may be ingnored unless Host-to-Device FEATURE HID reports are used.
 | 
			
		||||
 *      Driver, but may be ignored unless Host-to-Device FEATURE HID reports are used.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Host Mode</b>
 | 
			
		||||
 *    - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
 | 
			
		||||
| 
						 | 
				
			
			@ -51,7 +51,7 @@
 | 
			
		|||
 *  <b>Host Mode</b>
 | 
			
		||||
 *    - The MIDI Host Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
 | 
			
		||||
 *      packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
 | 
			
		||||
 *      pipe bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
 | 
			
		||||
 *      pipe bank is full. To override this new behavior and revert to the previous behavior, the user application may manually
 | 
			
		||||
 *      flush the queued event(s) to the device by calling \ref MIDI_Host_Flush().
 | 
			
		||||
 *    - The Pipe_IsEndpointBound() function now takes the endpoint's direction into account, by checking if the MSB of the endpoint's address
 | 
			
		||||
 *      is set to denote IN endpoints. If the previous functionality where the direction is to be discounted is required, mask the endpoint
 | 
			
		||||
| 
						 | 
				
			
			@ -60,7 +60,7 @@
 | 
			
		|||
 *  <b>Device Mode</b>
 | 
			
		||||
 *    - The MIDI Device Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
 | 
			
		||||
 *      packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
 | 
			
		||||
 *      endpoint bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
 | 
			
		||||
 *      endpoint bank is full. To override this new behavior and revert to the previous behavior, the user application may manually
 | 
			
		||||
 *      flush the queued event(s) to the host by calling \ref MIDI_Device_Flush().
 | 
			
		||||
 *
 | 
			
		||||
 * \section Sec_Migration091223 Migrating from 091122 to 091223
 | 
			
		||||
| 
						 | 
				
			
			@ -70,9 +70,9 @@
 | 
			
		|||
 *      now named \ref SImage_Host_USBTask() and \ref SImage_Host_ConfigurePipes() respectively.
 | 
			
		||||
 *    - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to \ref HOST_SENDCONTROL_DeviceDisconnected to be in
 | 
			
		||||
 *      line with the rest of the library error codes.
 | 
			
		||||
 *    - The HID Parser item usages no longer contain seperate minimum and maximum values, as this was a violation of the HID
 | 
			
		||||
 *    - The HID Parser item usages no longer contain separate minimum and maximum values, as this was a violation of the HID
 | 
			
		||||
 *      specification. Instead, the values are distributed evenly across each item as its usage value, to ensure that all items
 | 
			
		||||
 *      can be distinguished from oneanother.
 | 
			
		||||
 *      can be distinguished from one-another.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Device Mode</b>
 | 
			
		||||
 *    - The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to
 | 
			
		||||
| 
						 | 
				
			
			@ -96,27 +96,27 @@
 | 
			
		|||
 *      call to SPI_Init() before using the Dataflash driver
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Host Mode</b>
 | 
			
		||||
 *    - The USB_GetDeviceConfigDescriptor() function's parameters and behaviour has changed; the user is required to
 | 
			
		||||
 *    - The USB_GetDeviceConfigDescriptor() function's parameters and behavior has changed; the user is required to
 | 
			
		||||
 *      preallocate the largest allowable buffer, and pass the size of the buffer to the function. This allows for a single
 | 
			
		||||
 *      call to the function to retrieve, size check and validate the Configuration Descriptor rather than having the user
 | 
			
		||||
 *      application perform these intermediatary steps.
 | 
			
		||||
 *      application perform these intermediary steps.
 | 
			
		||||
 *    - The HID report parser now requires a mandatory callback in the user code, to filter only the items the application
 | 
			
		||||
 *      is interested in into the processed HID report item structure to save RAM. See \ref CALLBACK_HIDParser_FilterHIDReportItem().
 | 
			
		||||
 *    - The HID report parser now always parses FEATURE and always ignores constant-data items - the HID_ENABLE_FEATURE_PROCESSING
 | 
			
		||||
 *      and HID_INCLUDE_CONSTANT_DATA_ITEMS compile time tokens now have no effect.
 | 
			
		||||
 *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
 | 
			
		||||
 *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_*
 | 
			
		||||
 *      and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
 | 
			
		||||
 *      the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Device Mode</b>
 | 
			
		||||
 *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
 | 
			
		||||
 *    - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now separate USB_Descriptor_*
 | 
			
		||||
 *      and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
 | 
			
		||||
 *      the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
 | 
			
		||||
 *
 | 
			
		||||
 * \section Sec_Migration090810 Migrating from 090605 to 090810
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>All</b>
 | 
			
		||||
 *    - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.
 | 
			
		||||
 *    - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abstracted loop and caused much confusion.
 | 
			
		||||
 *      User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
 | 
			
		||||
 *      release.
 | 
			
		||||
 *    - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@
 | 
			
		|||
 *      state.
 | 
			
		||||
 *    - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_HostState explicitly to ensure the host is
 | 
			
		||||
 *      in the desired state instead.
 | 
			
		||||
 *    - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
 | 
			
		||||
 *    - The USB event names have been changed and their firing conditions changed to properly separate out Host mode events from Device mode
 | 
			
		||||
 *      events. See the \ref Group_Events page for details on the new event names and firing conditions.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Device Mode</b>
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +153,7 @@
 | 
			
		|||
 *    - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_DeviceState explicitly to ensure the device
 | 
			
		||||
 *      is in the desired state instead.
 | 
			
		||||
 *    - The VBUS events have been removed, as they are already exposed to the user via the USB_Connect and USB_Disconnect events.
 | 
			
		||||
 *    - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
 | 
			
		||||
 *    - The USB event names have been changed and their firing conditions changed to properly separate out Host mode events from Device mode
 | 
			
		||||
 *      events. See the \ref Group_Events page for details on the new event names and firing conditions. *
 | 
			
		||||
 *
 | 
			
		||||
 * \section Sec_Migration090605 Migrating from 090510 to 090605
 | 
			
		||||
| 
						 | 
				
			
			@ -300,7 +300,7 @@
 | 
			
		|||
 *    - The previous SPI_SendByte() functionality is now located in SPI_TransferByte(). SPI_SendByte() now discards the return byte
 | 
			
		||||
 *      for speed, to compliment the new SPI_ReceiveByte() function. If two-way SPI transfers are required, calls to SPI_SendByte()
 | 
			
		||||
 *      should be changed to SPI_TransferByte().
 | 
			
		||||
 *    - The serial driver now sets the Tx line as an output explicitly, and enables the pullup of the Rx line.
 | 
			
		||||
 *    - The serial driver now sets the Tx line as an output explicitly, and enables the pull-up of the Rx line.
 | 
			
		||||
 *    - The Serial_Init() and SerialStream_Init() functions now take a second DoubleSpeed parameter, which indicates if the USART
 | 
			
		||||
 *      should be initialized in double speed mode - useful in some circumstances for attaining baud rates not usually possible at
 | 
			
		||||
 *      the given AVR clock speed.
 | 
			
		||||
| 
						 | 
				
			
			@ -405,7 +405,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 *  <b>Library Demos</b>
 | 
			
		||||
 *    - The RNDIS demo application has been updated so that it is functional on Linux under earlier implementations
 | 
			
		||||
 *      of the RNDIS specification, which had non-standard behaviour. Projects built upon the demo should upgrade
 | 
			
		||||
 *      of the RNDIS specification, which had non-standard behavior. Projects built upon the demo should upgrade
 | 
			
		||||
 *      to the latest code.
 | 
			
		||||
 *    - The DFU class bootloader has had several bugs corrected in this release. It is recommended that where
 | 
			
		||||
 *      possible any existing devices upgrade to the latest bootloader code.
 | 
			
		||||
| 
						 | 
				
			
			@ -462,7 +462,7 @@
 | 
			
		|||
 *      appropriate. It fires in an identical manner to the previously named event, thus the only change to be made
 | 
			
		||||
 *      is the event name itself in the user project.
 | 
			
		||||
 *    - The USB_Descriptor_Language_t structure no longer exists in StdDescriptors.h, as this was a
 | 
			
		||||
 *      pseudo-descriptor modelled on the string descriptor. It is replaced by the true USB_Descriptor_String_t type
 | 
			
		||||
 *      pseudo-descriptor modeled on the string descriptor. It is replaced by the true USB_Descriptor_String_t type
 | 
			
		||||
 *      descriptor as indicated in the USB specification, thus all device code must be updated accordingly.
 | 
			
		||||
 *    - The names of several Endpoint macros have been changed to be more consistent with the rest of the library,
 | 
			
		||||
 *      with no implementation changes. This means that existing code can be altered to use the new macro names
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
 *  uint32_t Boot_Key ATTR_NO_INIT;
 | 
			
		||||
 *
 | 
			
		||||
 *  #define MAGIC_BOOT_KEY            0xDC42ACCA
 | 
			
		||||
 *  #define BOOTLOADER_START_ADDRESS  ({FLASH_SIZE_BYTES} - {BOOTLOADER_SEC_SIZE_BYTES})
 | 
			
		||||
 *  #define BOOTLOADER_START_ADDRESS  (FLASH_SIZE_BYTES - BOOTLOADER_SEC_SIZE_BYTES)
 | 
			
		||||
 *  
 | 
			
		||||
 *  void Bootloader_Jump_Check(void) ATTR_INIT_SECTION(3);
 | 
			
		||||
 *  void Bootloader_Jump_Check(void)
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +50,7 @@
 | 
			
		|||
 *      // Disable all interrupts
 | 
			
		||||
 *      cli();
 | 
			
		||||
 *
 | 
			
		||||
 *      // Wait two seconds for the USB detatchment to register on the host
 | 
			
		||||
 *      // Wait two seconds for the USB detachment to register on the host
 | 
			
		||||
 *      for (uint8_t i = 0; i < 128; i++)
 | 
			
		||||
 *        _delay_ms(16);
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			@ -61,8 +61,8 @@
 | 
			
		|||
 *  }
 | 
			
		||||
 *  \endcode
 | 
			
		||||
 *
 | 
			
		||||
 *  Note that the bootloader magic key can be any arbitrary value. The {FLASH_SIZE_BYTES} and
 | 
			
		||||
 *  {BOOTLOADER_SEC_SIZE_BYTES} tokens should be replaced with the total flash size of the AVR
 | 
			
		||||
 *  Note that the bootloader magic key can be any arbitrary value. The <em>FLASH_SIZE_BYTES</em> and
 | 
			
		||||
 *  <em>BOOTLOADER_SEC_SIZE_BYTES</em> tokens should be replaced with the total flash size of the AVR
 | 
			
		||||
 *  in bytes, and the allocated size of the bootloader section for the target AVR.
 | 
			
		||||
 * 
 | 
			
		||||
 */
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,11 +36,11 @@
 | 
			
		|||
 *    requires less FLASH space than Atmel's stack, meaning more space for the user application*.
 | 
			
		||||
 *
 | 
			
		||||
 *  - <b>Support:</b>
 | 
			
		||||
 *    Since many people are now using LUFA in their own projects, you can take advantage of other's knowedge when you run
 | 
			
		||||
 *    into difficulties or need some advice. In addition, you can also email the library author to recieve personalised
 | 
			
		||||
 *    Since many people are now using LUFA in their own projects, you can take advantage of other's knowledge when you run
 | 
			
		||||
 *    into difficulties or need some advice. In addition, you can also email the library author to receive personalized
 | 
			
		||||
 *    support when you need it (subject to author's schedule).
 | 
			
		||||
 *
 | 
			
		||||
 *   <small>* Atmel Stack Mouse Device Demo 4292 bytes, LUFA Mouse Low Level Device Demo 3296 bytes, under identical build
 | 
			
		||||
 *   environments</small>
 | 
			
		||||
 */
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue