Move main library documentation pages into a new ManPages subdirectory.
This commit is contained in:
parent
84d7783350
commit
ab76c52e14
20 changed files with 0 additions and 17 deletions
20
LUFA/ManPages/AboutLUFA.txt
Normal file
20
LUFA/ManPages/AboutLUFA.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/** \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_AboutLUFA About LUFA
|
||||
*
|
||||
* This section of the manual contains information about the library as a whole, including its supported targets,
|
||||
* 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
|
||||
*/
|
||||
|
||||
BIN
LUFA/ManPages/Author.jpg
Normal file
BIN
LUFA/ManPages/Author.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
22
LUFA/ManPages/BuildingLinkableLibraries.txt
Normal file
22
LUFA/ManPages/BuildingLinkableLibraries.txt
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
/** \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 extention .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 <b>not recommended</b>, 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.
|
||||
*/
|
||||
547
LUFA/ManPages/ChangeLog.txt
Normal file
547
LUFA/ManPages/ChangeLog.txt
Normal file
|
|
@ -0,0 +1,547 @@
|
|||
/** \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_ChangeLogXXXXXX Version XXXXXX
|
||||
*
|
||||
* - Removed psuedo-scheduler, dynamic memory block allocator from the library (no longer needed and not used respectively)
|
||||
* - Added new class drivers and matching demos to the library for rapid application development
|
||||
* - Added incomplete device and host mode demos for later enhancement
|
||||
* - Changed bootloaders to use FLASHEND rather than the existence of RAMPZ to determine if far FLASH pointers are needed
|
||||
* - Error status LEDs shown when device endpoint configuration fails to complete in all demos and projects
|
||||
* - Low level API MIDI device demo no longer blocks if a note change event is sent while the endpoint is not ready
|
||||
* - Fixes to MassStorageHost for better device compatibility (increase command timeout, change MassStore_WaitForDataReceived()
|
||||
* to only unfreeze and check one data pipe at a time)
|
||||
* - Internal per-device preprocessing conditions changed to per-device series rather than per controller group for finer-grain
|
||||
* internal control
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog090605 Version 090605
|
||||
*
|
||||
* - Fixed bug in RNDISEthernet and DualCDC demos not using the correct USB_ControlRequest structure for control request data
|
||||
* - Fixed documentation showing incorrect USB mode support on the supported AVRs list
|
||||
* - Fixed RNDISEthernet not working under Linux due to Linux requiring an "optional" RNDIS request which was unhandled
|
||||
* - Fixed Mouse and Keyboard device demos not acting in accordance with the HID specification for idle periods (thanks to Brian Dickman)
|
||||
* - Removed support for endpoint/pipe non-control interrupts; these did not act in the way users expected, and had many subtle issues
|
||||
* - Fixed Device Mode not handling Set Feature and Clear Feature Chapter 9 requests that are addressed to the device (thanks to Brian Dickman)
|
||||
* - Moved control endpoint interrupt handling into the library itself, enable via the new INTERRUPT_CONTROL_ENDPOINT token
|
||||
* - Fixed CDCHost not clearing configured pipes and resetting configured pipes mask when a partially enumerated invalid CDC
|
||||
* 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
|
||||
* - 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
|
||||
* - Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code
|
||||
* - 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
|
||||
* - 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
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog090510 Version 090510
|
||||
*
|
||||
* - Added new GenericHIDHost demo
|
||||
* - Corrections to the KeyboardHost and MouseHost demos' pipe handling to freeze and unfreeze the data pipes at the point of use
|
||||
* - KeyboardHost, MouseHost and GenericHIDHost demos now save and restore the currently selected pipe inside the pipe ISR
|
||||
* - Changed GenericHID device demo to use the LUFA scheduler, added INTERRUPT_DATA_ENDPOINT and INTERRUPT_CONTROL_ENDPOINT compile
|
||||
* time options
|
||||
* - All comments in the library, bootloaders, demos and projects have now been spell-checked and spelling mistakes/typos corrected
|
||||
* - Added new PIMA_DATA_SIZE() define to the Still Image Host demo
|
||||
* - Add call to MassStore_WaitForDataReceived() in MassStore_GetReturnedStatus() to ensure that the CSW has been received in the
|
||||
* extended MSC timeout period before continuing, to prevent long processing delays from causing the MassStore_GetReturnedStatus()
|
||||
* to early-abort (thanks to Dmitry Maksimov)
|
||||
* - Move StdRequestType.h, StreamCallbacks.h, USBMode.h from the LowLevel USB driver directory to the HighLevel USB driver directory,
|
||||
* where they are more suited
|
||||
* - Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the
|
||||
* code without having to be itself patched and recompiled first
|
||||
* - Added preprocessor checks and documentation to the bootloaders giving information about missing SIGNATURE_x defines due to
|
||||
* outdated avr-libc versions.
|
||||
* - Added support to the CDCHost demo for devices with multiple CDC interfaces which are not the correct ACM type preceding the desired
|
||||
* ACM CDC interface
|
||||
* - Fixed GenericHID demo not starting USB and HID management tasks when not using interrupt driven modes (thanks to Carl Kjeldsen)
|
||||
* - Fixed RNDISEthenet demo checking the incorrect message field for packet size constraints (thanks to Jonathan Oakley)
|
||||
* - Fixed WriteNextReport code in the GenericHIDHost demo using incorrect parameter types and not selecting the correct endpoint
|
||||
* - Adjusted sample CTC timer calculations in the AudioOutput and AudioInput demos to match the CTC calculations in the AVR datasheet,
|
||||
* and to fix instances where rounding caused the endpoint to underflow (thanks to Robin Theunis)
|
||||
* - The USB_Host_SendControlRequest() function no longer automatically selects the Control pipe (pipe 0), so that other control type
|
||||
* pipes can be used with the function
|
||||
* - The USB Host management task now saves and restores the currently selected pipe before and after the task completes
|
||||
* - Fixed GenericHIDHost demo report write routine incorrect for control type requests (thanks to Andrei Krainev)
|
||||
* - Removed Endpoint_ClearCurrentBank() and Pipe_ClearCurrentBank() in favour of new Endpoint_ClearIN(), Endpoint_ClearOUT(),
|
||||
* Pipe_ClearIN() and Pipe_ClearOUT() macros (done to allow for the detection of packets of zero length)
|
||||
* - Renamed *_ReadWriteAllowed() macros to *_IsReadWriteAllowed() to remain consistent with the rest of the LUFA API
|
||||
* - Endpoint_IsSetupReceived() macro has been renamed to Endpoint_IsSETUPReceived(), Endpoint_ClearSetupReceived() macro has been
|
||||
* renamed to Endpoint_ClearSETUP(), the Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent() and the
|
||||
* 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
|
||||
* - 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
|
||||
* - Fixed CDC and USBtoSerial demos freezing where buffers were full while still transmitting or receiving (thanks to Peter Hand)
|
||||
* - Removed "Host_" section of the function names in ConfigDescriptor.h, as most of the routines can now be used in device mode on the
|
||||
* 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
|
||||
* 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
|
||||
* USB_INITERROR_NoUSBModeSpecified
|
||||
* - Renamed USB_PowerOnFail event to USB_InitFailure
|
||||
* - Renamed OTG.h header functions to be more consistent with the rest of the library API
|
||||
* - Changed over all deprecated GCC structure tag initializers to the standardized C99 format (thanks to Mike Alexander)
|
||||
* - USB_HostRequest renamed to USB_ControlRequest, entire control request header is now read into USB_ControlRequest in Device mode
|
||||
* rather than having the library pass only partially read header data to the application
|
||||
* - The USB_UnhandledControlPacket event has had its parameters removed, in favour of accessing the new USB_ControlRequest structure
|
||||
* - The Endpoint control stream functions now correctly send a ZLP to the host when less data than requested is sent
|
||||
* - Fixed USB_RemoteWakeupEnabled flag never being set (the REMOTE WAKEUP Set Feature request was not being handled)
|
||||
* - Renamed the FEATURELESS_CONTROL_ONLY_DEVICE compile-time token to CONTROL_ONLY_DEVICE
|
||||
* - Endpoint configuration is now refined to give better output when all configurations have static inputs - removed the now useless
|
||||
* STATIC_ENDPOINT_CONFIGURATION compile time token
|
||||
* - Fixed SPI driver init function not clearing SPI2X bit when not needed
|
||||
* - Fixed PREVENT ALLOW MEDIUM REMOVAL command issuing in the MassStorageHost demo using incorrect parameters (thanks to Mike Alex)
|
||||
* - Fixed MassStorageHost demo broken due to an incorrect if statement test in MassStore_GetReturnedStatus()
|
||||
* - Fixed reversed signature byte ordering in the CDC bootloader (thanks to Johannes Raschke)
|
||||
* - Changed PIPE_CONTROLPIPE_DEFAULT_SIZE from 8 to 64 to try to prevent problems with faulty devices which do not respect the given
|
||||
* wLength value when reading in the device descriptor
|
||||
* - Fixed missing semicolon in the ATAVRUSBRF01 LED board driver code (thanks to Morten Lund)
|
||||
* - Changed LED board driver code to define dummy LED masks for the first four board LEDs, so that user code can be compiled for boards
|
||||
* with less than four LEDs without code modifications (thanks to Morten Lund)
|
||||
* - Changed HWB board driver to Buttons driver, to allow for the support of future boards with more than one mounted GPIO button
|
||||
* - Serial driver now correctly calculates the baud register value when in double speed mode
|
||||
* - Init function of the Serial driver is now static inline to product smaller code for the common-case of static init values
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog090401 Version 090401
|
||||
*
|
||||
* - Fixed MagStripe project configuration descriptor containing an unused (blank) endpoint descriptor
|
||||
* - Incorporated makefile changes by Denver Gingerich to retain compatibility with stock (non-WinAVR) AVR-GCC installations
|
||||
* - Fixed makefile EEPROM programming targets programming FLASH data in addition to EEPROM data
|
||||
* - LUFA devices now enumerate correctly with LUFA hosts
|
||||
* - Fixed Configuration Descriptor search routine freezing when a comparator returned a failure
|
||||
* - Removed HID report item serial dump in the MouseHostWithParser and KeyboardHostWithParser - useful only for debugging, and
|
||||
* slowed down the enumeration of HID devices too much
|
||||
* - Increased the number of bits per track which can be read in the MagStripe project to 8192 when compiled for the AT90USBXXX6/7
|
||||
* - Fixed KeyboardMouse demo discarding the wIndex value in the REQ_GetReport request
|
||||
* - USBtoSerial demo now discards all Rx data when not connected to a USB host, rather than buffering characters for transmission
|
||||
* next time the device is attached to a host.
|
||||
* - Added new F_CLOCK compile time constant to the library and makefiles, to give the raw input clock (used to feed the PLL before any
|
||||
* clock prescaling is performed) frequency, so that the PLL prescale mask can be determined
|
||||
* - Changed stream wait timeout counter to be 16-bit, so that very long timeout periods can be set for correct communications with
|
||||
* badly designed hosts or devices which greatly exceed the USB specification limits
|
||||
* - Mass Storage Host demo now uses a USB_STREAM_TIMEOUT_MS of two seconds to maintain compatibility with poorly designed devices
|
||||
* - Function attribute ATTR_ALWAYSINLINE renamed to ATTR_ALWAYS_INLINE to match other function attribute macro naming conventions
|
||||
* - Added ATTR_ALWAYS_INLINE attribute to several key inlined library components, to ensure they are inlined in all circumstances
|
||||
* - Removed SetSystemClockPrescaler() macro, the clock_prescale_set() avr-libc macro has been corrected in recent avr-libc versions
|
||||
* - Fixed incorrect/missing control status stage transfers on demos, bootloaders and applications (thanks to Nate Lawson)
|
||||
* - The NO_CLEARSET_FEATURE_REQUEST compile time token has been renamed to FEATURELESS_CONTROL_ONLY_DEVICE, and its function expanded
|
||||
* to also remove parts of the Get Status chapter 9 request to further reduce code usage
|
||||
* - Makefile updated to include output giving the currently selected BOARD parameter value
|
||||
* - Board Dataflash driver now allows for dataflash ICs which use different shifts for setting the current page/byte address (thanks
|
||||
* to Kenneth Clubb)
|
||||
* - Added DataflashManager_WriteBlocks_RAM() and DataflashManager_ReadBlocks_RAM() functions to the MassStorage demo, to allow for easy
|
||||
* interfacing with a FAT library for dataflash file level access
|
||||
* - Corrected CDC class bootloader to fix a few bugs, changed address counter to store x2 addresses for convenience
|
||||
* - Fixed typos in the SPI driver SPI_SPEED_FCPU_DIV_64 and SPI_SPEED_FCPU_DIV_128 masks (thanks to Markus Zocholl)
|
||||
* - Keyboard and Mouse device demos (normal, data interrupt and fully interrupt driven) combined into unified keyboard and mouse demos
|
||||
* - Keyboard and Mouse host demos (normal and data interrupt driven) combined into unified keyboard and mouse demos
|
||||
* - Removed AVRISP_Programmer project due to code quality concerns
|
||||
* - Fixed CDC demo not sending an empty packet after each transfer to prevent the host from buffering incoming data
|
||||
* - Fixed documentation typos and preprocessor checks relating to misspellings of the USE_RAM_DESCRIPTORS token (thanks to Ian Gregg)
|
||||
* - Fixed USBTask.h not conditionally including HostChapter9.h only when USB_CAN_BE_HOST is defined (thanks to Ian Gregg)
|
||||
* - Fixed incorrect ADC driver init register manipulation (thanks to Tobias)
|
||||
* - Added new GenericHID device demo application
|
||||
* - Fixed Still Image Host SImage_SendData() function not clearing the pipe bank after sending data
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog090209 Version 090209
|
||||
*
|
||||
* - PWM timer mode in AudioOut demo changed to Fast PWM for speed
|
||||
* - Updated Magstripe project to work with the latest hardware revision
|
||||
* - Fixed library not responding to the BCERRI flag correctly in host mode, leading to device lockups
|
||||
* - Fixed library handling Get Descriptor requests when not addressed as standard requests to the device or interface (thanks to
|
||||
* Nate Lawson)
|
||||
* - Fixed serious data corruption issue in MassStorage demo dataflash write routine
|
||||
* - Added new NO_CLEARSET_FEATURE_REQUEST compile time token
|
||||
* - USB task now restores previous global interrupt state after execution, rather than forcing global interrupts to be enabled
|
||||
* - Fixed USB_DeviceEnumerationComplete event firing after each configuration change, rather than once after the initial configuration
|
||||
* - Added ENDPOINT_DOUBLEBANK_SUPPORTED() macros to Endpoint.h, altered ENDPOINT_MAX_SIZE() to allow user to specify endpoint
|
||||
* - ENDPOINT_MAX_ENDPOINTS changed to ENDPOINT_TOTAL_ENDPOINTS, PIPE_MAX_PIPES changed to PIPE_TOTAL_PIPES
|
||||
* - Endpoint and Pipe non-control stream functions now ensure endpoint or pipe is ready before reading or writing
|
||||
* - Changed Teensy bootloader to use a watchdog reset when exiting rather than a software jump
|
||||
* - Fixed integer promotion error in MassStorage and MassStorageHost demos, corrupting read/write transfers
|
||||
* - SPI_SendByte is now SPI_TransferByte, added new SPI_SendByte and SPI_ReceiveByte functions for fast one-way transfer
|
||||
* - MassStorage demo changed to use new fast one-way SPI transfers to increase throughput
|
||||
* - MassStorage handling of Mass Storage Reset class request improved
|
||||
* - Altered MassStorage demo dataflash block read code for speed
|
||||
* - Added USB_IsSuspended global flag
|
||||
* - Simplified internal Dual Mode (OTG) USB library code to reduce code size
|
||||
* - Extended stream timeout period to 100ms from 50ms
|
||||
* - Mass Storage Host demo commands now all return an error code from the Pipe_Stream_RW_ErrorCodes_t enum
|
||||
* - Added SubErrorCode parameter to the USB_DeviceEnumerationFailed event
|
||||
* - VBUS drop interrupt now disabled during the manual-to-auto VBUS delivery handoff
|
||||
* - Simplified low level backend so that device/host mode initialization uses the same code paths
|
||||
* - Added workaround for faulty Mass Storage devices which do not implement the required GET_MAX_LUN request
|
||||
* - Removed buggy Telnet application from the RNDIS demo
|
||||
* - Moved Mass Storage class requests in the Mass Storage Host demo to wrapper functions in MassStoreCommands.c
|
||||
* - Fixed incorrect SCSI command size value in the Request Sense command in MassStoreCommands.c
|
||||
* - Added SetProtocol request to HID class non-parser Mouse and Keyboard demos to force devices to use the correct Boot Protocol
|
||||
* - 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
|
||||
* - 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
|
||||
* - Completed doxygen documentation of remaining library bootloaders, demos and projects
|
||||
* - Fixed incorrect bootloader start address in the TeensyHID bootloader
|
||||
* - Added HWB button whole-disk ASCII dump functionality to MassStoreHost demo
|
||||
* - Replaced printf_P(PSTR("%c"), {Variable}) calls with putchar(<Variable>) for speed and size savings
|
||||
* - Serial driver now accepts baud rates over 16-bits in size, added double speed flag option
|
||||
* - Fixed incorrect callback abort return value in Pipe.c
|
||||
* - Added new flip-ee and dfu-ee makefile targets (courtesy of Opendous Inc.)
|
||||
* - Removed reboot-on-disconnect code from the TeensyHID bootloader, caused problems on some systems
|
||||
* - Fixed AudioOutput and AudioInput demos looping on the endpoint data, rather than processing a sample at a time and returning
|
||||
* each time the task runs to allow for other tasks to execute
|
||||
* - Added support for the Atmel ATAVRUSBRF01 board
|
||||
* - Added AVRISP Programmer Project, courtesy of Opendous Inc.
|
||||
* - Fixed CDC Host demo not searching through both CDC interfaces for endpoints
|
||||
* - Fixed incorrect Product String descriptor length in the DFU class bootloader
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog081224 Version 081224
|
||||
*
|
||||
* - MyUSB name changed to LUFA, the Lightweight USB Framework for AVRs
|
||||
* - Fixed Mass Storage Host demo's MassStore_SendCommand() delay in the incorrect place
|
||||
* - Fixed USBtoSerial demo not calling ReconfigureUSART() after a change in the line encoding
|
||||
* - Fixed infinite loop in host mode Host-to-Device control transfers with data stages
|
||||
* - HID report parser now supports devices with multiple reports in one interface via Report IDs
|
||||
* - Fixed RZUSBSTICK board LED driver header incorrect macro definition order causing compile errors
|
||||
* - Calling USB_Init() when the USB interface is already configured now forces a complete interface reset
|
||||
* and re-enumeration - fixes MyUSB DFU bootloader not switching to app code correctly when soft reset used
|
||||
* - Fixed "No newline at end of file" warning when stream callbacks are enabled
|
||||
* - DFU bootloader now uses fixed signature bytes per device, rather than reading them out dynamically for size
|
||||
* - Added new FIXED_CONTROL_ENDPOINT_SIZE and USE_SINGLE_DEVICE_CONFIGURATION switches to statically define certain values to
|
||||
* reduce compiled binary size
|
||||
* - Added new NO_LIMITED_CONTROLLER_CONNECT switch to prevent the library from trying to determine bus connection
|
||||
* state from the suspension and wake up events on the smaller USB AVRs
|
||||
* - Added summary of all library compile time tokens to the documentation
|
||||
* - Added overview of the LUFA scheduler to the documentation
|
||||
* - Removed MANUAL_PLL_CONTROL compile time token, replaced with a mask for the USB_Init() Options parameter
|
||||
* - CDC bootloader now uses the correct non-far or far versions of the pgm_* functions depending on if RAMPZ is defined
|
||||
* - Doxygen documentation now contains documentation on all the projects, bootloaders and most demos included with the library
|
||||
* - CDC bootloader now runs user application when USB disconnected rather than waiting for a hard reset
|
||||
* - MouseHostWithParser and KeyboardHostWithParser now support multiple-report devices
|
||||
* - RNDIS demo can now close connections correctly using the new TCP_APP_CLOSECONNECTION() macro - used in Webserver
|
||||
* - Fixed the DFU bootloader, no longer freezes up when certain files are programmed into an AVR, made reading/writing faster
|
||||
* - Fixed mouse/joystick up/down movements reversed - HID mouse X/Y coordinates use a left-handed coordinate system, not a normal
|
||||
* right-handed system
|
||||
* - Added stub code to the CDC and USBtoSerial demos showing how to read and set the RS-232 handshake lines - not currently used in
|
||||
* the demos, but the example code and supporting defines are now in place
|
||||
* - Interrupts are now disabled when processing a control request in device mode, to avoid exceeding the strict control request
|
||||
* timing requirements.
|
||||
* - All demos now use a central StatusUpdate() function rather than direct calls to the board LED functions, so that the demos can
|
||||
* easily be altered to show different LED combinations (or do something else entirely) as the demo's status changes
|
||||
* - Removed LED commands from the CDC bootloader, unused by most AVR910 programming software
|
||||
* - Fixed RNDIS demo ICMP ping requests echoing back incorrect data
|
||||
* - Added DHCP server code to RNDIS demo, allowing for hands-free auto configuration on any PC
|
||||
* - Fixed DFU bootloader PID value for the ATMEGA16U4 AVR
|
||||
* - Endpoint and Pipe configuration functions now return an error code indicating success or failure
|
||||
* - USB Reset in device mode now resets and disables all device endpoints
|
||||
* - Added intermediate states to the host mode state machine, reducing the USB task blocking time to no more than 1ms explicitly per
|
||||
* invocation when in host mode
|
||||
* - Added support for the ATMEGA32U6 microcontroller
|
||||
* - Added STATIC_ENDPOINT_CONFIGURATION compile time option, enabled in the bootloaders to minimize space usage
|
||||
* - Removed redundant code from the USB device GetStatus() chapter 9 processing routine
|
||||
* - Added new TeensyHID bootloader, compatible with the Teensy HID protocol (http://www.pjrc.com/teensy/)
|
||||
* - Versions are now numbered by release dates, rather than arbitrary major/minor revision numbers
|
||||
* - USB_RemoteWakeupEnabled is now correctly set and cleared by SetFeature and ClearFeature requests from the host
|
||||
* - Changed prototype of GetDescriptor, so that it now returns the descriptor size (or zero if the descriptor doesn't exist)
|
||||
* rather than passing the size back to the caller through a parameter and returning a boolean
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog153 Version 1.5.3 - Released 2nd October, 2008
|
||||
*
|
||||
* - Fixed CDC bootloader using pgmspace macros for some descriptors inappropriately
|
||||
* - Updated all Mouse and Keyboard device demos to include boot protocol support (now works in BIOS)
|
||||
* - Renamed bootloader directories to remove spaces, which were causing build problems on several OSes
|
||||
* - Removed serial number strings from all but the MassStore demo where it is required - users were not
|
||||
* modifying the code to either omit the descriptor or use a unique serial per device causing problems
|
||||
* when multiple units of the same device were plugged in at the same time
|
||||
* - AudioOutput and AudioInput demos now correctly silence endpoints when not enabled by the host
|
||||
* - Added KeyboardMouse demo (Keyboard and Mouse functionality combined into a single demo)
|
||||
* - Added DriverStubs directory to house board level driver templates, to make MyUSB compatible custom board
|
||||
* driver creation easier
|
||||
* - Extended MassStorage demo to support multiple LUNs, 2 by default
|
||||
* - Fixed incorrect device address mask, preventing the device from enumerating with addresses larger than 63
|
||||
* - Fixed incorrect data direction mask in the GetStatus standard request, preventing it from being handled
|
||||
* - Fixed incorrect GetStatus standard request for endpoints, now returns the endpoint STALL status correctly
|
||||
* - Added in new USB_RemoteWakeupEnabled and USB_CurrentlySelfPowered flags rather than using fixed values
|
||||
* - Added DualCDC demo to demonstrate the use of Interface Association Descriptors
|
||||
* - Added pipe NAK detection and clearing API
|
||||
* - Added pipe status change (NAK, STALL, etc.) interrupt API
|
||||
* - Fixed MassStorageHost demo so that it no longer freezes randomly when issuing several commands in a row
|
||||
* - Host demos configuration descriptor routines now return a unique error code when the returned data does
|
||||
* not have a valid configuration descriptor header
|
||||
* - Added Endpoint_WaitUntilReady() and Pipe_WaitUntilReady() functions
|
||||
* - Stream functions now have software timeouts, timeout period can be set by the USB_STREAM_TIMEOUT_MS token
|
||||
* - All demos now pass the USB.org automated Chapter 9 device compliance tests
|
||||
* - 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
|
||||
* - 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)
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog152 Version 1.5.2 - Released 31st July, 2008
|
||||
*
|
||||
* - Fixed SwapEndian_32() function in Common.h so that it now works correctly (wrong parameter types)
|
||||
* - Updated RNDIS demo - notification endpoint is no longer blocking so that it works with faulty Linux RNDIS
|
||||
* implementations (where the notification endpoint is ignored in favour of polling the control endpoint)
|
||||
* - Fixed incorrect Vendor Description string return size in RNDIS demo for the OID_GEN_VENDOR_DESCRIPTION OID token
|
||||
* - Added very basic TCP/IP stack and HTTP/TELNET servers to RNDIS demo
|
||||
* - Fixed DFU bootloader exit causing programming software to complain about failed writes
|
||||
* - 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
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog151 Version 1.5.1 - Released 31st July, 2008
|
||||
*
|
||||
* - Changed host demos to enable the host function task on the firing of the USB_DeviceEnumerationComplete event
|
||||
* rather than the USB_DeviceAttached event
|
||||
* - HID Usage Stack now forcefully cleared after an IN/OUT/FEATURE item has been completely processed to remove
|
||||
* any referenced but not created usages
|
||||
* - Changed USB_INT_DisableAllInterrupts() and USB_INT_ClearAllInterrupts(), USB_Host_GetNextDescriptorOfType(),
|
||||
* USB_Host_GetNextDescriptorOfTypeBefore(), USB_Host_GetNextDescriptorOfTypeAfter() to normal functions (from inline)
|
||||
* - Fixed USBtoSerial demo not sending data, only receiving
|
||||
* - Fixed main makefile to make all by default, fixed MagStripe directory case to prevent case-sensitive path problems
|
||||
* - ConfigDescriptor functions made normal, instead of static inline
|
||||
* - Pipe/Endpoint *_Ignore_* functions changed to *_Discard_*, old names still present as aliases
|
||||
* - Fixed ENDPOINT_MAX_SIZE define to be correct on limited USB controller AVRs
|
||||
* - Changed endpoint and pipe size translation routines to use previous IF/ELSE IF cascade code, new algorithmic
|
||||
* approach was buggy and caused problems
|
||||
* - Bootloaders now compile with -fno-inline-small-functions option to reduce code size
|
||||
* - Audio demos now use correct endpoint sizes for full and limited controller USB AVRs, double banking in all cases
|
||||
* to be in line with the specification (isochronous endpoints MUST be double banked)
|
||||
* - Added Interface Association descriptor to StdDescriptors.h, based on the relevant USB2.0 ECN
|
||||
* - Fixed MIDI demo, corrected Audio Streaming descriptor to follow the MIDI-specific AS structure
|
||||
* - Fixed HID class demo descriptors so that the HID interface's protocol is 0x00 (required for non-boot protocol HID
|
||||
* devices) to prevent problems on hosts expecting the boot protocol functions to be supported
|
||||
* - Added read/write control stream functions to Endpoint.h
|
||||
* - Fixed AudioOut demo not setting port pins to inputs on USB disconnect properly
|
||||
* - Added RNDISEthernet demo application
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog150 Version 1.5.0 - Released 10 June, 2008
|
||||
*
|
||||
* - Fixed MIDI demo, now correctly waits for the endpoint to be ready between multiple note messages
|
||||
* - Added CDC Host demo application
|
||||
* - Added KeyboardFullInt demo application
|
||||
* - Endpoint and Pipe creation routines now mask endpoint/pipe size with the size mask, to remove transaction
|
||||
* 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
|
||||
* - 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 Still Image Host demo application
|
||||
* - The USB device task now restores the previously selected endpoint, allowing control requests to be transparently
|
||||
* handled via interrupts while other endpoints are serviced through polling
|
||||
* - Fixed device signature being sent in reverse order in the CDC bootloader
|
||||
* - Host demos now have a separate ConfigDescriptor.c/.h file for configuration descriptor processing
|
||||
* - HostWithParser demos now have a separate HIDReport.c/.h file for HID report processing and dumping
|
||||
* - Removed non-mandatory commands from MassStorage demo to save space, fixed SENSE ResponseCode value
|
||||
* - CDC demos now send empty packets after sending a full one to prevent buffering issues on the host
|
||||
* - Updated demo descriptors to use VID/PID values donated by Atmel
|
||||
* - Added DoxyGen documentation to the source files
|
||||
* - Fixed Serial_IsCharRecieved() definition, was previously reversed
|
||||
* - Removed separate USB_Descriptor_Language_t descriptor, USB_Descriptor_String_t is used instead
|
||||
* - Removed unused Device Qualifier descriptor structure
|
||||
* - Renamed the USB_CreateEndpoints event to the more appropriate USB_ConfigurationChanged
|
||||
* - Fixed MassStorageHost demo reading in the block data in reverse
|
||||
* - Removed outdated typedefs in StdRequestType.h, superseded by the macro masks
|
||||
* - 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
|
||||
* - 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
|
||||
* Pipe_SetInterruptPeriod() to use the correct terminology
|
||||
* - UnicodeString member of USB_Descriptor_String_t struct changed to an ordinary int array type, so that the GCC
|
||||
* Unicode strings (prefixed with an L before the opening quotation mark) can be used instead of explicit arrays
|
||||
* of ASCII characters
|
||||
* - Fixed Endpoint/Pipes being configured incorrectly if the maximum endpoint/pipe size for the selected USB AVR
|
||||
* model was given as the bank size
|
||||
* - HID device demos now use a true raw array for the HID report descriptor rather than a struct wrapped array
|
||||
* - Added VERSION_BCD() macro, fixed reported HID and USB version numbers in demo descriptors
|
||||
* - Cleaned up GetDescriptor device chapter 9 handler function
|
||||
* - Added GET_REPORT class specific request to HID demos to make them complaint to the HID class
|
||||
* - Cleaned up setting of USB_IsInitialized and USB_IsConnected values to only when needed
|
||||
* - Removed Atomic.c and ISRMacro.h; the library was already only compatible with recent avr-lib-c for other reasons
|
||||
* - All demos and library functions now use USB standardized names for the USB data (bRequest, wLength, etc.)
|
||||
* - Added USE_NONSTANDARD_DESCRIPTOR_NAMES token to switch back to the non-standard descriptor element names
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog141 Version 1.4.1 - Released 5 May, 2008
|
||||
*
|
||||
* - Enhanced KeyboardWithParser demo, now prints out pressed alphanumeric characters like the standard demo
|
||||
* - Fixed MassStorage demo, read/writes using non mode-10 commands now work correctly
|
||||
* - Corrected version number in Version.h
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog140 Version 1.4.0 - Released 5 May, 2008
|
||||
*
|
||||
* - Added HID Report Parser API to the library
|
||||
* - Added Mouse and Keyboard host demo applications, using the new HID report parser engine
|
||||
* - Added MouseFullInt demo, which demonstrates a fully interrupt (including control requests) mouse device
|
||||
* - Fixed incorrect length value in the audio control descriptor of the AudioOutput and AudioInput demos
|
||||
* - Added MIDI device demo application to the library
|
||||
* - Fixed problem preventing USB devices from being resumed from a suspended state
|
||||
* - Added new CDC class bootloader to the library, based on the AVR109 bootloader protocol
|
||||
* - Added header to each demo application indicating the mode, class, subclass, standards used and supported speed
|
||||
* - Functions expecting endpoint/pipe numbers are no longer automatically masked against ENDPOINT_EPNUM_MASK or
|
||||
* PIPE_PIPENUM_MASK - this should be manually added to code which requires it
|
||||
* - Fixed DFU class bootloader - corrected frequency of flash page writes, greatly reducing programming time
|
||||
* - Renamed AVR_HOST_GetDeviceConfigDescriptor() to USB_Host_GetDeviceConfigDescriptor() and AVR_HOST_GetNextDescriptor()
|
||||
* to USB_Host_GetNextDescriptor()
|
||||
* - Added new USB_Host_GetNextDescriptorOfTypeBefore() and USB_Host_GetNextDescriptorOfTypeAfter() routines
|
||||
* - Moved configuration descriptor routines to MyUSB/Drivers/USB/Class/, new accompanying ConfigDescriptors.c file
|
||||
* - Added new configuration descriptor comparator API for more powerful descriptor parsing, updated host demos to use the
|
||||
* new comparator API
|
||||
* - Fixed MassStorageHost demo capacity printout, and changed data read/write mode from little-endian to the correct
|
||||
* big-endian for SCSI devices
|
||||
* - Fixed macro/function naming consistency; USB_HOST is now USB_Host, USB_DEV is now USB_Device
|
||||
* - Added better error reporting to host demos
|
||||
* - Added 10 microsecond delay after addressing devices in host mode, to prevent control stalls
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog132 Version 1.3.2 - Released April 1st, 2008
|
||||
*
|
||||
* - Added call to ReconfigureUSART() in USBtoSerial SetLineCoding request, so that baud rate changes
|
||||
* are reflected in the hardware
|
||||
* - Fixed CDC and USBtoSerial demos - Stream commands do not work for control endpoints, and the
|
||||
* GetLineCoding request had an incorrect RequestType mask preventing it from being processed
|
||||
* - Improved reliability of the USBtoSerial demo, adding a busy wait while the buffer is full
|
||||
* - Device control endpoint size is now determined from the device's descriptors rather than being fixed
|
||||
* - Separated out SPI code into new SPI driver in AT90USBXXX driver directory
|
||||
* - Bootloader now returns correct PID for the selected USB AVR model, not just the AT90USB128X PID
|
||||
* - Added support for the RZUSBSTICK board
|
||||
* - Bicolour driver removed in favour of generic LEDs driver
|
||||
* - Added support for the ATMEGA32U4 AVR
|
||||
* - Added MANUAL_PLL_CONTROL compile time option to prevent the USB library from manipulating the PLL
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog131 Version 1.3.1 - Released March 19th 2008
|
||||
*
|
||||
* - Fixed USB to Serial demo - class value in the descriptors was incorrect
|
||||
* - Control endpoint size changed from 64 bytes to 8 bytes to save on USB FIFO RAM and to allow low
|
||||
* speed mode devices to enumerate properly
|
||||
* - USB to Serial demo data endpoints changed to dual-banked 16 byte to allow the demo to work
|
||||
* on USB AVRs with limited USB FIFO RAM
|
||||
* - Changed demo endpoint numbers to use endpoints 3 and 4 for double banking, to allow limited
|
||||
* USB device controller AVRs (AT90USB162, AT90USB82) to function correctly
|
||||
* - Updated Audio Out demo to use timer 1 for AVRs lacking a timer 3 for the PWM output
|
||||
* - Fixed incorrect USB_DEV_OPT_HIGHSPEED entry in the Mass Storage device demo makefile
|
||||
* - Optimized Mass Storage demo for a little extra transfer speed
|
||||
* - Added LED indicators to the Keyboard demo for Caps Lock, Num Lock and Scroll Lock
|
||||
* - Added Endpoint_Read_Stream, Endpoint_Write_Stream, Pipe_Read_Stream and Pipe_Write_Stream functions
|
||||
* (including Big and Little Endian variants)
|
||||
* - Made Dataflash functions inline for speed, removed now empty Dataflash.c driver file
|
||||
* - Added new SetSystemClockPrescaler() macro (thanks to Joerg Wunsch)
|
||||
* - Fixed Endpoint_ClearStall() to function correctly on full USB controller AVRs (AT90USBXXX6/7)
|
||||
* - Endpoint_Setup_In_Clear() and Endpoint_Setup_Out_Clear() no longer set FIFOCON, in line with the
|
||||
* directives in the datasheet
|
||||
* - Fixed PLL prescaler defines for all AVR models and frequencies
|
||||
* - Fixed ENDPOINT_INT_IN and ENDPOINT_INT_OUT definitions
|
||||
* - Added interrupt driven keyboard and mouse device demos
|
||||
* - Combined USB_Device_ClearFeature and USB_Device_SetFeature requests into a single routine for code
|
||||
* size savings
|
||||
* - Added missing Pipe_GetCurrentPipe() macro to Pipe.h
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog130 Version 1.3.0 - Released March 7th 2008
|
||||
*
|
||||
* - Unnecessary control endpoint config removed from device mode
|
||||
* - Fixed device standard request interpreter accidentally processing some class-specific requests
|
||||
* - Added USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS compile time options to instruct the library
|
||||
* to use descriptors stored in RAM or EEPROM rather than flash memory
|
||||
* - All demos now disable watchdog on startup, in case it has been enabled by fuses or the bootloader
|
||||
* - USB_DEV_OPT_LOWSPEED option now works correctly
|
||||
* - Added ability to set the USB options statically for a binary size reduction via the USE_STATIC_OPTIONS
|
||||
* compile time define
|
||||
* - USB_Init no longer takes a Mode parameter if compiled for a USB device with no host mode option, or
|
||||
* if forced to a particular mode via the USB_HOST_ONLY or USB_DEVICE_ONLY compile time options
|
||||
* - USB_Init no longer takes an Options parameter if options statically configured by USE_STATIC_OPTIONS
|
||||
* - Endpoint_Ignore_* and Pipe_Ignore_* made smaller by making the dummy variable non-volatile so that the
|
||||
* compiler can throw away the result more efficiently
|
||||
* - Added in an optional GroupID value to each scheduler entry, so that groups of tasks can once again be
|
||||
* controlled by the new Scheduler_SetGroupTaskMode() routine
|
||||
* - Added support for AT90USB162 and AT90USB82 AVR models
|
||||
* - Added support for the STK525 and STK526 boards
|
||||
* - 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
|
||||
* - 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
|
||||
* USB_HOST_IsDeviceFullSpeed() to be in line with the official USB speed names (to avoid confusion with
|
||||
* the real high speed mode, which is unavailable on the USB AVRs)
|
||||
*
|
||||
*
|
||||
* \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
|
||||
* 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
|
||||
* - All demos updated to stop the USB task when not in use via the appropriate USB events
|
||||
* - Mass Storage Host demo application updated to function correctly with all USB flash disks
|
||||
* - Mass Storage Host demo application now prints out the capacity and number of LUNs in the attached
|
||||
* device, and prints the first block as hexadecimal numbers rather than ASCII characters
|
||||
* - Endpoint and Pipe clearing routines now clear the Endpoint/Pipe interrupt and status flags
|
||||
* - Shifted error handling code in the host enum state machine to a single block, to reduce code complexity
|
||||
* - Added in DESCRIPTOR_TYPE, DESCRIPTOR_SIZE and DESCRIPTOR_CAST macros to make config descriptor processing
|
||||
* clearer in USB hosts and DESCRIPTOR_ADDRESS for convenience in USB devices
|
||||
* - Added in alloca macro to common.h, in case the user is using an old version of avr-lib-c missing the macro
|
||||
*
|
||||
*
|
||||
* \section Sec_ChangeLog130 Version 1.1.0 - Released January 25th 2008
|
||||
*
|
||||
* - 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 USB_DeviceEnumerationFailed event for Host mode
|
||||
* - 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
|
||||
* - 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
|
||||
* 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
|
||||
* - 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
|
||||
*/
|
||||
153
LUFA/ManPages/CompileTimeTokens.txt
Normal file
153
LUFA/ManPages/CompileTimeTokens.txt
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
/** \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_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,
|
||||
* or remove features unused by a given application in order to save flash space.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryNonUSBTokens Non USB Related Tokens
|
||||
* This section describes compile tokens which affect non-USB sections of the LUFA library.
|
||||
*
|
||||
* <b>DISABLE_TERMINAL_CODES</b> - ( \ref Group_Terminal ) \n
|
||||
* If an application contains ANSI terminal control codes listed in TerminalCodes.h, it might be desired to remove them
|
||||
* at compile time for use with a terminal which is non-ANSI control code aware, without modifying the source code. If
|
||||
* this token is defined, all ANSI control codes in the application code from the TerminalCodes.h header are removed from
|
||||
* the source code at compile time.
|
||||
*
|
||||
* \section Sec_SummaryUSBClassTokens USB Class Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB class-specific drivers in the LUFA library.
|
||||
*
|
||||
* <b>HID_ENABLE_FEATURE_PROCESSING</b> - ( \ref Group_HIDParser ) \n
|
||||
* Define this token to enable the processing of FEATURE HID report items, if any, into the processed HID structure.
|
||||
* By default FEATURE items (which are device features settable by the host but not directly visible by the user) are
|
||||
* skipped when processing a device HID report.
|
||||
*
|
||||
* <b>HID_INCLUDE_CONSTANT_DATA_ITEMS</b> - ( \ref Group_HIDParser ) \n
|
||||
* By default, constant data items (usually used as spacers to align separate report items to a byte or word boundary)
|
||||
* in the HID report are skipped during report processing. It is highly unusual for an application to make any use of
|
||||
* constant data items (as they do not carry any useful data and only occupy limited RAM) however if required defining
|
||||
* this switch will put constant data items into the processed HID report structure.
|
||||
*
|
||||
* <b>HID_STATETABLE_STACK_DEPTH</b> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports may contain PUSH and POP elements, to store and retrieve the current HID state table onto a stack. This
|
||||
* allows for reports to save the state table before modifying it slightly for a data item, and then restore the previous
|
||||
* state table in a compact manner. This token may be defined to a non-zero 8-bit value to give the maximum depth of the state
|
||||
* table stack. If not defined, this defaults to the value indicated in the HID.h file documentation.
|
||||
*
|
||||
* <b>HID_USAGE_STACK_DEPTH</b> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports generally contain many USAGE elements, which are assigned to INPUT, OUTPUT and FEATURE items in succession
|
||||
* when multiple items are defined at once (via REPORT COUNT elements). This allows for several items to be defined with
|
||||
* different usages in a compact manner. This token may be defined to a non-zero 8-bit value to set the maximum depth of the
|
||||
* usage stack, indicating the maximum number of USAGE items which can be stored temporarily until the next INPUT, OUTPUT
|
||||
* and FEATURE item. If not defined, this defaults to the value indicated in the HID.h file documentation.
|
||||
*
|
||||
* <b>HID_MAX_COLLECTIONS</b> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports generally contain several COLLECTION elements, used to group related data items together. Collection information
|
||||
* is stored separately in the processed usage structure (and referred to by the data elements in the structure) to save space.
|
||||
* This token may be defined to a non-zero 8-bit value to set the maximum number of COLLECTION items which can be processed by the
|
||||
* parser into the resultant processed report structure. If not defined, this defaults to the value indicated in the HID.h file
|
||||
* documentation.
|
||||
*
|
||||
* <b>HID_MAX_REPORTITEMS</b> - ( \ref Group_HIDParser ) \n
|
||||
* All HID reports contain one or more INPUT, OUTPUT and/or FEATURE items describing the data which can be sent to and from the HID
|
||||
* device. Each item has associated usages, bit offsets in the item reports and other associated data indicating the manner in which
|
||||
* the report data should be interpreted by the host. This token may be defined to a non-zero 8-bit value to set the maximum number of
|
||||
* data elements which can be stored in the processed HID report structure, including INPUT, OUTPUT and (if enabled) FEATURE items.
|
||||
* If a item has a multiple count (i.e. a REPORT COUNT of more than 1), each item in the report count is placed separately in the
|
||||
* processed HID report table. If not defined, this defaults to the value indicated in the HID.h file documentation.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBTokens USB Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB driver stack as a whole in the LUFA library.
|
||||
*
|
||||
* <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Define this token to indicate to the USB driver that device descriptors are stored in RAM, rather than the default of
|
||||
* the AVR's flash. RAM descriptors may be desirable in applications where speed or minimizing flash usage is more important
|
||||
* than RAM usage, or applications where the descriptors need to be modified at runtime.
|
||||
*
|
||||
* <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Similar to USE_RAM_DESCRIPTORS, but descriptors are stored in the AVR's EEPROM memory rather than RAM.
|
||||
*
|
||||
* <b>USE_NONSTANDARD_DESCRIPTOR_NAMES</b> - ( \ref Group_Descriptors ) \n
|
||||
* The USB 2.0 standard gives some rather obscure names for the elements in the standard descriptor types (device, configuration,
|
||||
* string, endpoint, etc.). By default the LUFA library uses these names in its predefined descriptor structure types for
|
||||
* compatibility. If this token is defined, the structure element names are switched to the LUFA-specific but more descriptive
|
||||
* names documented in the StdDescriptors.h source file.
|
||||
*
|
||||
* <b>FIXED_CONTROL_ENDPOINT_SIZE</b> - ( \ref Group_EndpointManagement ) \n
|
||||
* By default, the library determines the size of the control endpoint (when in device mode) by reading the device descriptor.
|
||||
* Normally this reduces the amount of configuration required for the library, allows the value to change dynamically (if
|
||||
* descriptors are stored in EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this token can be
|
||||
* defined to a non-zero value instead to give the size in bytes of the control endpoint, to reduce the size of the compiled
|
||||
* binary.
|
||||
*
|
||||
* <b>USE_SINGLE_DEVICE_CONFIGURATION</b> - ( \ref Group_Device ) \n
|
||||
* By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces
|
||||
* the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in
|
||||
* EEPROM or RAM rather than flash memory) and reduces code maintenance. However, many USB device projects use only a single configuration.
|
||||
* Defining this token enables single-configuration mode, reducing the compiled size of the binary at the expense of flexibility.
|
||||
*
|
||||
* <b>CONTROL_ONLY_DEVICE</b> \n
|
||||
* In some limited USB device applications, there are no device endpoints other than the control endpoint; i.e. all device communication
|
||||
* is through control endpoint requests. Defining this token will remove several features related to the selection and control of device
|
||||
* endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.
|
||||
*
|
||||
* <b>NO_STREAM_CALLBACKS</b> - ( \ref Group_EndpointPacketManagement , \ref Group_PipePacketManagement )\n
|
||||
* Both the endpoint and the pipe driver code contains stream functions, allowing for arrays of data to be sent to or from the
|
||||
* host easily via a single function call (rather than complex routines worrying about sending full packets, waiting for the endpoint/
|
||||
* pipe to become ready, etc.). By default, these stream functions require a callback function which is executed after each byte processed,
|
||||
* allowing for early-aborts of stream transfers by the application. If callbacks are not required in an application, they can be removed
|
||||
* by defining this token, reducing the compiled binary size. When removed, the stream functions no longer accept a callback function as
|
||||
* a parameter.
|
||||
*
|
||||
* <b>USB_HOST_TIMEOUT_MS</b> - ( \ref Group_Host ) \n
|
||||
* When a control transfer is initiated in host mode to an attached device, a timeout is used to abort the transfer if the attached
|
||||
* device fails to respond within the timeout period. This token may be defined to a non-zero 16-bit value to set the timeout period for
|
||||
* control transfers, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
|
||||
*
|
||||
* <b>HOST_DEVICE_SETTLE_DELAY_MS</b> - ( \ref Group_Host ) \n
|
||||
* Some devices require a delay of up to 5 seconds after they are connected to VBUS before the enumeration process can be started, or
|
||||
* they will fail to enumerate correctly. By placing a delay before the enumeration process, it can be ensured that the bus has settled
|
||||
* back to a known idle state before communications occur with the device. This token may be defined to a non-zero 16-bit value to set
|
||||
* the device settle period, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
|
||||
*
|
||||
* <b>USE_STATIC_OPTIONS</b> - ( \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
|
||||
* 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
|
||||
* Options parameter.
|
||||
*
|
||||
* <b>USB_DEVICE_ONLY</b> - ( \ref Group_USBManagement ) \n
|
||||
* For the USB AVR models supporting both device and host USB modes, the USB_Init() function contains a Mode parameter which specifies the
|
||||
* mode the library should be initialized to. If only device mode is required, the code for USB host mode can be removed from the binary to
|
||||
* save space. When defined, the USB_Init() function no longer accepts a Mode parameter. This define is irrelevant on smaller USB AVRs which
|
||||
* do not support host mode.
|
||||
*
|
||||
* <b>USB_HOST_ONLY</b> - ( \ref Group_USBManagement ) \n
|
||||
* Same as USB_DEVICE_ONLY, except the library is fixed to USB host mode rather than USB device mode. Not available on some USB AVR models.
|
||||
*
|
||||
* <b>USB_STREAM_TIMEOUT_MS</b> - ( \ref Group_USBManagement ) \n
|
||||
* When endpoint and/or pipe stream functions are used, by default there is a timeout between each transfer which the connected device or host
|
||||
* must satisfy, or the stream function aborts the remaining data transfer. This token may be defined to a non-zero 16-bit value to set the timeout
|
||||
* period for stream transfers, specified in milliseconds. If not defined, the default value specified in LowLevel.h is used instead.
|
||||
*
|
||||
* <b>NO_LIMITED_CONTROLLER_CONNECT</b> - ( \ref Group_Events ) \n
|
||||
* On the smaller USB AVRs, the USB controller lacks VBUS events to determine the physical connection state of the USB bus to a host. In lieu of
|
||||
* VBUS events, the library attempts to determine the connection state via the bus suspension and wake up events instead. This however may be
|
||||
* slightly inaccurate due to the possibility of the host suspending the bus while the device is still connected. If accurate connection status is
|
||||
* required, the VBUS line of the USB connector should be routed to an AVR pin to detect its level, so that the USB_IsConnected global
|
||||
* can be accurately set and the USB_Connect and USB_Disconnect events manually raised by the RAISE_EVENT macro. When defined, this token disables
|
||||
* the library's auto-detection of the connection state by the aforementioned suspension and wake up events.
|
||||
*
|
||||
* <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.
|
||||
* 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 interrupts asynchronously to the user application.
|
||||
*/
|
||||
21
LUFA/ManPages/DevelopingWithLUFA.txt
Normal file
21
LUFA/ManPages/DevelopingWithLUFA.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/** \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_DevelopingWithLUFA Developing With LUFA
|
||||
*
|
||||
* This section of the manual contains information on LUFA development, such as Getting Started information,
|
||||
* information on compile-time tuning of the library and other developer-related sections.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_GettingStarted Getting Started
|
||||
* - \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
|
||||
*/
|
||||
|
||||
29
LUFA/ManPages/DeviceSupport.txt
Normal file
29
LUFA/ManPages/DeviceSupport.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/** \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_DeviceSupport Device and Hardware Support
|
||||
*
|
||||
* Currently supported AVR models:
|
||||
* - AT90USB1286 (USB Device Only)
|
||||
* - AT90USB1287 (USB Host and Device)
|
||||
* - AT90USB646 (USB Device Only)
|
||||
* - AT90USB647 (USB Host and Device)
|
||||
* - AT90USB82 (USB Device Only)
|
||||
* - AT90USB162 (USB Device Only)
|
||||
* - ATMEGA16U4 (USB Device Only)
|
||||
* - ATMEGA32U4 (USB Device Only)
|
||||
* - ATMEGA32U6 (USB Device Only)
|
||||
*
|
||||
* Currently supported Atmel boards:
|
||||
* - AT90USBKEY
|
||||
* - STK525
|
||||
* - STK526
|
||||
* - RZUSBSTICK
|
||||
* - ATAVRUSBRF01
|
||||
* - Custom User Boards
|
||||
*/
|
||||
|
||||
123
LUFA/ManPages/DirectorySummaries.txt
Normal file
123
LUFA/ManPages/DirectorySummaries.txt
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/** \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.
|
||||
*/
|
||||
|
||||
/** \dir LUFA/Common
|
||||
* \brief Common library header files.
|
||||
*
|
||||
* This folder contains header files which are common to all parts of the LUFA library. They may be used freely in
|
||||
* user applications.
|
||||
*
|
||||
* \dir LUFA/Drivers
|
||||
* \brief Library hardware and software drivers.
|
||||
*
|
||||
* This folder contains all the library hardware and software drivers for each supported board and USB AVR
|
||||
* microcontroller model.
|
||||
*
|
||||
* \dir LUFA/Drivers/Misc
|
||||
* \brief Miscellaneous driver files.
|
||||
*
|
||||
* This folder contains drivers for aspects other than the USB interface, board hardware or AVR peripherals.
|
||||
*
|
||||
* \dir LUFA/Drivers/Peripheral
|
||||
* \brief USB AVR peripheral driver files.
|
||||
*
|
||||
* This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible with
|
||||
* all USB AVR models.
|
||||
*
|
||||
* \dir LUFA/Drivers/Peripheral/AT90USBXXX67
|
||||
* \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files. Its original name is due to legacy
|
||||
* reasons.
|
||||
*
|
||||
* This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with
|
||||
* the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be
|
||||
* included by the user application - the dispatch header file located in the parent AT90USBXXX directory should be used
|
||||
* instead.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB
|
||||
* \brief USB controller peripheral driver files.
|
||||
*
|
||||
* This folder contains the main header files required to implement the USB interface in the USB supporting AVR models.
|
||||
* The header files contained directly in this folder should be included in the user application in order to gain USB
|
||||
* functionality, and the appropriate C source files in the LowLevel and HighLevel driver folders added to the compile
|
||||
* and link stages.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB/LowLevel
|
||||
* \brief Low level USB driver files.
|
||||
*
|
||||
* This folder contains low level USB driver source files required to implement USB functionality on the USB AVR microcontrollers.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB/HighLevel
|
||||
* \brief High level USB driver files.
|
||||
*
|
||||
* This folder contains high level USB driver source files required to implement USB functionality on the USB AVR microcontrollers.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB/Class
|
||||
* \brief USB Class helper driver files.
|
||||
*
|
||||
* This folder contains drivers for implementing functionality of standardized USB classes. These are not used directly by the library,
|
||||
* but provide a standard and library-maintained way of implementing functionality from some of the defined USB classes without extensive
|
||||
* development effort. Is is recommended that these drivers be used where possible to reduce maintenance of user applications.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB/Class/Device
|
||||
* \brief USB Device Class helper driver files.
|
||||
*
|
||||
* Device mode drivers for the standard USB classes.
|
||||
*
|
||||
* \dir LUFA/Drivers/USB/Class/Host
|
||||
* \brief USB Host Class helper driver files.
|
||||
*
|
||||
* Host mode drivers for the standard USB classes.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board
|
||||
* \brief Board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for interfacing with the physical hardware on supported commercial boards, primarily from
|
||||
* the Atmel corporation. Header files in this folder should be included in user applications requiring the functionality of
|
||||
* hardware placed on supported boards.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board/USBKEY
|
||||
* \brief USBKEY board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel USBKEY demonstration board. The header files in this folder should
|
||||
* not be included directly in user applications; the similarly named dispatch header files located in the parent Board directory
|
||||
* should be included instead.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board/STK526
|
||||
* \brief STK526 board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel STK526 development board. The header files in this folder should
|
||||
* not be included directly in user applications; the similarly named dispatch header files located in the parent Board directory
|
||||
* should be included instead.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board/STK525
|
||||
* \brief STK525 board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel STK525 development board. The header files in this folder should
|
||||
* not be included directly in user applications; the similarly named dispatch header files located in the parent Board directory
|
||||
* should be included instead.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board/RZUSBSTICK
|
||||
* \brief RZUSBSTICK board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel RZUSBSTICK board, as used in the Atmel "Raven" wireless kits. The header
|
||||
* files in this folder should not be included directly in user applications; the similarly named dispatch header files located in
|
||||
* the parent Board directory should be included instead.
|
||||
*
|
||||
* \dir LUFA/Drivers/Board/ATAVRUSBRF01
|
||||
* \brief ATAVRUSBRF01 board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel ATAVRUSBRF01 board, as used in several Atmel wireless demo kits. The header
|
||||
* files in this folder should not be included directly in user applications; the similarly named dispatch header files located in
|
||||
* the parent Board directory should be included instead.
|
||||
*
|
||||
* \dir LUFA/DriverStubs
|
||||
* \brief Driver stub header files for custom boards, to allow the LUFA board drivers to operate.
|
||||
*
|
||||
* This contains stub files for the LUFA board drivers. If the LUFA board drivers are used with board hardware other than those
|
||||
* directly supported by the library, the BOARD parameter of the application's makefile can be set to "USER", and these stub files
|
||||
* copied to the "/Board/" directory of the application's folder. When fleshed out with working driver code for the custom board,
|
||||
* the corresponding LUFA board APIs will work correctly with the non-standard board hardware.
|
||||
*/
|
||||
19
LUFA/ManPages/Donating.txt
Normal file
19
LUFA/ManPages/Donating.txt
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/** \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_Donating Donating to Support This Project
|
||||
*
|
||||
* \image html Author.jpg "Dean Camera, LUFA Developer"
|
||||
*
|
||||
* I am a 20 year old University student studying for a double degree in Computer Science and Electronics Engineering.
|
||||
* The development and support of this library requires much effort from myself, as I am the sole developer, maintainer
|
||||
* and supporter. Please consider donating a small amount to support this and my future Open Source projects - All
|
||||
* donations are <i>greatly</i> appreciated.
|
||||
*
|
||||
* <b>Donate to this project at http://www.fourwalledcubicle.com </b> via PayPal - Thanks in Advance!
|
||||
*/
|
||||
|
||||
22
LUFA/ManPages/FutureChanges.txt
Normal file
22
LUFA/ManPages/FutureChanges.txt
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
/** \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_FutureChanges Future Changes
|
||||
*
|
||||
* Below is a list of future changes which are proposed for the LUFA library, but not yet started/complete.
|
||||
* This gives an unordered list of future changes which will be available in future releases of the library.
|
||||
* If you have an item to add to this list, please contact the library author via email, the LUFA mailing list,
|
||||
* or post your suggestion as an enhancement request to the project bug tracker.
|
||||
*
|
||||
* - Make new host class drivers
|
||||
* - Document new host class drivers
|
||||
* - Convert Host mode demos to class drivers
|
||||
* - Add standardized descriptor names to class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
|
||||
* - Add multiple-report HID demo to the library
|
||||
* - Add dual role Mouse Host/Keyboard Device demo to the library
|
||||
* - Port LUFA to the AVR32 UC3B series microcontrollers
|
||||
* - Port LUFA to the Atmel ARM7 series microcontrollers
|
||||
*/
|
||||
131
LUFA/ManPages/GettingStarted.txt
Normal file
131
LUFA/ManPages/GettingStarted.txt
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
/** \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_GettingStarted Getting Started
|
||||
*
|
||||
* Out of the box, LUFA contains a large number of pre-made class demos for you to test, experiment with and
|
||||
* ultimately build upon for your own projects. All the demos come pre-configured to build and run correctly
|
||||
* on the AT90USB1287 AVR microcontroller, mounted on the Atmel USBKEY board and running at an 8MHz master clock.
|
||||
* This is due to two reasons; one, it is the hardware the author possesses, and two, it is the most popular Atmel
|
||||
* USB demonstration board to date.
|
||||
*
|
||||
*
|
||||
* \section Sec_Prerequisites Prerequisites
|
||||
* Before you can compile any of the LUFA library code or demos, you will need a recent distribution of avr-libc (1.6.2+)
|
||||
* and the AVR-GCC (4.2+) compiler. For Windows users, the best way to obtain these is the WinAVR project
|
||||
* (http://winavr.sourceforge.net) as this provides a single-file setup for everything required to compile your
|
||||
* own AVR projects.
|
||||
*
|
||||
*
|
||||
* \section Sec_Configuring Configuring the Demos, Bootloaders and Projects
|
||||
* If the target AVR model, clock speed, board or other settings are different to the current settings, they must be changed
|
||||
* and the project recompiled from the source code before being programmed into the AVR microcontroller. Most project
|
||||
* configuration options are located in the "makefile" build script inside each LUFA application's folder, however some
|
||||
* demo or application-specific configuration settings (such as the output format in the AudioOut demo) are located in the
|
||||
* main .c source file of the project. See each project's individual documentation for application-specific configuration
|
||||
* values.
|
||||
*
|
||||
* Each project "makefile" contains all the script and configuration data required to compile each project. When opened with
|
||||
* any regular basic text editor such as Notepad or WordPad (ensure that the save format is a pure ASCII text format) the
|
||||
* build configuration settings may be altered.
|
||||
*
|
||||
* Inside each makefile, a number of configuration variables are located, with the format "<VARIABLE NAME> = <VALUE>". For
|
||||
* each application, the important variables which should be altered are:
|
||||
*
|
||||
* - <b>MCU</b>, the target AVR processor.
|
||||
* - <b>BOARD</b>, the target board hardware
|
||||
* - <b>F_CLOCK</b>, the target raw master clock frequency, before any prescaling is performed
|
||||
* - <b>F_CPU</b>, the target AVR CPU master clock frequency, after any prescaling
|
||||
* - <b>CDEFS</b>, the C preprocessor defines which configure the source code
|
||||
*
|
||||
* These values should be changed to reflect the build hardware.
|
||||
*
|
||||
* \subsection SSec_MCU The MCU Parameter
|
||||
* This parameter indicates the target AVR model for the compiled application. This should be set to the model of the target AVR
|
||||
* (such as the AT90USB1287, or the ATMEGA32U4), in all lower-case (e.g. "at90usb1287"). Note that not all demos support all the
|
||||
* USB AVR models, as they may make use of peripherals or modes only present in some devices.
|
||||
*
|
||||
* For supported library AVR models, see main documentation page.
|
||||
*
|
||||
* \subsection SSec_BOARD The BOARD Parameter
|
||||
* This parameter indicates the target AVR board hardware for the compiled application. Some LUFA library drivers are board-specific,
|
||||
* such as the LED driver, and the library needs to know the layout of the target board. If you are using one of the board models listed
|
||||
* on the main library page, change this parameter to the board name in all UPPER-case.
|
||||
*
|
||||
* If you are not using any board-specific drivers in the LUFA library, or you are using a custom board layout, change this to read
|
||||
* "USER" (no quotes) instead of a standard board name. If the USER board type is selected and the application makes use of one or more
|
||||
* board-specific hardware drivers inside the LUFA library, then the appropriate stub drives files should be copied from the /BoardStubs/
|
||||
* directory into a /Board/ folder inside the application directory, and the stub driver completed with the appropriate code to drive the
|
||||
* custom board's hardware.
|
||||
*
|
||||
* \subsection SSec_F_CLOCK The F_CLOCK Parameter
|
||||
* This parameter indicates the target AVR's input clock frequency, in Hz. This is the actual clock input, before any prescaling is performed. In the
|
||||
* USB AVR architecture, the input clock before any prescaling is fed directly to the PLL subsystem, and thus the PLL is derived directly from the
|
||||
* clock input. The PLL then feeds the USB and other sections of the AVR with the correct upscaled frequencies required for those sections to function.
|
||||
*
|
||||
* <b>Note that this value does not actually *alter* the AVR's input clock frequency</b>, it is just a way to indicate to the library the clock frequency
|
||||
* of the AVR as set by the AVR's fuses. If this value does not reflect the actual running frequency of the AVR, incorrect operation of one of more
|
||||
* library components will occur.
|
||||
*
|
||||
* \subsection SSec_F_CPU The F_CPU Parameter
|
||||
* This parameter indicates the target AVR's master CPU clock frequency, in Hz.
|
||||
*
|
||||
* <b>Note that this value does not actually *alter* the AVR's CPU clock frequency</b>, it is just a way to indicate to the library the clock frequency
|
||||
* of the AVR core as set by the AVR's fuses. If this value does not reflect the actual running frequency of the AVR, incorrect operation of one of more
|
||||
* library components will occur.
|
||||
*
|
||||
* \subsection SSec_CDEFS The CDEFS Parameter
|
||||
* Most applications will actually have multiple CDEF lines, which are concatenated together with the "+=" operator. This ensures that large
|
||||
* numbers of configuration options remain readable by splitting up groups of options into separate lines.
|
||||
*
|
||||
* Normally, these options do not need to be altered to allow an application to compile and run correctly on a different board or AVR to the
|
||||
* current configuration - if the options are incorrect, then the demo is most likely incompatible with the chosen USB AVR model and cannot be
|
||||
* made to function through the altering of the makefile settings alone (or at all). Settings such as the USB mode (device, host or both), the USB
|
||||
* interface speed (Low or Full speed) and other LUFA configuration options can be set here - refer to the library documentation for details on the
|
||||
* configuration parameters.
|
||||
*
|
||||
*
|
||||
* \section Sec_Compiling Compiling a LUFA Application
|
||||
* Compiling the LUFA demos, applications and/or bootloaders is very simple. LUFA comes with makefile scripts for
|
||||
* each individual demo, bootloader and project folder, as well as scripts in the /Demos/, /Bootloaders/, /Projects/
|
||||
* and the LUFA root directory. This means that compilation can be started from any of the above directories, with
|
||||
* a build started from an upper directory in the directory structure executing build of all child directories under it.
|
||||
* This means that while a build inside a particular demo directory will build only that particular demo, a build stated
|
||||
* from the /Demos/ directory will build all LUFA demo projects sequentially.
|
||||
*
|
||||
* \subsection SSec_CommandLine Via the Command Line
|
||||
* To build a project from the source via the command line, the command <b>"make all"</b> should be executed from the command line in the directory
|
||||
* of interest. To remove compiled files (including the binary output, all intermediately files and all diagnostic output
|
||||
* files), execute <b>"make clean"</b>. Once a "make all" has been run and no errors were encountered, the resulting binary will
|
||||
* be located in the generated ".HEX" file. If your project makes use of pre-initialized EEPROM variables, the generated ".EEP"
|
||||
* file will contain the project's EEPROM data.
|
||||
*
|
||||
* \subsection SSec_AVRStudio Via AVRStudio
|
||||
* Each demo, project and bootloader contains an AVRStudio project (.aps) which can be used to build each project. Once opened
|
||||
* in AVRStudio, the project can be built and cleaned using the GUI buttons or menus. Note that the AVRStudio project files make
|
||||
* use of the external project makefile, thus the procedure for configuring a demo remains the same regardless of the build environment.
|
||||
*
|
||||
*
|
||||
* \section Sec_Programming Programming a USB AVR
|
||||
* Once you have built an application, you will need a way to program in the resulting ".HEX" file (and, if your
|
||||
* application uses EEPROM variables with initial values, also a ".EEP" file) into your USB AVR. Normally, the
|
||||
* reprogramming an AVR device must be performed using a special piece of programming hardware, through one of the
|
||||
* supported AVR programming protocols - ISP, HVSP, HVPP, JTAG or dW. This can be done through a custom programmer,
|
||||
* a third party programmer, or an official Atmel AVR tool - for more information, see the Atmel.com website.
|
||||
*
|
||||
* Alternatively, you can use the bootloader. From the Atmel factory, each USB AVR comes preloaded with the Atmel
|
||||
* DFU (Device Firmware Update) class bootloader, a small piece of AVR firmware which allows the remainder of the
|
||||
* AVR to be programmed through a non-standard interface such as the serial USART port, SPI, or (in this case) USB.
|
||||
* Bootloaders have the advantage of not requiring any special hardware for programming, and cannot usually be erased
|
||||
* or broken without an external programming device. They have disadvantages however; they cannot change the fuses of
|
||||
* the AVR (special configuration settings that control the operation of the chip itself) and a small portion of the
|
||||
* AVR's FLASH program memory must be reserved to contain the bootloader firmware, and thus cannot be used by the
|
||||
* loaded application. Atmel's DFU bootloader is either 4KB (for the smaller USB AVRs) or 8KB (for the larger USB AVRs).
|
||||
*
|
||||
* If you wish to use the DFU bootloader to program in your application, refer to your DFU programmer's documentation.
|
||||
* Atmel provides a free utility called FLIP which is USB AVR compatible, and an open source (Linux compatible)
|
||||
* alternative exists called "dfu-programmer".
|
||||
*/
|
||||
20
LUFA/ManPages/Groups.txt
Normal file
20
LUFA/ManPages/Groups.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
/** \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.
|
||||
*/
|
||||
|
||||
/** @defgroup Group_BoardDrivers Board Drivers
|
||||
*
|
||||
* Functions, macros, variables, enums and types related to the control of physical board hardware.
|
||||
*/
|
||||
|
||||
/** @defgroup Group_PeripheralDrivers On-chip Peripheral Drivers
|
||||
*
|
||||
* Functions, macros, variables, enums and types related to the control of AVR subsystems.
|
||||
*/
|
||||
|
||||
/** @defgroup Group_MiscDrivers Miscellaneous Drivers
|
||||
*
|
||||
* Miscellaneous driver Functions, macros, variables, enums and types.
|
||||
*/
|
||||
32
LUFA/ManPages/LUFAPoweredProjects.txt
Normal file
32
LUFA/ManPages/LUFAPoweredProjects.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/** \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_LUFAPoweredProjects User Projects Powered by LUFA
|
||||
*
|
||||
* LUFA is currently in use all around the world, in many applications both commercial and non-commercial. Below is a
|
||||
* list of known public LUFA powered projects, which all use the LUFA library in some way. Feel free to visit each project's
|
||||
* home page for more information on each project.
|
||||
*
|
||||
* If you have a project that you would like to add to this list, please contact me via the details on the main page of this
|
||||
* documentation.
|
||||
*
|
||||
*
|
||||
* - Benito #7, an AVR Programmer: http://www.dorkbotpdx.org/blog/feurig/benito_7_the_next_big_thing
|
||||
* - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
|
||||
* - USB10 AKA "The Ferret", a USB162 development board: http://www.soc-machines.com
|
||||
* - Bicycle POV: http://www.code.google.com/p/bicycleledpov/
|
||||
* - Digital Survey Instruments Magnetometer and Pointer: http://www.digitalsurveyinstruments.com/
|
||||
* - ARPS Locator: http://la3t.hamradio.no/lab//?id=tracker_en
|
||||
* - Lightweight CC110x USB dongle for 868MHz Protocols: http://busware.de/tiki-index.php?page=CUL
|
||||
* - AVROpendous, an open design/source AT90USB162 development board: http://avropendous.org/
|
||||
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
|
||||
* - USB to Serial Bridge, via SPI and I2C: http://www.tty1.net/userial/
|
||||
* - Teensy, another tiny AT90USB162 development board: http://www.pjrc.com/teensy/index.html
|
||||
* - SEGA Megadrive/Genesis Development Cartridge: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=464
|
||||
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
|
||||
* - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/
|
||||
* - Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/
|
||||
*/
|
||||
21
LUFA/ManPages/LibraryResources.txt
Normal file
21
LUFA/ManPages/LibraryResources.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/** \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_Resources Library Resources
|
||||
*
|
||||
* Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n
|
||||
* Development Blog: http://www.fourwalledcubicle.com/blog \n
|
||||
* Discussion Group: http://groups.google.com/group/myusb-support-list \n
|
||||
* SVN Access, Bug Reports and Feature Requests: http://code.google.com/p/lufa-lib/ \n
|
||||
* Author's Website: http://www.fourwalledcubicle.com \n
|
||||
*
|
||||
* WinAVR Website: http://winavr.sourceforge.net \n
|
||||
* avr-libc Website: http://www.nongnu.org/avr-libc/ \n
|
||||
*
|
||||
* USB-IF Website: http://www.usb.org \n
|
||||
*/
|
||||
|
||||
37
LUFA/ManPages/License.txt
Normal file
37
LUFA/ManPages/License.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/** \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_Licence License
|
||||
*
|
||||
* The LUFA library is currently released under the MIT licence, 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. Please
|
||||
* contact the author for more information.
|
||||
*
|
||||
* \verbatim
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* and its documentation for any purpose and without fee is hereby
|
||||
* granted, provided that the above copyright notice appear in all
|
||||
* copies and that both that the copyright notice and this
|
||||
* permission notice and warranty disclaimer appear in supporting
|
||||
* documentation, and that the name of the author not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
*
|
||||
* The author disclaim all warranties with regard to this
|
||||
* software, including all implied warranties of merchantability
|
||||
* and fitness. In no event shall the author be liable for any
|
||||
* special, indirect or consequential damages or any damages
|
||||
* whatsoever resulting from loss of use, data or profits, whether
|
||||
* in an action of contract, negligence or other tortious action,
|
||||
* arising out of or in connection with the use or performance of
|
||||
* this software.
|
||||
* \endverbatim
|
||||
*/
|
||||
34
LUFA/ManPages/MainPage.txt
Normal file
34
LUFA/ManPages/MainPage.txt
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/** \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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \mainpage General Information
|
||||
*
|
||||
* Lightweight USB Framework for AVRs Library, written by Dean Camera.
|
||||
*
|
||||
* Originally based on the AT90USBKEY from Atmel, it is an open-source USB library for the USB-enabled AVR
|
||||
* microcontrollers, released under the MIT license. It now supports a large number of USB AVR models and boards.
|
||||
*
|
||||
* The library is currently in a stable release, suitable for download and incorporation into user projects for
|
||||
* both host and device modes. For information about the project progression, check out my blog.
|
||||
*
|
||||
* LUFA is written specifically for the free AVR-GCC compiler, and uses several GCC-only extensions to make the
|
||||
* library API more streamlined and robust. You can download AVR-GCC for free in a convenient windows package,
|
||||
* from the the WinAVR website.
|
||||
*
|
||||
* \section Sec_Demos Demos and Bootloaders
|
||||
* The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory.
|
||||
* If this directory is missing, please re-download the project from the project homepage.
|
||||
*
|
||||
* Also included with the library are three fully functional bootloaders, located in the /Bootloaders/ subdirectory.
|
||||
* The DFU class bootloader is compatible with Atmel's FLIP software or the open source dfu-programmer project, the
|
||||
* CDC class (AVR109 protocol) is compatible with such open source software as AVRDUDE and AVR-OSP, and the TeensyLoader
|
||||
* HID class bootloader is compatible with the software from PJRC (http://www.pjrc.com/teensy/index.html).
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_Licence Project License
|
||||
* - \subpage Page_Donating Donating to Support this Project
|
||||
*/
|
||||
362
LUFA/ManPages/MigrationInformation.txt
Normal file
362
LUFA/ManPages/MigrationInformation.txt
Normal file
|
|
@ -0,0 +1,362 @@
|
|||
/** \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_Migration Migrating from Older Versions
|
||||
*
|
||||
* Below is migration information for updating existing projects based on previous versions of the LUFA library
|
||||
* to the next version released. It does not indicate all new additions to the library in each version change, only
|
||||
* areas relevant to making older projects compatible with the API changes of each new release.
|
||||
*
|
||||
* \section Sec_MigrationXXXXXX Migrating from 090605 to XXXXXX
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The "simple scheduler" has been removed, as it was little more than an abtracted loop and caused much confusion. User
|
||||
* applications using the scheduler should switch to regular loops instead.
|
||||
* - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
|
||||
* used in user applications. The library is available from the author's website for those wishing to still use it in their
|
||||
* applications.
|
||||
*
|
||||
* \section Sec_Migration090605 Migrating from 090510 to 090605
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - Support for non-control data endpoint interrupts has been dropped due to many issues in the implementation. All existing
|
||||
* projects using interrupts on non-control endpoints should switch to polling. For control interrupts, the library can
|
||||
* manage the control endpoint via interrupts automatically by compiling with the INTERRUPT_CONTROL_ENDPOINT token defined.
|
||||
* - The DESCRIPTOR_ADDRESS() macro has been removed. User applications should use normal casts to obtain a descriptor's memory
|
||||
* address.
|
||||
* - The library events system has been rewritten, so that all macros have been removed to allow for clearer user code. See
|
||||
* \ref Group_Events for new API details.
|
||||
* - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular
|
||||
* function signatures of a function accepting no arguments and returning a uint8_t value.
|
||||
* - The Event_DeviceError() event no longer exists, as its sole caller (unlinked USB_GetDescriptor() function) now produces a
|
||||
* compilation error rather than a runtime error. The StdDescriptors.c file no longer exists as a result, and should be removed
|
||||
* from project makefiles.
|
||||
* - The USB_GetDescriptor() function has been renamed to CALLBACK_USB_GetDescriptor() to be in line with the new CALLBACK_ function
|
||||
* prefixes for functions which *must* be implemented in the user application.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - Support for non-control data pipe interrupts has been dropped due to many issues in the implementation. All existing
|
||||
* projects using interrupts on non-control pipes should switch to polling.
|
||||
* - The library events system has been rewritten, so that all macros have been removed to allow for clearer user code. See
|
||||
* \ref Group_Events for new API details.
|
||||
* - The STREAM_CALLBACK() macro has been removed. User applications should replace all instances of the macro with regular
|
||||
* function signatures of a function accepting no arguments and returning a uint8_t value.
|
||||
* - The DESCRIPTOR_COMPARATOR() macro has been removed. User applications should replace all instances of the macro with
|
||||
* regular function signatures of a function accepting a void pointer to the descriptor to test, and returning a uint8_t value.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration090510 Migrating from 090401 to 090510
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The ButtLoadTag.h header has been removed, as it was never used for its intended purpose. Projects should either remove all
|
||||
* BUTTLOADTAG elements, or download and extract ButtLoadTag.h header from the ButtLoad project.
|
||||
* - The Drivers/AT90USBXXX directory has been renamed to Drivers/Peripheral.
|
||||
* - The Serial_Stream driver has been renamed to SerialStream to remain consistent with the rest of the library naming scheme.
|
||||
* - The HWB driver has changed to the Buttons driver. See the board Buttons driver documentation for the new API.
|
||||
*
|
||||
* <b>Dual Role Mode</b>
|
||||
* - The USB_PowerOnFail even has been renamed to USB_InitFailure.
|
||||
* - The functions in OTG.h have been renamed to remain more consistent with the library API. See the functions in OTG.h for more
|
||||
* details.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Most demos, bootloaders and applications have had significant changes from previous versions. Applications built off of any
|
||||
* library demos should update to the latest versions.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The Endpoint_ClearCurrentBank() macro has been removed, and is now replaced with the Endpoint_ClearIN(), Endpoint_ClearOUT()
|
||||
* macros. See Endpoint.h documentation for more details on the new endpoint management macros.
|
||||
* - The Endpoint_ReadWriteAllowed() macro has been renamed to Endpoint_IsReadWriteAllowed() to be more consistent with the rest of
|
||||
* the API naming scheme.
|
||||
* - The Endpoint_IsSetupINReady() and Endpoint_IsSetupOutReceived() macros have been renamed to Endpoint_IsINReady() and
|
||||
* Endpoint_IsOUTReceived() respectively.
|
||||
* - The Endpoint_IsSetupReceived() macro has been renamed to Endpoint_IsSETUPReceived().
|
||||
* - The Endpoint_ClearSetupReceived() macro has been renamed to Endpoint_ClearSETUP().
|
||||
* - All endpoint read/write/discard aliases which did not have an explicitly endianness specifier (such as Endpoint_Read_Word()) have
|
||||
* been removed for clarity. Existing projects should use the "_LE" suffix on such calls to use the explicit Little Endian versions.
|
||||
* - The USB_UnhandledControlPacket event no longer has any parameters. User code should no longer attempt to read in the remainder of
|
||||
* the Control Request header as all Control Request header data is now preloaded by the library and made available in the
|
||||
* USB_ControlRequest structure.
|
||||
* - The FEATURELESS_CONTROL_ONLY_DEVICE token has been renamed to CONTROL_ONLY_DEVICE.
|
||||
* - The STATIC_ENDPOINT_CONFIGURATION is no longer applicable as the library will apply this optimization when appropriate automatically.
|
||||
* - The values of the Endpoint_Stream_RW_ErrorCodes_t and Endpoint_ControlStream_RW_ErrorCodes_t enums have had the "ERROR_" portion
|
||||
* of their names removed.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The USB_Host_SendControlRequest() function no longer automatically selects the Control pipe (pipe 0) to allow it to be used on
|
||||
* other control type pipes. Care should be taken to ensure that the Control pipe is always selected before the function is called
|
||||
* in existing projects where the Control pipe is to be operated on.
|
||||
* - The USB Host management task now saves and restores the currently selected pipe before and after the task runs. Projects no longer
|
||||
* need to manage this manually when calling the USB management task.
|
||||
* - The Pipe_ClearCurrentBank() macro has been removed, and is now replaced with the Pipe_ClearIN(), Pipe_ClearOUT() macros. See
|
||||
* Pipe.h documentation for more details on the new pipe management macros.
|
||||
* - The Pipe_ReadWriteAllowed() macro has been renamed to Pipe_IsReadWriteAllowed() to be more consistent with the rest of the API
|
||||
* naming scheme.
|
||||
* - The Pipe_IsSetupINReceived() and Pipe_IsOutReady() macros have been renamed to Pipe_IsINReceived() and Pipe_IsOUTReady()
|
||||
* respectively.
|
||||
* - The new Pipe_ClearSETUP() macro should be used to send SETUP transactions, rather than the previous Pipe_ClearSetupOUT() macro.
|
||||
* - The Pipe_IsSetupSent() macro has been renamed to Pipe_IsSETUPSent().
|
||||
* - The Pipe_ClearSetupSent() macro is no longer applicable and should be removed.
|
||||
* - All pipe read/write/discard aliases which did not have an explicitly endianness specifier (such as Pipe_Read_Word()) have
|
||||
* been removed for clarity. Existing projects should use the "_LE" suffix on such calls to use the explicit Little Endian versions.
|
||||
* - The Host_IsResetBusDone() macro has been renamed to Host_IsBusResetComplete().
|
||||
* - The Pipe_Ignore_Word() and Pipe_Ignore_DWord() functions have been renamed to Pipe_Discard_Word() and Pipe_Discard_DWord() to remain
|
||||
* consistent with the rest of the pipe API.
|
||||
* - It is no longer needed to manually include the headers from LUFA/Drivers/USB/Class, as they are now included along with the rest
|
||||
* of the USB headers when LUFA/Drivers/USB/USB.h is included.
|
||||
* - Functions in the ConfigDescriptor.h header file no longer have "Host_" as part of their names.
|
||||
* - The ProcessHIDReport() has been renamed to USB_ProcessHIDReport(), GetReportItemInfo() has been renamed to USB_GetHIDReportItemInfo()
|
||||
* and SetReportItemInfo() has been renamed to USB_GetHIDReportItemInfo().
|
||||
* - The values of the DSearch_Return_ErrorCodes_t and DSearch_Comp_Return_ErrorCodes_t enums have had their respective "Descriptor_Search"
|
||||
* and "Descriptor_Search_Comp" prefixes changed to all caps.
|
||||
* - The USB_HostRequest global has been renamed to USB_ControlRequest, and is used in Device mode also. The USB_Host_Request_Header_t
|
||||
* structure type has been renamed to USB_Request_Header_t.
|
||||
* - The values of the Pipe_Stream_RW_ErrorCodes_t enum have had the "ERROR_" portion of their names removed.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration090401 Migrating from 090209 to 090401
|
||||
*
|
||||
* <b>All</b>
|
||||
* - LUFA projects must now give the raw input clock frequency (before any prescaling) as a compile time constant "F_CLOCK",
|
||||
* defined in the project makefile and passed to the compiler via the -D switch.
|
||||
* - The makefile EEPROM programming targets for FLIP and dfu-programmer no longer program in the FLASH data in addition to the
|
||||
* EEPROM data into the device. If both are to be programmed, both the EEPROM and FLASH programming targets must be called.
|
||||
* - As the avr-libc macro has been corrected in recent avr-libc distributions, the SetSystemClockPrescaler() macro has been removed.
|
||||
* Include <avr/power.h> and call clock_prescale_set(clock_div_1); instead on recent avr-libc distributions.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - The USBtoSerial demo now discards all data when not connected to a host, rather than buffering it for later transmission.
|
||||
* - Most demos, bootloaders and applications have had their control request handling code corrected, to properly send the status
|
||||
* stage in all handled requests. If you are using code based off one of the library demos, bootloaders or applications, you should
|
||||
* update to the latest revisions.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The ATTR_ALWAYSINLINE function attribute macro has been renamed to ATTR_ALWAYS_INLINE.
|
||||
* - Custom board Dataflash drivers now require the implementation of Dataflash_SelectChipFromPage() and Dataflash_SendAddressBytes().
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The NO_CLEARSET_FEATURE_REQUEST compile time token has been renamed to FEATURELESS_CONTROL_ONLY_DEVICE, and its function expanded
|
||||
* to also remove parts of the Get Status chapter 9 request to further reduce code usage. On all applications currently using the
|
||||
* NO_CLEARSET_FEATURE_REQUEST compile time token, it can be replaced with the FEATURELESS_CONTROL_ONLY_DEVICE token with no further
|
||||
* modifications required.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration090209 Migrating from 081217 to 090209
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The ENDPOINT_MAX_ENDPOINTS constant has been renamed to the more appropriate name of ENDPOINT_TOTAL_ENDPOINTS.
|
||||
* - The USB_STREAM_TIMEOUT_MS stream timeout default period has been extended to 100ms. This can be overridden in the user
|
||||
* makefile if desired to restore the previous 50ms timeout.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The PIPE_MAX_ENDPOINTS constant has been renamed to the more appropriate name of PIPE_TOTAL_ENDPOINTS.
|
||||
* - The USB_STREAM_TIMEOUT_MS stream timeout default period has been extended to 100ms. This can be overridden in the user
|
||||
* makefile if desired to restore the previous 50ms timeout.
|
||||
* - The USB_DeviceEnumerationFailed event now contains a second "SubErrorCode" parameter, giving the error code of the function
|
||||
* which failed.
|
||||
* - The HID_PARSE_Sucessful enum member constant has been corrected to HID_PARSE_Successful.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - 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_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.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Most library demos have been enhanced and/or had errors corrected. All users of all demos should upgrade their codebase to
|
||||
* the latest demo versions.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration171208 Migrating from V1.5.3 to 081217
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The MyUSB project name has been changed to LUFA (Lightweight Framework for USB AVRs). All references to MyUSB, including macro names,
|
||||
* have been changed to LUFA.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - The ReconfigureUSART() routine in the USBtoSerial demo was not being called after new line encoding
|
||||
* parameters were set by the host. Projects built on the USBtoSerial code should update to the latest version.
|
||||
* - The HID Parser now supports multiple report (on a single endpoint) HID devices. The MouseHostWithParser and
|
||||
* KeyboardHostWithPaser demos use the updated API functions to function correctly on such devices. Projects
|
||||
* built on either "WithParser" demo should update to the latest code.
|
||||
* - The RNDIS demo TCP stack has been modified so that connections can be properly closed. It is still not
|
||||
* recommended that the MyUSB RNDIS demo TCP/IP stack be used for anything other than demonstration purposes,
|
||||
* as it is neither a full nor a standards compliant implementation.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The Serial_IsCharRecieved() macro has been changed to the correct spelling of Serial_IsCharReceived() in Serial.h.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The MANUAL_PLL_CONTROL compile time token has been removed, and replaced with a USB_OPT_MANUAL_PLL mask
|
||||
* to be used in the Options parameter of the USB_Init() function.
|
||||
* - Calling USB_Init() now forces a complete USB interface reset and enumeration, even if the USB interface is
|
||||
* currently initialized.
|
||||
* - Interrupts are now disabled when processing control requests, to avoid problems with interrupts causing the library
|
||||
* or user request processing code to exceed the strict USB timing requirements on control transfers.
|
||||
* - The USB Reset event now resets and disables all device endpoints. If user code depends on endpoints remaining configured
|
||||
* after a Reset event, it should be altered to explicitly re-initialize all user endpoints.
|
||||
* - The prototype for the GetDescriptor function has been changed, as the return value was redundant. The function now
|
||||
* returns the size of the descriptor, rather than passing it back via a parameter, or returns NO_DESCRIPTOR if the specified
|
||||
* descriptor does not exist.
|
||||
* - The NO_DESCRIPTOR_STRING macro has been renamed NO_DESCRIPTOR, and is now also used as a possible return value for the
|
||||
* GetDescriptor function.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The MANUAL_PLL_CONTROL compile time token has been removed, and replaced with a USB_OPT_MANUAL_PLL mask
|
||||
* to be used in the Options parameter of the USB_Init() function.
|
||||
* - The HID report parser now supports multiple Report IDs. The HID report parser GetReportItemInfo() and
|
||||
* SetReportItemInfo() routines now return a boolean, set if the requested report item was located in the
|
||||
* current report. If sending a report to a multi-report device, the first byte of the report is automatically
|
||||
* set to the report ID of the given report item.
|
||||
* - Calling USB_Init() now forces a complete USB interface reset and enumeration, even if the USB interface is
|
||||
* currently initialized.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration152 Migrating from V1.5.2 to V1.5.3
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Previously, all demos contained a serial number string descriptor, filled with all zeros. A serial number
|
||||
* string is required in Mass Storage devices, or devices which are to retain settings when moved between
|
||||
* ports on a machine. As people were not changing the serial number value, this was causing conflicts and so
|
||||
* the serial number descriptor has been removed from all but the Mass Storage demo, which requires it.
|
||||
* - The AudioOut and AudioIn demos did not previously silence their endpoints when the host has deactivated
|
||||
* them. Projects built upon either demo should upgrade to the latest code.
|
||||
* - The FEATURE_ENDPOINT macro has been renamed FEATURE_ENDPOINT_HALT, and is now correctly documented.
|
||||
* - The MassStoreHost demo contained errors which caused it to lock up randomly on certain devices. Projects built
|
||||
* on the MassStoreDemo code should update to the latest version.
|
||||
* - The Interrupt type endpoint in the CDC based demos previously had a polling interval of 0x02, which caused
|
||||
* problems on some Linux systems. This has been changed to 0xFF, projects built on the CDC demos should upgrade
|
||||
* to the latest code.
|
||||
* - The HID keyboard and mouse demos were not previously boot mode compatible. To enable boot mode support, projects
|
||||
* built on the keyboard or mouse demos (or derivatives) should upgrade to the latest code.
|
||||
* - The Mass Storage demo was not previously standards compliant. Projects built on the Mass Storage demo should
|
||||
* upgrade to the latest code.
|
||||
* - The USART was not being reconfigured after the host sent new encoding settings in the USBtoSerial demo. This was
|
||||
* previously discovered and fixed, but the change was lost. Projects built on the USBtoSerial demo should update
|
||||
* to the latest code.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The endpoint non-control stream functions now have a default timeout of 50ms between packets in the stream.
|
||||
* If this timeout is exceeded, the function returns the new ENDPOINT_RWSTREAM_ERROR_Timeout error value. The
|
||||
* timeout value can be overridden by defining the USB_STREAM_TIMEOUT_MS in the project makefile to the desired
|
||||
* timeout duration in ms.
|
||||
* - Rather than returning fixed values, the flags indicating if the device has Remote Wakeup currently enabled
|
||||
* and/or is self-powered are now accessed and set through the new USB_RemoteWakeupEnabled and
|
||||
* USB_CurrentlySelfPowered macros. See the DevChapter9.h documentation for more details.
|
||||
* - All endpoint stream functions now require an extra Callback function parameter. Existing code may be updated
|
||||
* to either supply NO_STREAM_CALLBACK as the extra parameter, or disable stream callbacks altogether by passing
|
||||
* the token NO_STREAM_CALLBACKS to the compiler using the -D switch.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The pipe non-control stream functions now have a default timeout of 50ms between packets in the stream.
|
||||
* If this timeout is exceeded, the function returns the new PIPE_RWSTREAM_ERROR_Timeout error value. The
|
||||
* timeout value can be overridden by defining the USB_STREAM_TIMEOUT_MS in the project makefile to the desired
|
||||
* timeout duration in ms.
|
||||
* - CollectionPath_t has been renamed to HID_CollectionPath_t to be more in line with the other HID parser structures.
|
||||
* - All pipe stream functions now require an extra Callback function parameter. Existing code may be updated
|
||||
* to either supply NO_STREAM_CALLBACK as the extra parameter, or disable stream callbacks altogether by passing
|
||||
* the token NO_STREAM_CALLBACKS to the compiler using the -D switch.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration151 Migrating from V1.5.1 to V1.5.2
|
||||
*
|
||||
* <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
|
||||
* 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.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration150 Migrating from V1.5.0 to V1.5.1
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - The USBtoSerial demo was broken in the 1.5.0 release, due to incorrect register polling in place of the
|
||||
* global "Transmitting" flag. The change has been reverted in this release. Projects built upon the demo
|
||||
* should upgrade to the latest code.
|
||||
* - The HID class demos did not implement the mandatory GetReport HID class request. Projects built upon the HID
|
||||
* demos should upgrade to the latest code.
|
||||
* - The HID class demos incorrectly reported themselves as boot-protocol enabled HID devices in their descriptors.
|
||||
* Projects built upon the HID demos should upgrade to the latest code.
|
||||
* - The MIDI device demo had incorrect AudioStreaming interface descriptors. Projects built upon the MIDI demo
|
||||
* should upgrade to the latest code.
|
||||
* - The AudioOut demo did not correctly tristate the speaker pins when USB was disconnected, wasting power.
|
||||
* Projects built upon the AudioOut demo should upgrade to the latest code.
|
||||
*
|
||||
*
|
||||
* \section Sec_Migration141 Migrating from V1.4.1 to V1.5.0
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Previous versions of the library demos had incorrectly encoded BCD version numbers in the descriptors. To
|
||||
* avoid such mistakes in the future, the VERSION_BCD macro has been added to StdDescriptors.h. Existing
|
||||
* projects should at least manually correct the BCD version numbers, or preferably update the descriptors to
|
||||
* encode the version number in BCD format using the new macro.
|
||||
* - The mandatory GetReport class-specific request was accidentally omitted from previous versions of the demos
|
||||
* based on the Human Interface Device (HID) class. This has been corrected, and any user projects based on the
|
||||
* HID demos should also be updated accordingly.
|
||||
* - The CDC demos now correctly send an empty packet directly after a full packet, to end the transmission.
|
||||
* Failure to do this on projects which always or frequently send full packets will cause buffering issues on
|
||||
* the host OS. All CDC user projects are advised to update their transmission routines in the same manner as
|
||||
* the library CDC demos.
|
||||
* - The previous interrupt-driven Endpoint/Pipe demos did not properly save and restore the currently selected
|
||||
* Endpoint/Pipe when the ISR fired. This has been corrected - user projects based on the interrupt driven
|
||||
* demos should also update to properly save and restore the selected Endpoint/Pipe.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The Atomic.h and ISRMacro.h header files in MyUSB/Common have been removed, as the library is now only
|
||||
* compatible with avr-libc library versions newer than the time before the functionality of the deleted
|
||||
* headers was available.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The GetDescriptor function (see StdDescriptors.h) now has a new prototype, with altered parameter names and
|
||||
* functions. Existing projects will need to update the GetDescriptor implementation to reflect the new API.
|
||||
* The previously split Type and Index parameters are now passed as the original wValue parameter to the
|
||||
* function, to make way for the USB specification wIndex parameter which is <i>not</i> the same as the
|
||||
* previous Index parameter.
|
||||
* - The USB_UnhandledControlPacket event (see Events.h) now has new parameter names, to be in line with the
|
||||
* official USB specification. Existing code will need to be altered to use the new parameter names.
|
||||
* - The USB_CreateEndpoints event (see Events.h) has been renamed to USB_ConfigurationChanged, which is more
|
||||
* 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
|
||||
* 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
|
||||
* with no other considerations required. See Endpoint.h for the new macro names.
|
||||
* - The previous version of the MassStorage demo had an incorrect value in the SCSI_Request_Sense_Response_t
|
||||
* structure named SenseData in SCSI.c which caused some problems with some hosts. User projects based on this
|
||||
* demo should correct the structure value to maintain compatibility across multiple OS platforms.
|
||||
* - By default, the descriptor structures use the official USB specification names for the elements. Previous
|
||||
* versions of the library used non-standard (but more verbose) names, which are still usable in the current
|
||||
* and future releases when the correct compile time option is enabled. See the StdDescriptors.h file
|
||||
* documentation for more details.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The USB_Host_Request_Header_t structure in HostChapter9.h (used for issuing control requests) has had its
|
||||
* members renamed to the official USB specification names for requests. Existing code will need to be updated
|
||||
* to use the new names.
|
||||
* - The names of several Pipe 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
|
||||
* with no other considerations required. See Pipe.h for the new macro names.
|
||||
* - By default, the descriptor structures use the official USB specification names for the elements. Previous
|
||||
* versions of the library used non-standard (but more verbose) names, which are still usable in the current
|
||||
* and future releases when the correct compile time option is enabled. See the StdDescriptors.h file
|
||||
* documentation for more details.
|
||||
* - The names of the macros in Host.h for controlling the SOF generation have been renamed, see the Host.h
|
||||
* module documentation for the new macro names.
|
||||
*
|
||||
* <b>Dual Role Mode</b>
|
||||
* - The OTG.h header file has been corrected so that the macros now perform their stated functions. Any existing
|
||||
* projects using custom headers to fix the broken OTG header should now be altered to once again use the OTG
|
||||
* header inside the library.
|
||||
* - The USB_DeviceEnumerationComplete event (see Events.h) now also fires in Device mode, when the host has
|
||||
* finished enumerating the device. Projects relying on the event only firing in Host mode should be updated
|
||||
* so that the event action only occurs when the USB_Mode global is set to USB_MODE_HOST.
|
||||
*/
|
||||
416
LUFA/ManPages/VIDAndPIDValues.txt
Normal file
416
LUFA/ManPages/VIDAndPIDValues.txt
Normal file
|
|
@ -0,0 +1,416 @@
|
|||
/** \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_VIDPID VID and PID values
|
||||
*
|
||||
* The LUFA library uses VID/PID combinations generously donated by Atmel. The following VID/PID combinations
|
||||
* are used within the LUFA demos, and thus may be re-used by derivations of each demo. Free PID values may be
|
||||
* used by future LUFA demo projects.
|
||||
*
|
||||
* These VID/PID values should not be used in commercial designs under any circumstances. Private projects may
|
||||
* use the following values freely, but must accept any collisions due to other LUFA derived private projects
|
||||
* sharing identical values. It is suggested that private projects using interfaces compatible with existing
|
||||
* demos share the save VID/PID value.
|
||||
*
|
||||
* <table>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* <b>VID</b>
|
||||
* </td>
|
||||
* <td>
|
||||
* <b>PID</b>
|
||||
* </td>
|
||||
* <td>
|
||||
* <b>Usage</b>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2040
|
||||
* </td>
|
||||
* <td>
|
||||
* Test Application
|
||||
* </td>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2041
|
||||
* </td>
|
||||
* <td>
|
||||
* Mouse Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2042
|
||||
* </td>
|
||||
* <td>
|
||||
* Keyboard Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2043
|
||||
* </td>
|
||||
* <td>
|
||||
* Joystick Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2044
|
||||
* </td>
|
||||
* <td>
|
||||
* CDC Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2045
|
||||
* </td>
|
||||
* <td>
|
||||
* Mass Storage Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2046
|
||||
* </td>
|
||||
* <td>
|
||||
* Audio Output Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2047
|
||||
* </td>
|
||||
* <td>
|
||||
* Audio Input Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2048
|
||||
* </td>
|
||||
* <td>
|
||||
* MIDI Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2049
|
||||
* </td>
|
||||
* <td>
|
||||
* MagStripe Project
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204A
|
||||
* </td>
|
||||
* <td>
|
||||
* CDC Bootloader
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204B
|
||||
* </td>
|
||||
* <td>
|
||||
* USB to Serial Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204C
|
||||
* </td>
|
||||
* <td>
|
||||
* RNDIS Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204D
|
||||
* </td>
|
||||
* <td>
|
||||
* Keyboard and Mouse Combination Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204E
|
||||
* </td>
|
||||
* <td>
|
||||
* Dual CDC Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x204F
|
||||
* </td>
|
||||
* <td>
|
||||
* Generic HID Demo Application
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2060
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2061
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2062
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2063
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2064
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2065
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2066
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2067
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2068
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2069
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206A
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206B
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206C
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206D
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206E
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x206F
|
||||
* </td>
|
||||
* <td>
|
||||
* <i>Currently Unallocated</i>
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* </table>
|
||||
*/
|
||||
26
LUFA/ManPages/WritingBoardDrivers.txt
Normal file
26
LUFA/ManPages/WritingBoardDrivers.txt
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/** \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_WritingBoardDrivers Writing LUFA Board Drivers
|
||||
*
|
||||
* LUFA ships with several basic pre-made board drivers, to control hardware present on the supported board
|
||||
* hardware - such as Dataflash ICs, LEDs, Joysticks, or other hardware peripherals. When compiling an application
|
||||
* which makes use of one or more board drivers located in LUFA/Drivers/Board, you must also indicate what board
|
||||
* hardware you are using in your project makefile. This is done by defining the BOARD macro using the -D switch
|
||||
* passed to the compiler, with a constant of BOARD_{Name}. For example <b>-DBOARD=BOARD_USBKEY</b> instructs the
|
||||
* compiler to use the USBKEY board hardware drivers.
|
||||
*
|
||||
* If your application does not use *any* board level drivers, you can omit the definition of the BOARD macro.
|
||||
* However, some users may wish to write their own custom board hardware drivers which are to remain compatible
|
||||
* with the LUFA hardware API. To do this, the BOARD macro should be defined to the value BOARD_USER. This indicates
|
||||
* that the board level drivers should be located in a folder named "Board" located inside the application's folder.
|
||||
*
|
||||
* When used, the driver stub files located in the DriverStubs folder should be copied to the user Board directory,
|
||||
* and fleshed out to include the values and code needed to control the custom board hardware. Once done, the existing
|
||||
* LUFA board level APIs (accessed in the regular LUFA/Drivers/Board/ folder) will redirect to the user board drivers,
|
||||
* maintaining code compatibility and allowing for a different board to be selected through the project makefile with
|
||||
* no code changes.
|
||||
*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue