Add svn:eol-style property to source files, so that the line endings are correctly converted to the target system's native end of line style.
This commit is contained in:
parent
e331b531c6
commit
071e02c6b6
839 changed files with 274562 additions and 274562 deletions
|
@ -1,20 +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
|
||||
*/
|
||||
/** \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
|
||||
*/
|
||||
|
|
@ -1,62 +1,62 @@
|
|||
/** \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_AlternativeStacks Alternative USB AVR Stacks
|
||||
*
|
||||
* LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (see \ref Page_WhyUseLUFA).
|
||||
* In the interests of completeness and user choice, other known USB AVR stacks are listed here.
|
||||
*
|
||||
* \section Sec_HardwareStacks Hardware USB AVR Stacks
|
||||
* These are the known alternative USB stacks which are designed for and run exclusively on the USB AVR series microcontrollers,
|
||||
* which contain on-chip USB controller hardware for maximum features and speed.
|
||||
*
|
||||
* - <b>Name:</b> Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> Atmel Limited License (see Atmel download for details) \n
|
||||
* <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
|
||||
* <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
|
||||
* USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
|
||||
*
|
||||
* - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> GPL \n
|
||||
* <b>Website:</b> http://www.ssalewski.de/AT90USB_firmware.html.en \n
|
||||
* <b>Description:</b> This is a GPL'd library specifically designed for the AT90USB1287, by Dr. Stefan Salewski, a
|
||||
* German Physicist. It compiles for AVR-GCC and can potentially be modified to work on other USB
|
||||
* AVR models.
|
||||
*
|
||||
* - <b>Name:</b> PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> BSD \n
|
||||
* <b>Website:</b> http://www.pjrc.com/teensy/usb_debug_only.html \n
|
||||
* <b>Description:</b> Not so much a complete stack as a collection of USB enabled demos, this library is specifically
|
||||
* designed for the PJRC Teensy line of USB AVRs, and thus may need to be modified for other USB AVR
|
||||
* chips. These minimal code samples shows the inner workings of the USB controller, without all the
|
||||
* abstraction present in most other USB AVR stacks.
|
||||
*
|
||||
* \section Sec_SoftwareStacks Software AVR Stacks
|
||||
* These are the known alternative USB stacks which can run on regular AVR models, lacking dedicated hardware USB controllers
|
||||
* via a bit-banged (emulated) version of the USB protocol. They are limited in their capabilities due to the cycles required
|
||||
* to be dedicated to managing the USB bus, but offer a cheap way to implement USB functionality into a design.
|
||||
*
|
||||
* - <b>Name:</b> AVR309: Software USB (<i>Atmel</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> None Stated \n
|
||||
* <b>Website:</b> http://www.atmel.com/dyn/Products/app_notes.asp?family_id=607 \n
|
||||
* <b>Description:</b> Atmel's official software USB implementation, an Application Note containing work by Igor Cesko. This
|
||||
* is a minimal assembly-only implementation of software USB, providing HID functionality. Less compile
|
||||
* options than V-USB (see below).
|
||||
*
|
||||
* - <b>Name:</b> V-USB (<i>Objective Development</i>) \n
|
||||
* <b>Cost:</b> Free for some uses, see website for licensing \n
|
||||
* <b>License:</b> Dual GPL2/Custom \n
|
||||
* <b>Website:</b> http://www.obdev.at/products/vusb/index.html \n
|
||||
* <b>Description:</b> Well regarded and complete USB 1.1 software stack for several AVR models, implementing Low Speed HID.
|
||||
* Used in many commercial and non-commercial designs, with user-submitted projects available for viewing
|
||||
* on the company's website. Uses C language code mixed with assembly for time-critical sections.
|
||||
*/
|
||||
/** \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_AlternativeStacks Alternative USB AVR Stacks
|
||||
*
|
||||
* LUFA is not the only stack available for the USB AVRs, although it is perhaps the best (see \ref Page_WhyUseLUFA).
|
||||
* In the interests of completeness and user choice, other known USB AVR stacks are listed here.
|
||||
*
|
||||
* \section Sec_HardwareStacks Hardware USB AVR Stacks
|
||||
* These are the known alternative USB stacks which are designed for and run exclusively on the USB AVR series microcontrollers,
|
||||
* which contain on-chip USB controller hardware for maximum features and speed.
|
||||
*
|
||||
* - <b>Name:</b> Atmel USB AVR Stack (<i>Atmel Inc.</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> Atmel Limited License (see Atmel download for details) \n
|
||||
* <b>Website:</b> http://atmel.com/dyn/products/app_notes.asp?family_id=607#USB \n
|
||||
* <b>Description:</b> This is the official Atmel USB AVR stack, for their 8-bit USB AVR lineup. Each series of
|
||||
* USB AVR is seperated into a seperate download stack, which is both AVR-GCC and IAR compatible.
|
||||
*
|
||||
* - <b>Name:</b> Dr. Stefan Salewski's AT90USB1287 Stack (<i>Dr. Stefan Salewski</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> GPL \n
|
||||
* <b>Website:</b> http://www.ssalewski.de/AT90USB_firmware.html.en \n
|
||||
* <b>Description:</b> This is a GPL'd library specifically designed for the AT90USB1287, by Dr. Stefan Salewski, a
|
||||
* German Physicist. It compiles for AVR-GCC and can potentially be modified to work on other USB
|
||||
* AVR models.
|
||||
*
|
||||
* - <b>Name:</b> PJRC Teensy Stack (<i>Paul Stoffregen</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> BSD \n
|
||||
* <b>Website:</b> http://www.pjrc.com/teensy/usb_debug_only.html \n
|
||||
* <b>Description:</b> Not so much a complete stack as a collection of USB enabled demos, this library is specifically
|
||||
* designed for the PJRC Teensy line of USB AVRs, and thus may need to be modified for other USB AVR
|
||||
* chips. These minimal code samples shows the inner workings of the USB controller, without all the
|
||||
* abstraction present in most other USB AVR stacks.
|
||||
*
|
||||
* \section Sec_SoftwareStacks Software AVR Stacks
|
||||
* These are the known alternative USB stacks which can run on regular AVR models, lacking dedicated hardware USB controllers
|
||||
* via a bit-banged (emulated) version of the USB protocol. They are limited in their capabilities due to the cycles required
|
||||
* to be dedicated to managing the USB bus, but offer a cheap way to implement USB functionality into a design.
|
||||
*
|
||||
* - <b>Name:</b> AVR309: Software USB (<i>Atmel</i>) \n
|
||||
* <b>Cost:</b> Free \n
|
||||
* <b>License:</b> None Stated \n
|
||||
* <b>Website:</b> http://www.atmel.com/dyn/Products/app_notes.asp?family_id=607 \n
|
||||
* <b>Description:</b> Atmel's official software USB implementation, an Application Note containing work by Igor Cesko. This
|
||||
* is a minimal assembly-only implementation of software USB, providing HID functionality. Less compile
|
||||
* options than V-USB (see below).
|
||||
*
|
||||
* - <b>Name:</b> V-USB (<i>Objective Development</i>) \n
|
||||
* <b>Cost:</b> Free for some uses, see website for licensing \n
|
||||
* <b>License:</b> Dual GPL2/Custom \n
|
||||
* <b>Website:</b> http://www.obdev.at/products/vusb/index.html \n
|
||||
* <b>Description:</b> Well regarded and complete USB 1.1 software stack for several AVR models, implementing Low Speed HID.
|
||||
* Used in many commercial and non-commercial designs, with user-submitted projects available for viewing
|
||||
* on the company's website. Uses C language code mixed with assembly for time-critical sections.
|
||||
*/
|
||||
|
|
@ -1,22 +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.
|
||||
*/
|
||||
/** \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.
|
||||
*/
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,200 +1,200 @@
|
|||
/** \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_HOST_BOOT_PROTOCOL_ONLY</b> - ( \ref Group_USBClassHIDHost ) \n
|
||||
* By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
|
||||
* communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
|
||||
* Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
|
||||
* mode can be removed to save space in the compiled application by defining this token. When defined, it is still neccesary
|
||||
* to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
|
||||
*
|
||||
* <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
* 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>=<i>x</i> - ( \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>=<i>x</i> - ( \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>=<i>x</i> - ( \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.
|
||||
*
|
||||
* <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
|
||||
* keyboard and mouse might use report IDs to seperate the keyboard reports from the mouse reports. In order to determine the size of each
|
||||
* report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
|
||||
* stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
|
||||
* and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
|
||||
* the HID.h file documentation.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBTokens General USB Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB driver stack as a whole in the LUFA library.
|
||||
*
|
||||
* <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>FAST_STREAM_TRANSFERS</b> - ( \ref Group_EndpointPacketManagement , \ref Group_PipePacketManagement )\n
|
||||
* By default, streams are transferred internally via a loop, sending or receiving one byte per iteration before checking for a bank full
|
||||
* or empty condition. This allows for multiple stream functions to be chained together easily, as there are no alignment issues. However,
|
||||
* this can lead to heavy performance penalties in applications where large streams are used frequently. When this compile time option is
|
||||
* used, bytes are sent or recevied in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
|
||||
* due to the extra code required to deal with byte alignment.
|
||||
*
|
||||
* <b>USE_STATIC_OPTIONS</b>=<i>x</i> - ( \ref Group_USBManagement ) \n
|
||||
* By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
|
||||
* 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>=<i>x</i> - ( \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_DeviceState global
|
||||
* can be accurately set and the \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_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.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBDeviceTokens USB Device Mode Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Device mode.
|
||||
*
|
||||
* <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one
|
||||
* of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.
|
||||
*
|
||||
* <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.
|
||||
*
|
||||
* <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.
|
||||
*
|
||||
* <b>NO_INTERNAL_SERIAL</b> - ( \ref Group_Descriptors ) \n
|
||||
* Some AVR models contain a unique 20-digit serial number which can be used as the device serial number, while in device mode. This
|
||||
* allows the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing
|
||||
* allocated resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the
|
||||
* code that performs this task can be disabled by defining this option and passing it to the compiler via the -D switch.
|
||||
*
|
||||
* <b>FIXED_CONTROL_ENDPOINT_SIZE</b>=<i>x</i> - ( \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>DEVICE_STATE_AS_GPIOR</b> - ( \ref Group_Device ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_DeviceState global, which indicates the current state of
|
||||
* the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
* implicitly via the library APIs.
|
||||
*
|
||||
* <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - ( \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, this value may be fixed via this token in the project
|
||||
* makefile to reduce 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>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 USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
|
||||
* when in USB device mode.
|
||||
*
|
||||
* <b>NO_DEVICE_REMOTE_WAKEUP</b> - (\ref Group_Device ) \n
|
||||
* Many devices do not require the use of the Remote Wakeup features of USB, used to wake up the USB host when suspended. On these devices,
|
||||
* the code required to manage device Remote Wakeup can be disabled by defining this token and passing it to the library via the -D switch.
|
||||
*
|
||||
* <b>NO_DEVICE_SELF_POWER</b> - (\ref Group_Device ) \n
|
||||
* USB devices may be bus powered, self powered, or a combination of both. When a device can be both bus powered and self powered, the host may
|
||||
* query the device to determine the current power source, via \ref USB_CurrentlySelfPowered. For solely bus powered devices, this global and the
|
||||
* code required to manage it may be disabled by passing this token to the library via the -D switch.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBHostTokens USB Host Mode Driver Related Tokens
|
||||
*
|
||||
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Host mode.
|
||||
*
|
||||
* <b>HOST_STATE_AS_GPIOR</b> - ( \ref Group_Host ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_HostState global, which indicates the current state of
|
||||
* the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
* implicitly via the library APIs.
|
||||
*
|
||||
* <b>USB_HOST_TIMEOUT_MS</b>=<i>x</i> - ( \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>=<i>x</i> - ( \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 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.
|
||||
*/
|
||||
/** \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_HOST_BOOT_PROTOCOL_ONLY</b> - ( \ref Group_USBClassHIDHost ) \n
|
||||
* By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
|
||||
* communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
|
||||
* Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
|
||||
* mode can be removed to save space in the compiled application by defining this token. When defined, it is still neccesary
|
||||
* to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
|
||||
*
|
||||
* <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
* 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>=<i>x</i> - ( \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>=<i>x</i> - ( \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>=<i>x</i> - ( \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.
|
||||
*
|
||||
* <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - ( \ref Group_HIDParser ) \n
|
||||
* HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
|
||||
* keyboard and mouse might use report IDs to seperate the keyboard reports from the mouse reports. In order to determine the size of each
|
||||
* report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
|
||||
* stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
|
||||
* and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
|
||||
* the HID.h file documentation.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBTokens General USB Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB driver stack as a whole in the LUFA library.
|
||||
*
|
||||
* <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>FAST_STREAM_TRANSFERS</b> - ( \ref Group_EndpointPacketManagement , \ref Group_PipePacketManagement )\n
|
||||
* By default, streams are transferred internally via a loop, sending or receiving one byte per iteration before checking for a bank full
|
||||
* or empty condition. This allows for multiple stream functions to be chained together easily, as there are no alignment issues. However,
|
||||
* this can lead to heavy performance penalties in applications where large streams are used frequently. When this compile time option is
|
||||
* used, bytes are sent or recevied in groups of 8 bytes at a time increasing performance at the expense of a larger flash memory consumption
|
||||
* due to the extra code required to deal with byte alignment.
|
||||
*
|
||||
* <b>USE_STATIC_OPTIONS</b>=<i>x</i> - ( \ref Group_USBManagement ) \n
|
||||
* By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
|
||||
* 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>=<i>x</i> - ( \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_DeviceState global
|
||||
* can be accurately set and the \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_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.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBDeviceTokens USB Device Mode Driver Related Tokens
|
||||
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Device mode.
|
||||
*
|
||||
* <b>USE_RAM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one
|
||||
* of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.
|
||||
*
|
||||
* <b>USE_FLASH_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.
|
||||
*
|
||||
* <b>USE_EEPROM_DESCRIPTORS</b> - ( \ref Group_Descriptors ) \n
|
||||
* Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.
|
||||
*
|
||||
* <b>NO_INTERNAL_SERIAL</b> - ( \ref Group_Descriptors ) \n
|
||||
* Some AVR models contain a unique 20-digit serial number which can be used as the device serial number, while in device mode. This
|
||||
* allows the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing
|
||||
* allocated resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the
|
||||
* code that performs this task can be disabled by defining this option and passing it to the compiler via the -D switch.
|
||||
*
|
||||
* <b>FIXED_CONTROL_ENDPOINT_SIZE</b>=<i>x</i> - ( \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>DEVICE_STATE_AS_GPIOR</b> - ( \ref Group_Device ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_DeviceState global, which indicates the current state of
|
||||
* the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
* implicitly via the library APIs.
|
||||
*
|
||||
* <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - ( \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, this value may be fixed via this token in the project
|
||||
* makefile to reduce 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>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 USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
|
||||
* when in USB device mode.
|
||||
*
|
||||
* <b>NO_DEVICE_REMOTE_WAKEUP</b> - (\ref Group_Device ) \n
|
||||
* Many devices do not require the use of the Remote Wakeup features of USB, used to wake up the USB host when suspended. On these devices,
|
||||
* the code required to manage device Remote Wakeup can be disabled by defining this token and passing it to the library via the -D switch.
|
||||
*
|
||||
* <b>NO_DEVICE_SELF_POWER</b> - (\ref Group_Device ) \n
|
||||
* USB devices may be bus powered, self powered, or a combination of both. When a device can be both bus powered and self powered, the host may
|
||||
* query the device to determine the current power source, via \ref USB_CurrentlySelfPowered. For solely bus powered devices, this global and the
|
||||
* code required to manage it may be disabled by passing this token to the library via the -D switch.
|
||||
*
|
||||
*
|
||||
* \section Sec_SummaryUSBHostTokens USB Host Mode Driver Related Tokens
|
||||
*
|
||||
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Host mode.
|
||||
*
|
||||
* <b>HOST_STATE_AS_GPIOR</b> - ( \ref Group_Host ) \n
|
||||
* One of the most frequenty used global variables in the stack is the USB_HostState global, which indicates the current state of
|
||||
* the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
|
||||
* may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR
|
||||
* reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
|
||||
* implicitly via the library APIs.
|
||||
*
|
||||
* <b>USB_HOST_TIMEOUT_MS</b>=<i>x</i> - ( \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>=<i>x</i> - ( \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 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.
|
||||
*/
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
/** \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_CompilingApps Compiling the Demos, Bootloaders and Projects
|
||||
*
|
||||
* The following details how to compile the included LUFA demos, applications and bootloaders using AVR-GCC.
|
||||
*
|
||||
* \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
|
||||
* (<a>http://winavr.sourceforge.net</a>) as this provides a single-file setup for everything required to compile your
|
||||
* own AVR projects.
|
||||
*
|
||||
* \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.
|
||||
*
|
||||
* 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.
|
||||
/** \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_CompilingApps Compiling the Demos, Bootloaders and Projects
|
||||
*
|
||||
* The following details how to compile the included LUFA demos, applications and bootloaders using AVR-GCC.
|
||||
*
|
||||
* \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
|
||||
* (<a>http://winavr.sourceforge.net</a>) as this provides a single-file setup for everything required to compile your
|
||||
* own AVR projects.
|
||||
*
|
||||
* \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.
|
||||
*
|
||||
* 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.
|
||||
*/
|
|
@ -1,87 +1,87 @@
|
|||
/** \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_ConfiguringApps 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 options the source code
|
||||
* - <b>LUFA_PATH</b>, the path to the LUFA library source code
|
||||
* - <b>LUFA_OPTS</b>, the compile time LUFA options which configure the library features
|
||||
*
|
||||
* These values should be changed to reflect the build hardware.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_CDEFS The CDEFS Parameter
|
||||
* Many applications have features which can be controlled by the defining of specially named preprocessor tokens at the point of compilation - for example,
|
||||
* an application might use a compile time token to turn on or off optional or mutually exclusive portions of code. Preprocessor tokens can be
|
||||
* defined here by listing each one with the -D command line switch, and each token can optionally be defined to a specific value. When defined in the
|
||||
* project makefile, these behave as if they were defined in every source file via a normal preprocessor define statement.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* \section Sec_LUFA_PATH The LUFA_PATH Parameter
|
||||
* As each LUFA program requires the LUFA library source code to compile correctly, the application must know where the LUFA library is located. This
|
||||
* value specifies the path to the LUFA library base relative to the path of the project makefile.
|
||||
*
|
||||
* \section Sec_LUFA_OPTS The LUFA_OPTS Parameter
|
||||
* This value is similar to the CDEFS parameter listed elsewhere -- indeed, it is simply a convenient place to group LUFA related tokens away from the
|
||||
* application's compile time tokens. 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 - see \ref Page_TokenSummary documentation for details
|
||||
* on the available LUFA compile time configuration options.
|
||||
/** \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_ConfiguringApps 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 options the source code
|
||||
* - <b>LUFA_PATH</b>, the path to the LUFA library source code
|
||||
* - <b>LUFA_OPTS</b>, the compile time LUFA options which configure the library features
|
||||
*
|
||||
* These values should be changed to reflect the build hardware.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_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.
|
||||
*
|
||||
* \section Sec_CDEFS The CDEFS Parameter
|
||||
* Many applications have features which can be controlled by the defining of specially named preprocessor tokens at the point of compilation - for example,
|
||||
* an application might use a compile time token to turn on or off optional or mutually exclusive portions of code. Preprocessor tokens can be
|
||||
* defined here by listing each one with the -D command line switch, and each token can optionally be defined to a specific value. When defined in the
|
||||
* project makefile, these behave as if they were defined in every source file via a normal preprocessor define statement.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* \section Sec_LUFA_PATH The LUFA_PATH Parameter
|
||||
* As each LUFA program requires the LUFA library source code to compile correctly, the application must know where the LUFA library is located. This
|
||||
* value specifies the path to the LUFA library base relative to the path of the project makefile.
|
||||
*
|
||||
* \section Sec_LUFA_OPTS The LUFA_OPTS Parameter
|
||||
* This value is similar to the CDEFS parameter listed elsewhere -- indeed, it is simply a convenient place to group LUFA related tokens away from the
|
||||
* application's compile time tokens. 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 - see \ref Page_TokenSummary documentation for details
|
||||
* on the available LUFA compile time configuration options.
|
||||
*/
|
|
@ -1,22 +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_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_TokenSummary Summary of Compile Time Tokens
|
||||
* - \subpage Page_Migration Migrating from an Older LUFA Version
|
||||
* - \subpage Page_VIDPID Allocated USB VID and PID Values
|
||||
* - \subpage Page_BuildLibrary Building as a Linkable Library
|
||||
* - \subpage Page_WritingBoardDrivers How to Write Custom Board Drivers
|
||||
* - \subpage Page_SoftwareBootloaderStart How to jump to the bootloader in software
|
||||
* - \subpage Page_SchedulerOverview Overview of the Simple LUFA Scheduler (DEPRECATED)
|
||||
*/
|
||||
/** \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_TokenSummary Summary of Compile Time Tokens
|
||||
* - \subpage Page_Migration Migrating from an Older LUFA Version
|
||||
* - \subpage Page_VIDPID Allocated USB VID and PID Values
|
||||
* - \subpage Page_BuildLibrary Building as a Linkable Library
|
||||
* - \subpage Page_WritingBoardDrivers How to Write Custom Board Drivers
|
||||
* - \subpage Page_SoftwareBootloaderStart How to jump to the bootloader in software
|
||||
* - \subpage Page_SchedulerOverview Overview of the Simple LUFA Scheduler (DEPRECATED)
|
||||
*/
|
||||
|
|
@ -1,41 +1,41 @@
|
|||
/** \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:
|
||||
* - AT90USB82 (USB Device Only)
|
||||
* - ATMEGA8U2 (USB Device Only)
|
||||
* - AT90USB162 (USB Device Only)
|
||||
* - ATMEGA16U2 (USB Device Only)
|
||||
* - ATMEGA16U4 (USB Device Only)
|
||||
* - ATMEGA32U2 (USB Device Only)
|
||||
* - ATMEGA32U4 (USB Device Only)
|
||||
* - ATMEGA32U6 (USB Device Only)
|
||||
* - AT90USB646 (USB Device Only)
|
||||
* - AT90USB647 (USB Host and Device)
|
||||
* - AT90USB1286 (USB Device Only)
|
||||
* - AT90USB1287 (USB Host and Device)
|
||||
*
|
||||
* Currently supported Atmel boards (see \ref Group_BoardTypes):
|
||||
* - AT90USBKEY
|
||||
* - ATAVRUSBRF01
|
||||
* - EVK527
|
||||
* - RZUSBSTICK
|
||||
* - STK525
|
||||
* - STK526
|
||||
* - XPLAIN (Both original first revision board, and newer boards with a different Dataflash model)
|
||||
*
|
||||
* Currently supported third-party boards (see \ref Group_BoardTypes):
|
||||
* - Bumble-B (using officially recommended peripheral layout)
|
||||
* - Benito
|
||||
* - JM-DB-U2
|
||||
* - Teensy (all revisions and versions)
|
||||
* - USBTINY MKII (all revisions and versions)
|
||||
* - Any Other Custom User Boards (with Board Drivers if desired, see \ref Page_WritingBoardDrivers)
|
||||
*/
|
||||
/** \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:
|
||||
* - AT90USB82 (USB Device Only)
|
||||
* - ATMEGA8U2 (USB Device Only)
|
||||
* - AT90USB162 (USB Device Only)
|
||||
* - ATMEGA16U2 (USB Device Only)
|
||||
* - ATMEGA16U4 (USB Device Only)
|
||||
* - ATMEGA32U2 (USB Device Only)
|
||||
* - ATMEGA32U4 (USB Device Only)
|
||||
* - ATMEGA32U6 (USB Device Only)
|
||||
* - AT90USB646 (USB Device Only)
|
||||
* - AT90USB647 (USB Host and Device)
|
||||
* - AT90USB1286 (USB Device Only)
|
||||
* - AT90USB1287 (USB Host and Device)
|
||||
*
|
||||
* Currently supported Atmel boards (see \ref Group_BoardTypes):
|
||||
* - AT90USBKEY
|
||||
* - ATAVRUSBRF01
|
||||
* - EVK527
|
||||
* - RZUSBSTICK
|
||||
* - STK525
|
||||
* - STK526
|
||||
* - XPLAIN (Both original first revision board, and newer boards with a different Dataflash model)
|
||||
*
|
||||
* Currently supported third-party boards (see \ref Group_BoardTypes):
|
||||
* - Bumble-B (using officially recommended peripheral layout)
|
||||
* - Benito
|
||||
* - JM-DB-U2
|
||||
* - Teensy (all revisions and versions)
|
||||
* - USBTINY MKII (all revisions and versions)
|
||||
* - Any Other Custom User Boards (with Board Drivers if desired, see \ref Page_WritingBoardDrivers)
|
||||
*/
|
||||
|
|
@ -1,171 +1,171 @@
|
|||
/** \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/AVRU4U6U7
|
||||
* \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files.
|
||||
*
|
||||
* 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 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/Drivers/Board/BUMBLEB
|
||||
* \brief BUMBLEB board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Fletchtronics Bumble-B board (http://fletchtronics.net/bumble-b). 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/XPLAIN
|
||||
* \brief XPLAIN board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel XPLAIN board (all hardware revisions). 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/EVK527
|
||||
* \brief XPLAIN board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel EVK527 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/TEENSY
|
||||
* \brief TEENSY board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on all revisions of the PJRC Teensy boards (http://www.pjrc.com/teensy/). 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/USBTINYMKII
|
||||
* \brief USBTINY-MKII board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on all revisions of the USBTINY-MKII boards (http://tom-itx.dyndns.org:81/~webpage/).
|
||||
* 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/BENITO
|
||||
* \brief BENITO board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Benito boards (http://dorkbotpdx.org/wiki/benito). 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/JMDBU2
|
||||
* \brief JM-DB-U2 board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the JM-DB-U2 boards (http://u2.mattair.net/). 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.
|
||||
*/
|
||||
/** \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/AVRU4U6U7
|
||||
* \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files.
|
||||
*
|
||||
* 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 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/Drivers/Board/BUMBLEB
|
||||
* \brief BUMBLEB board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Fletchtronics Bumble-B board (http://fletchtronics.net/bumble-b). 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/XPLAIN
|
||||
* \brief XPLAIN board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel XPLAIN board (all hardware revisions). 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/EVK527
|
||||
* \brief XPLAIN board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Atmel EVK527 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/TEENSY
|
||||
* \brief TEENSY board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on all revisions of the PJRC Teensy boards (http://www.pjrc.com/teensy/). 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/USBTINYMKII
|
||||
* \brief USBTINY-MKII board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on all revisions of the USBTINY-MKII boards (http://tom-itx.dyndns.org:81/~webpage/).
|
||||
* 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/BENITO
|
||||
* \brief BENITO board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the Benito boards (http://dorkbotpdx.org/wiki/benito). 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/JMDBU2
|
||||
* \brief JM-DB-U2 board hardware driver files.
|
||||
*
|
||||
* This folder contains drivers for hardware on the JM-DB-U2 boards (http://u2.mattair.net/). 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.
|
||||
*/
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
/** \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.
|
||||
*
|
||||
* Note that commercial entities can remove the attribution portion of the LUFA licence by a one-time fee - see
|
||||
* \ref Page_LicenceInfo for more details (<b>Note: Please do NOT pay this in advance through the donation link below -
|
||||
* contact author for payment details.</b>).
|
||||
*
|
||||
* \image html "http://www.pledgie.com/campaigns/6927.png?skin_name=chrome"
|
||||
* <a href='http://www.pledgie.com/campaigns/6927'>Donate to this project via PayPal</a> - Thanks in Advance!
|
||||
*/
|
||||
/** \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.
|
||||
*
|
||||
* Note that commercial entities can remove the attribution portion of the LUFA licence by a one-time fee - see
|
||||
* \ref Page_LicenceInfo for more details (<b>Note: Please do NOT pay this in advance through the donation link below -
|
||||
* contact author for payment details.</b>).
|
||||
*
|
||||
* \image html "http://www.pledgie.com/campaigns/6927.png?skin_name=chrome"
|
||||
* <a href='http://www.pledgie.com/campaigns/6927'>Donate to this project via PayPal</a> - Thanks in Advance!
|
||||
*/
|
||||
|
|
@ -1,40 +1,40 @@
|
|||
/** \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.
|
||||
*
|
||||
* <b>Targeted for Future Releases:</b>
|
||||
* - Code Features
|
||||
* -# Add hub support when in Host mode for multiple devices
|
||||
* -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error
|
||||
* -# Add standardized descriptor names to class driver structures
|
||||
* -# Correct mishandling of error cases in Mass Storage demos
|
||||
* - Documentation/Support
|
||||
* -# Remake AVRStudio project files
|
||||
* -# Add detailed overviews of how each demo works
|
||||
* -# Master LUFA include file rather than per-module includes
|
||||
* -# Change makefiles to allow for absolute LUFA location to be used
|
||||
* -# Add board overviews
|
||||
* -# Write LUFA tutorials
|
||||
* - Demos/Projects
|
||||
* -# Multiple-Report HID device
|
||||
* -# Device/Host USB bridge
|
||||
* -# Alternative (USB-IF endorsed) USB-CDC Ethernet Class
|
||||
* -# USB Test and Measurement Class
|
||||
* -# Finish BluetoothHost demo
|
||||
* -# Finish SideShow demo
|
||||
* -# Finish StandaloneProgrammer project
|
||||
* -# Finish MIDIToneGenerator project
|
||||
* - Ports
|
||||
* -# AVR32 UC3B series microcontrollers
|
||||
* -# Atmel ARM7 series microcontrollers
|
||||
* -# Other (commercial) C compilers
|
||||
*/
|
||||
/** \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.
|
||||
*
|
||||
* <b>Targeted for Future Releases:</b>
|
||||
* - Code Features
|
||||
* -# Add hub support when in Host mode for multiple devices
|
||||
* -# Add ability to get number of bytes not written with pipe/endpoint write routines after an error
|
||||
* -# Add standardized descriptor names to class driver structures
|
||||
* -# Correct mishandling of error cases in Mass Storage demos
|
||||
* - Documentation/Support
|
||||
* -# Remake AVRStudio project files
|
||||
* -# Add detailed overviews of how each demo works
|
||||
* -# Master LUFA include file rather than per-module includes
|
||||
* -# Change makefiles to allow for absolute LUFA location to be used
|
||||
* -# Add board overviews
|
||||
* -# Write LUFA tutorials
|
||||
* - Demos/Projects
|
||||
* -# Multiple-Report HID device
|
||||
* -# Device/Host USB bridge
|
||||
* -# Alternative (USB-IF endorsed) USB-CDC Ethernet Class
|
||||
* -# USB Test and Measurement Class
|
||||
* -# Finish BluetoothHost demo
|
||||
* -# Finish SideShow demo
|
||||
* -# Finish StandaloneProgrammer project
|
||||
* -# Finish MIDIToneGenerator project
|
||||
* - Ports
|
||||
* -# AVR32 UC3B series microcontrollers
|
||||
* -# Atmel ARM7 series microcontrollers
|
||||
* -# Other (commercial) C compilers
|
||||
*/
|
||||
|
|
|
@ -1,26 +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_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 (where possible) 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. To learn how to reconfigure, recompile and program the included
|
||||
* LUFA applications using different settings, see the subsections below.
|
||||
*
|
||||
* Most of the included demos in the /Demos/ folder come in both ClassDriver and LowLevel varieties. If you are new
|
||||
* to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the premade USB
|
||||
* Class Drivers (\ref Group_USBClassDrivers) to simplify the use of the standard USB classes in user applications.
|
||||
*
|
||||
* For an overview of the included library applications, bootloaders and demos, see \ref Page_LibraryApps.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_ConfiguringApps How to Configure the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_CompilingApps How to Compile the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_ProgrammingApps How to Program an AVR with the Included Demos, Projects and Bootloaders
|
||||
*/
|
||||
/** \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 (where possible) 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. To learn how to reconfigure, recompile and program the included
|
||||
* LUFA applications using different settings, see the subsections below.
|
||||
*
|
||||
* Most of the included demos in the /Demos/ folder come in both ClassDriver and LowLevel varieties. If you are new
|
||||
* to LUFA, it is highly recommended that you look at the ClassDriver versions first, which use the premade USB
|
||||
* Class Drivers (\ref Group_USBClassDrivers) to simplify the use of the standard USB classes in user applications.
|
||||
*
|
||||
* For an overview of the included library applications, bootloaders and demos, see \ref Page_LibraryApps.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_ConfiguringApps How to Configure the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_CompilingApps How to Compile the Included Demos, Projects and Bootloaders
|
||||
* - \subpage Page_ProgrammingApps How to Program an AVR with the Included Demos, Projects and Bootloaders
|
||||
*/
|
||||
|
|
|
@ -1,20 +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.
|
||||
*/
|
||||
/** \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.
|
||||
*/
|
||||
|
|
|
@ -1,83 +1,83 @@
|
|||
/** \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.
|
||||
*
|
||||
* \section Sec_BoardsUsingLUFA AVR-USB Development Boards Using LUFA
|
||||
*
|
||||
* The following is a list of known AVR USB development boards, which recommend using LUFA for the USB stack. Some of these
|
||||
* are open design, and all are available for purchase as completed development boards suitable for project development.
|
||||
*
|
||||
* - AT90USB162 Breadboard PCB (Russian): http://microsin.ru/content/view/685/44/
|
||||
* - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito
|
||||
* - Bumble-B, yet another AT90USB162 development board: http://fletchtronics.net/bumble-b
|
||||
* - JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html
|
||||
* - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/
|
||||
* - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569
|
||||
* - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html
|
||||
* - U2DIL/U4DIL, a set of DIP layout USB AVR boards: http://www.reworld.eu/re/en/products/u2dil/
|
||||
* - USB10 AKA "The Ferret", a AT90USB162 development board: http://www.soc-machines.com
|
||||
*
|
||||
* \section Sec_LUFAProjects Projects Using LUFA (Hobbyist)
|
||||
*
|
||||
* The following are known hobbyist projects using LUFA. Most are open source, and show off interesting ways that the LUFA library
|
||||
* can be incorporated into many different applications.
|
||||
*
|
||||
* - Accelerometer Game Joystick: http://www.crictor.co.il/he/episodes/joystick/
|
||||
* - Arcade Controller: http://fletchtronics.net/arcade-controller-made-petunia
|
||||
* - AVR USB Modem, a 3G Wireless Modem host: http://code.google.com/p/avrusbmodem/
|
||||
* - Bicycle POV: http://www.code.google.com/p/bicycleledpov/
|
||||
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
|
||||
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
|
||||
* - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
|
||||
* - EMUCOMBOX, a USB-RS422 adapter for E-Mu Emax samplers: http://users.skynet.be/emxp/EMUCOMBOX.htm
|
||||
* - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller: http://noisybox.net/electronics/wingdinger/
|
||||
* - Garmin GPS USB to NMEA standard serial sentence translator: http://github.com/nall/garmin-transmogrifier/tree/master
|
||||
* - Generic HID Device Creator: http://generichid.sourceforge.net/
|
||||
* - IR Remote to Keyboard decoder: http://netzhansa.blogspot.com/2010/04/our-living-room-hi-fi-setup-needs-mp3.html
|
||||
* - LED Panel controller: http://projects.peterpolidoro.net/caltech/panelscontroller/panelscontroller.htm
|
||||
* - Linux Secure Storage Dongle: http://github.com/TomMD/teensy
|
||||
* - MakeTV Episode Dispenser: http://www.youtube.com/watch?v=BkWUi18hl3g
|
||||
* - MidiMonster, a USB-to-MIDI gateway board: http://www.dorkbotpdx.org/wiki/midimonster
|
||||
* - NES Controller USB modification: http://projects.peterpolidoro.net/video/NESUSB.htm
|
||||
* - 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/
|
||||
* - Orbee, a USB connected RGB Orb for notifications: http://www.franksworkshop.com.au/Electronics/Orbee/Orbee.htm
|
||||
* - Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
|
||||
* - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
|
||||
* - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
|
||||
* - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
|
||||
* - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
|
||||
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
|
||||
* - Userial, a USB to Serial converter with SPI, I2C and other protocols: http://www.tty1.net/userial/
|
||||
* - XUM1541, a Commodore 64 floppy drive to USB adapter: http://www.root.org/~nate/c64/xum1541/
|
||||
*
|
||||
* \section Sec_LUFACommercialProjects Projects Using LUFA (Commercial)
|
||||
*
|
||||
* The following is a list of known commercial products using LUFA. Some of these are open source, although many are "black-box"
|
||||
* solutions with no source code given.
|
||||
*
|
||||
* - ARPS Locator: http://la3t.hamradio.no/lab//?id=tracker_en
|
||||
* - Digital Survey Instruments Magnetometer and Pointer: http://www.digitalsurveyinstruments.com/
|
||||
* - Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
|
||||
* - Many of Busware's Products: http://www.busware.de/
|
||||
* - MIDIFighter, a USB-MIDI controller: http://www.midifighter.com/
|
||||
* - Mobo 4.3, a USB controlled all band (160-10m) HF SDR transceiver: http://sites.google.com/site/lofturj/mobo4_3
|
||||
* - Retrode, a USB Games Console Cartridge Reader: http://www.retrode.org
|
||||
* - XMEGA Development Board, using LUFA as an On-Board Programmer: http://xmega.mattair.net/
|
||||
*
|
||||
* \section Sec_LUFAPublications Publications Mentioning LUFA
|
||||
* - Elektor Magazine, "My First AVR-USB" by Antoine Authier (feature), January 2010 Issue
|
||||
* - Elektor Magazine, "USB is Cool/Sucks" by Jerry Jacobs and Chris Vossen (minor mention), January 2010 Issue
|
||||
* - Elektor Magazine, "20 x Open Source" by Jens Nickel, March 2010 Issue
|
||||
/** \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.
|
||||
*
|
||||
* \section Sec_BoardsUsingLUFA AVR-USB Development Boards Using LUFA
|
||||
*
|
||||
* The following is a list of known AVR USB development boards, which recommend using LUFA for the USB stack. Some of these
|
||||
* are open design, and all are available for purchase as completed development boards suitable for project development.
|
||||
*
|
||||
* - AT90USB162 Breadboard PCB (Russian): http://microsin.ru/content/view/685/44/
|
||||
* - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito
|
||||
* - Bumble-B, yet another AT90USB162 development board: http://fletchtronics.net/bumble-b
|
||||
* - JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html
|
||||
* - Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/
|
||||
* - Nanduino, a do-it-yourself AT90USB162 board: http://www.makestuff.eu/wordpress/?page_id=569
|
||||
* - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html
|
||||
* - U2DIL/U4DIL, a set of DIP layout USB AVR boards: http://www.reworld.eu/re/en/products/u2dil/
|
||||
* - USB10 AKA "The Ferret", a AT90USB162 development board: http://www.soc-machines.com
|
||||
*
|
||||
* \section Sec_LUFAProjects Projects Using LUFA (Hobbyist)
|
||||
*
|
||||
* The following are known hobbyist projects using LUFA. Most are open source, and show off interesting ways that the LUFA library
|
||||
* can be incorporated into many different applications.
|
||||
*
|
||||
* - Accelerometer Game Joystick: http://www.crictor.co.il/he/episodes/joystick/
|
||||
* - Arcade Controller: http://fletchtronics.net/arcade-controller-made-petunia
|
||||
* - AVR USB Modem, a 3G Wireless Modem host: http://code.google.com/p/avrusbmodem/
|
||||
* - Bicycle POV: http://www.code.google.com/p/bicycleledpov/
|
||||
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
|
||||
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
|
||||
* - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
|
||||
* - EMUCOMBOX, a USB-RS422 adapter for E-Mu Emax samplers: http://users.skynet.be/emxp/EMUCOMBOX.htm
|
||||
* - "Fingerlicking Wingdinger" (WARNING: Bad Language if no Javascript), a MIDI controller: http://noisybox.net/electronics/wingdinger/
|
||||
* - Garmin GPS USB to NMEA standard serial sentence translator: http://github.com/nall/garmin-transmogrifier/tree/master
|
||||
* - Generic HID Device Creator: http://generichid.sourceforge.net/
|
||||
* - IR Remote to Keyboard decoder: http://netzhansa.blogspot.com/2010/04/our-living-room-hi-fi-setup-needs-mp3.html
|
||||
* - LED Panel controller: http://projects.peterpolidoro.net/caltech/panelscontroller/panelscontroller.htm
|
||||
* - Linux Secure Storage Dongle: http://github.com/TomMD/teensy
|
||||
* - MakeTV Episode Dispenser: http://www.youtube.com/watch?v=BkWUi18hl3g
|
||||
* - MidiMonster, a USB-to-MIDI gateway board: http://www.dorkbotpdx.org/wiki/midimonster
|
||||
* - NES Controller USB modification: http://projects.peterpolidoro.net/video/NESUSB.htm
|
||||
* - 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/
|
||||
* - Orbee, a USB connected RGB Orb for notifications: http://www.franksworkshop.com.au/Electronics/Orbee/Orbee.htm
|
||||
* - Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
|
||||
* - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
|
||||
* - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
|
||||
* - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
|
||||
* - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
|
||||
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
|
||||
* - Userial, a USB to Serial converter with SPI, I2C and other protocols: http://www.tty1.net/userial/
|
||||
* - XUM1541, a Commodore 64 floppy drive to USB adapter: http://www.root.org/~nate/c64/xum1541/
|
||||
*
|
||||
* \section Sec_LUFACommercialProjects Projects Using LUFA (Commercial)
|
||||
*
|
||||
* The following is a list of known commercial products using LUFA. Some of these are open source, although many are "black-box"
|
||||
* solutions with no source code given.
|
||||
*
|
||||
* - ARPS Locator: http://la3t.hamradio.no/lab//?id=tracker_en
|
||||
* - Digital Survey Instruments Magnetometer and Pointer: http://www.digitalsurveyinstruments.com/
|
||||
* - Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
|
||||
* - Many of Busware's Products: http://www.busware.de/
|
||||
* - MIDIFighter, a USB-MIDI controller: http://www.midifighter.com/
|
||||
* - Mobo 4.3, a USB controlled all band (160-10m) HF SDR transceiver: http://sites.google.com/site/lofturj/mobo4_3
|
||||
* - Retrode, a USB Games Console Cartridge Reader: http://www.retrode.org
|
||||
* - XMEGA Development Board, using LUFA as an On-Board Programmer: http://xmega.mattair.net/
|
||||
*
|
||||
* \section Sec_LUFAPublications Publications Mentioning LUFA
|
||||
* - Elektor Magazine, "My First AVR-USB" by Antoine Authier (feature), January 2010 Issue
|
||||
* - Elektor Magazine, "USB is Cool/Sucks" by Jerry Jacobs and Chris Vossen (minor mention), January 2010 Issue
|
||||
* - Elektor Magazine, "20 x Open Source" by Jens Nickel, March 2010 Issue
|
||||
*/
|
|
@ -1,46 +1,46 @@
|
|||
/** \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_LUFAvsAtmelStack LUFA vs the Atmel Stack
|
||||
*
|
||||
* Atmel offers an official USB AVR stack, which may be incorporated into user projects and products. As LUFA and the Atmel
|
||||
* stack aims to give roughly the same functionality to a design, it is often asked what advantages LUFA carries over the
|
||||
* official Atmel USB stack. Below are just some of the advantages to choosing LUFA over the official stack.
|
||||
*
|
||||
* - <b>Licensing:</b>
|
||||
* LUFA is released under a very permissive MIT license (see \ref Page_LicenceInfo), while the Atmel stack carries several
|
||||
* restrictions as to how and where it can be used. LUFA's licensing should be suitable for both Commercial and Non-Commercial
|
||||
* entities alike.
|
||||
*
|
||||
* - <b>Demos and Projects:</b>
|
||||
* Unlike the Atmel stack, LUFA comes with many different Device and Host mode Demos and Projects ready to run out of the box.
|
||||
* Atmel favours separate downloads for each of their (small set) of USB AVR demos, which requires more time and offers less
|
||||
* to the end-user. LUFA also contains several open source Bootloaders, which can be modified as the user wishes to suit his or
|
||||
* her application, instead of being forced to use Atmel's single prebuilt (closed-source) DFU bootloader.
|
||||
*
|
||||
* - <b>Central Library Code:</b>
|
||||
* LUFA is designed to allow the central library core code to be shared amongst several projects, so long as the compiled object
|
||||
* files are cleaned between different projects. This is in direct contrast to the Atmel library, which is strongly coupled to the
|
||||
* project it is integrated with. Using LUFA allows for only one copy of the library core to be needed for all applications, and
|
||||
* makes updating the library used in all projects a trivial copy-and-paste process.
|
||||
*
|
||||
* - <b>Clean API:</b>
|
||||
* One of the main design goals of LUFA is to make the API easy to use. While LUFA is a fluid project which has undergone many
|
||||
* API improvements, the API is arguably much nicer to use and easier to understand than the equivelent Atmel stack code. LUFA's
|
||||
* API is also more complete than the Atmel stack, and contains many features to speed up application development.
|
||||
*
|
||||
* - <b>Full Hardware Support:</b>
|
||||
* LUFA supports the full range of Atmel's USB AVR microcontrollers (see \ref Page_DeviceSupport), with porting between chips being
|
||||
* as simple as a single compile switch in many cases. Atmel's stack requires different libraries to be used based on the USB AVR
|
||||
* microcontroller series, complicating the process of moving between USB AVR models. In addition, LUFA contains drivers for all the
|
||||
* hardware contained on Atmel's USB AVR based boards, so you can get started quickly and easily.
|
||||
*
|
||||
* - <b>Better Library Support:</b>
|
||||
* As many people are now using LUFA, there is a community being built around it. You can get answers to your LUFA related questions
|
||||
* quickly by either emailing the library author (subject to author's schedule) or by posting to the official LUFA support mailing list.
|
||||
*/
|
||||
/** \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_LUFAvsAtmelStack LUFA vs the Atmel Stack
|
||||
*
|
||||
* Atmel offers an official USB AVR stack, which may be incorporated into user projects and products. As LUFA and the Atmel
|
||||
* stack aims to give roughly the same functionality to a design, it is often asked what advantages LUFA carries over the
|
||||
* official Atmel USB stack. Below are just some of the advantages to choosing LUFA over the official stack.
|
||||
*
|
||||
* - <b>Licensing:</b>
|
||||
* LUFA is released under a very permissive MIT license (see \ref Page_LicenceInfo), while the Atmel stack carries several
|
||||
* restrictions as to how and where it can be used. LUFA's licensing should be suitable for both Commercial and Non-Commercial
|
||||
* entities alike.
|
||||
*
|
||||
* - <b>Demos and Projects:</b>
|
||||
* Unlike the Atmel stack, LUFA comes with many different Device and Host mode Demos and Projects ready to run out of the box.
|
||||
* Atmel favours separate downloads for each of their (small set) of USB AVR demos, which requires more time and offers less
|
||||
* to the end-user. LUFA also contains several open source Bootloaders, which can be modified as the user wishes to suit his or
|
||||
* her application, instead of being forced to use Atmel's single prebuilt (closed-source) DFU bootloader.
|
||||
*
|
||||
* - <b>Central Library Code:</b>
|
||||
* LUFA is designed to allow the central library core code to be shared amongst several projects, so long as the compiled object
|
||||
* files are cleaned between different projects. This is in direct contrast to the Atmel library, which is strongly coupled to the
|
||||
* project it is integrated with. Using LUFA allows for only one copy of the library core to be needed for all applications, and
|
||||
* makes updating the library used in all projects a trivial copy-and-paste process.
|
||||
*
|
||||
* - <b>Clean API:</b>
|
||||
* One of the main design goals of LUFA is to make the API easy to use. While LUFA is a fluid project which has undergone many
|
||||
* API improvements, the API is arguably much nicer to use and easier to understand than the equivelent Atmel stack code. LUFA's
|
||||
* API is also more complete than the Atmel stack, and contains many features to speed up application development.
|
||||
*
|
||||
* - <b>Full Hardware Support:</b>
|
||||
* LUFA supports the full range of Atmel's USB AVR microcontrollers (see \ref Page_DeviceSupport), with porting between chips being
|
||||
* as simple as a single compile switch in many cases. Atmel's stack requires different libraries to be used based on the USB AVR
|
||||
* microcontroller series, complicating the process of moving between USB AVR models. In addition, LUFA contains drivers for all the
|
||||
* hardware contained on Atmel's USB AVR based boards, so you can get started quickly and easily.
|
||||
*
|
||||
* - <b>Better Library Support:</b>
|
||||
* As many people are now using LUFA, there is a community being built around it. You can get answers to your LUFA related questions
|
||||
* quickly by either emailing the library author (subject to author's schedule) or by posting to the official LUFA support mailing list.
|
||||
*/
|
||||
|
|
@ -1,116 +1,116 @@
|
|||
/** \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_LibraryApps Included Library Applications
|
||||
*
|
||||
* The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory. Within this
|
||||
* directory the demos are seperated by USB mode (Device, Host, OTG) and further seperated by the use or non-use of the
|
||||
* library USB Class drivers (which abstract out the actual implementation of the USB classes to simplify development even
|
||||
* further at the expense of a loss of flexibility).
|
||||
*
|
||||
* With one or two exceptions (e.g. proprietary classes such as RNDIS) all the included demos will work across all OSes without
|
||||
* the need for special drivers. On Windows, some demos require the supplied .INF file to be used as the device driver, which
|
||||
* directs the OS to use its inbuilt class drivers for the device.
|
||||
*
|
||||
* 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 (<a>http://www.pjrc.com/teensy/index.html</a>).
|
||||
*
|
||||
* User-submitted projects are located in the /Projects/ subdirectory. If you wish to have your LUFA project included,
|
||||
* please email it to the Library author.
|
||||
*
|
||||
* \section Sec_AppOverview Overview of Included Library Applications
|
||||
* The following shows the folder structure of the included library applications, including demos, bootloaders and user-submitted
|
||||
* open source projects.
|
||||
*
|
||||
* <small>
|
||||
*
|
||||
* - <b>Demos</b>
|
||||
* - <b>Device</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>AudioInput</b> - Audio In (microphone) demo, using the library USB Audio Class driver framework
|
||||
* - <b>AudioOutput</b> - Audio Out (speaker) demo, using the library USB Audio Class driver framework
|
||||
* - <b>DualVirtualSerial</b> - Dual Virtual Serial Port demo, using the library USB CDC Class driver framework
|
||||
* - <b>GenericHID</b> - Generic Human Interface Class demo, using the library USB HID Class driver framework
|
||||
* - <b>Joystick</b> - USB Joystick demo, using the library USB HID Class driver framework
|
||||
* - <b>Keyboard</b> - USB Keyboard demo, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardMouse</b> - Dual Keyboard/Mouse demo, using the library USB HID Class driver framework
|
||||
* - <b>MassStorage</b> - Dual Drive Mass Storage demo, using the library USB Mass Storage Class driver framework
|
||||
* - <b>MassStorageKeyboard</b> - Mass Storage and Keyboard demo, using the library USB Mass Storage/HID Class driver frameworks
|
||||
* - <b>MIDI</b> - MIDI In demo, using the library USB MIDI-Audio Class driver framework
|
||||
* - <b>Mouse</b> - USB Mouse demo, using the library USB HID driver framework
|
||||
* - <b>RNDISEthernet</b> - RNDIS Ethernet Webserver demo, using the library USB RNDIS driver framework
|
||||
* - <b>VirtualSerial</b> - Virtual Serial Port demo, using the library USB CDC Class driver framework
|
||||
* - <b>VirtualSerialMouse</b> - Virtual Serial Port and Mouse demo, using the library USB CDC and HID Class driver frameworks
|
||||
* - <b>LowLevel</b>
|
||||
* - <b>AudioInput</b> - Audio In (microphone) demo, using the low level LUFA APIs to implement the USB Audio class
|
||||
* - <b>AudioOutput</b> - Audio Out (speaker) demo, using the low level LUFA APIs to implement the USB Audio class
|
||||
* - <b>DualVirtualSerial</b> - Dual Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>GenericHID</b> - Generic Human Interface Class demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>Joystick</b> - USB Joystick demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>Keyboard</b> - USB Keyboard demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardMouse</b> - Dual Keyboard/Mouse demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>MassStorage</b> - Dual Drive Mass Storage demo, using the low level LUFA APIs to implement the USB Mass Storage class
|
||||
* - <b>MIDI</b> - MIDI In demo, using the low level LUFA APIs to implement the USB MIDI-Audio class
|
||||
* - <b>Mouse</b> - USB Mouse demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>RNDISEthernet</b> - RNDIS Ethernet Webserver demo, using the low level LUFA APIs to implement the USB RNDIS class
|
||||
* - <b>VirtualSerial</b> - Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>SideShow</b> - Incomplete Windows SideShow demo, using the low level LUFA APIs to implement the USB SideShow class
|
||||
* - <b>Host</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>JoystickHostWithParser</b> - Joystick host demo with HID Descriptor parser, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardHost</b> - USB Keyboard host demo, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardHostWithParser</b> - USB Keyboard host demo with HID Descriptor parser, using the library USB HID Class
|
||||
* driver framework
|
||||
* - <b>MassStorageHost</b> - Mass Storage host demo, using the library USB Mass Storage Class driver framework
|
||||
* - <b>MouseHost</b> - Mouse host demo, using the library USB HID Class driver framework
|
||||
* - <b>MouseHostWithParser</b> - Mouse host demo with HID Descriptor parser, using the library USB HID Class driver framework
|
||||
* - <b>RNDISHost</b> - RNDIS Ethernet host demo, using the library USB RNDIS Class driver framework
|
||||
* - <b>StillImageHost</b> - Still Image Camera host demo, using the library USB Still Image Class driver framework
|
||||
* - <b>VirtualSerialHost</b> - Virtual Serial Port host demo, using the library USB CDC Class driver framework
|
||||
* - <b>LowLevel</b>
|
||||
* - <b>JoystickHostWithParser</b> - Joystick host demo with HID Descriptor parser, using the low level LUFA APIs to implement
|
||||
* the USB HID class
|
||||
* - <b>GenericHIDHost</b> - Generic HID host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardHost</b> - USB Keyboard host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardHostWithParser</b> - USB Keyboard host demo with HID Descriptor parser, using the low level LUFA APIs to
|
||||
* implement the USB HID class
|
||||
* - <b>MassStorageHost</b> - Mass Storage host demo, using the low level LUFA APIs to implement the USB Mass Storage class
|
||||
* - <b>MouseHost</b> - Mouse host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>MouseHostWithParser</b> - Mouse host demo with HID Descriptor parser, using the low level LUFA APIs to implement the
|
||||
* USB HID class
|
||||
* - <b>PrinterHost</b> - Printer host demo, using the low level LUFA APIs to implement the USB Printer class
|
||||
* - <b>RNDISHost</b> - RNDIS Ethernet host demo, using the low level LUFA APIs to implement the RNDIS class
|
||||
* - <b>StillImageHost</b> - Still Image Camera host demo, using the low level LUFA APIs to implement the USB Still Image class
|
||||
* - <b>VirtualSerialHost</b> - Virtual Serial Port host demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>BluetoothHost</b> - Incomplete Bluetooth host demo, using the low level LUFA APIs to implement the USB Bluetooth class
|
||||
* - <b>DualRole</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>MouseHostDevice</b> - Dual role Mouse Host and Mouse Device demo, using the library USB CDC Class driver framework
|
||||
* - <b>Bootloaders</b>
|
||||
* - <b>DFU</b> - DFU Class USB bootloader, compatible with Atmel's FLIP and the open source dfu-programmer software
|
||||
* - <b>CDC</b> - CDC Class USB bootloader, compatible with any AVR910 protocol programming software such as AVRDude
|
||||
* - <b>TeensyHID</b> - HID Class bootloader, compatible with the PJRC TeensyLoader software
|
||||
* - <b>Projects</b>
|
||||
* - <b>AVRISP-MKII</b> - AVRISP-MKII Programmer Clone project
|
||||
* - <b>Benito</b> - Benito Board Arduino Programmer project
|
||||
* - <b>LEDNotifier</b> - USB LED Notification project
|
||||
* - <b>Magstripe</b> - Magnetic Stripe Card Reader project
|
||||
* - <b>MissileLaucher</b> - Toy Missile Launcher Host project
|
||||
* - <b>RelayBoard</b> - Relay board controller, controllable via the "sismpctl" Linux application
|
||||
* - <b>TemperatureDataLogger</b> - Temperature Datalogging project, using the FatFS library
|
||||
* - <b>USBtoSerial</b> - USB to USART Serial Converter project
|
||||
* - <b>Webserver</b> - RNDIS Host Webserver with DHCP client, powered by uIP TCP/IP stack project and FatFS library
|
||||
* - <b>XPLAINBridge</b> - XPLAIN alternative PDI Programmer/USB to Serial Bridge firmware project
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>MIDIToneGenerator</b> - Incomplete MIDI Tone Generator application, to convert MIDI note messages into audio tones
|
||||
* - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
|
||||
*
|
||||
* </small>
|
||||
/** \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_LibraryApps Included Library Applications
|
||||
*
|
||||
* The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory. Within this
|
||||
* directory the demos are seperated by USB mode (Device, Host, OTG) and further seperated by the use or non-use of the
|
||||
* library USB Class drivers (which abstract out the actual implementation of the USB classes to simplify development even
|
||||
* further at the expense of a loss of flexibility).
|
||||
*
|
||||
* With one or two exceptions (e.g. proprietary classes such as RNDIS) all the included demos will work across all OSes without
|
||||
* the need for special drivers. On Windows, some demos require the supplied .INF file to be used as the device driver, which
|
||||
* directs the OS to use its inbuilt class drivers for the device.
|
||||
*
|
||||
* 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 (<a>http://www.pjrc.com/teensy/index.html</a>).
|
||||
*
|
||||
* User-submitted projects are located in the /Projects/ subdirectory. If you wish to have your LUFA project included,
|
||||
* please email it to the Library author.
|
||||
*
|
||||
* \section Sec_AppOverview Overview of Included Library Applications
|
||||
* The following shows the folder structure of the included library applications, including demos, bootloaders and user-submitted
|
||||
* open source projects.
|
||||
*
|
||||
* <small>
|
||||
*
|
||||
* - <b>Demos</b>
|
||||
* - <b>Device</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>AudioInput</b> - Audio In (microphone) demo, using the library USB Audio Class driver framework
|
||||
* - <b>AudioOutput</b> - Audio Out (speaker) demo, using the library USB Audio Class driver framework
|
||||
* - <b>DualVirtualSerial</b> - Dual Virtual Serial Port demo, using the library USB CDC Class driver framework
|
||||
* - <b>GenericHID</b> - Generic Human Interface Class demo, using the library USB HID Class driver framework
|
||||
* - <b>Joystick</b> - USB Joystick demo, using the library USB HID Class driver framework
|
||||
* - <b>Keyboard</b> - USB Keyboard demo, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardMouse</b> - Dual Keyboard/Mouse demo, using the library USB HID Class driver framework
|
||||
* - <b>MassStorage</b> - Dual Drive Mass Storage demo, using the library USB Mass Storage Class driver framework
|
||||
* - <b>MassStorageKeyboard</b> - Mass Storage and Keyboard demo, using the library USB Mass Storage/HID Class driver frameworks
|
||||
* - <b>MIDI</b> - MIDI In demo, using the library USB MIDI-Audio Class driver framework
|
||||
* - <b>Mouse</b> - USB Mouse demo, using the library USB HID driver framework
|
||||
* - <b>RNDISEthernet</b> - RNDIS Ethernet Webserver demo, using the library USB RNDIS driver framework
|
||||
* - <b>VirtualSerial</b> - Virtual Serial Port demo, using the library USB CDC Class driver framework
|
||||
* - <b>VirtualSerialMouse</b> - Virtual Serial Port and Mouse demo, using the library USB CDC and HID Class driver frameworks
|
||||
* - <b>LowLevel</b>
|
||||
* - <b>AudioInput</b> - Audio In (microphone) demo, using the low level LUFA APIs to implement the USB Audio class
|
||||
* - <b>AudioOutput</b> - Audio Out (speaker) demo, using the low level LUFA APIs to implement the USB Audio class
|
||||
* - <b>DualVirtualSerial</b> - Dual Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>GenericHID</b> - Generic Human Interface Class demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>Joystick</b> - USB Joystick demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>Keyboard</b> - USB Keyboard demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardMouse</b> - Dual Keyboard/Mouse demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>MassStorage</b> - Dual Drive Mass Storage demo, using the low level LUFA APIs to implement the USB Mass Storage class
|
||||
* - <b>MIDI</b> - MIDI In demo, using the low level LUFA APIs to implement the USB MIDI-Audio class
|
||||
* - <b>Mouse</b> - USB Mouse demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>RNDISEthernet</b> - RNDIS Ethernet Webserver demo, using the low level LUFA APIs to implement the USB RNDIS class
|
||||
* - <b>VirtualSerial</b> - Virtual Serial Port demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>SideShow</b> - Incomplete Windows SideShow demo, using the low level LUFA APIs to implement the USB SideShow class
|
||||
* - <b>Host</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>JoystickHostWithParser</b> - Joystick host demo with HID Descriptor parser, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardHost</b> - USB Keyboard host demo, using the library USB HID Class driver framework
|
||||
* - <b>KeyboardHostWithParser</b> - USB Keyboard host demo with HID Descriptor parser, using the library USB HID Class
|
||||
* driver framework
|
||||
* - <b>MassStorageHost</b> - Mass Storage host demo, using the library USB Mass Storage Class driver framework
|
||||
* - <b>MouseHost</b> - Mouse host demo, using the library USB HID Class driver framework
|
||||
* - <b>MouseHostWithParser</b> - Mouse host demo with HID Descriptor parser, using the library USB HID Class driver framework
|
||||
* - <b>RNDISHost</b> - RNDIS Ethernet host demo, using the library USB RNDIS Class driver framework
|
||||
* - <b>StillImageHost</b> - Still Image Camera host demo, using the library USB Still Image Class driver framework
|
||||
* - <b>VirtualSerialHost</b> - Virtual Serial Port host demo, using the library USB CDC Class driver framework
|
||||
* - <b>LowLevel</b>
|
||||
* - <b>JoystickHostWithParser</b> - Joystick host demo with HID Descriptor parser, using the low level LUFA APIs to implement
|
||||
* the USB HID class
|
||||
* - <b>GenericHIDHost</b> - Generic HID host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardHost</b> - USB Keyboard host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>KeyboardHostWithParser</b> - USB Keyboard host demo with HID Descriptor parser, using the low level LUFA APIs to
|
||||
* implement the USB HID class
|
||||
* - <b>MassStorageHost</b> - Mass Storage host demo, using the low level LUFA APIs to implement the USB Mass Storage class
|
||||
* - <b>MouseHost</b> - Mouse host demo, using the low level LUFA APIs to implement the USB HID class
|
||||
* - <b>MouseHostWithParser</b> - Mouse host demo with HID Descriptor parser, using the low level LUFA APIs to implement the
|
||||
* USB HID class
|
||||
* - <b>PrinterHost</b> - Printer host demo, using the low level LUFA APIs to implement the USB Printer class
|
||||
* - <b>RNDISHost</b> - RNDIS Ethernet host demo, using the low level LUFA APIs to implement the RNDIS class
|
||||
* - <b>StillImageHost</b> - Still Image Camera host demo, using the low level LUFA APIs to implement the USB Still Image class
|
||||
* - <b>VirtualSerialHost</b> - Virtual Serial Port host demo, using the low level LUFA APIs to implement the USB CDC class
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>BluetoothHost</b> - Incomplete Bluetooth host demo, using the low level LUFA APIs to implement the USB Bluetooth class
|
||||
* - <b>DualRole</b>
|
||||
* - <b>ClassDriver</b>
|
||||
* - <b>MouseHostDevice</b> - Dual role Mouse Host and Mouse Device demo, using the library USB CDC Class driver framework
|
||||
* - <b>Bootloaders</b>
|
||||
* - <b>DFU</b> - DFU Class USB bootloader, compatible with Atmel's FLIP and the open source dfu-programmer software
|
||||
* - <b>CDC</b> - CDC Class USB bootloader, compatible with any AVR910 protocol programming software such as AVRDude
|
||||
* - <b>TeensyHID</b> - HID Class bootloader, compatible with the PJRC TeensyLoader software
|
||||
* - <b>Projects</b>
|
||||
* - <b>AVRISP-MKII</b> - AVRISP-MKII Programmer Clone project
|
||||
* - <b>Benito</b> - Benito Board Arduino Programmer project
|
||||
* - <b>LEDNotifier</b> - USB LED Notification project
|
||||
* - <b>Magstripe</b> - Magnetic Stripe Card Reader project
|
||||
* - <b>MissileLaucher</b> - Toy Missile Launcher Host project
|
||||
* - <b>RelayBoard</b> - Relay board controller, controllable via the "sismpctl" Linux application
|
||||
* - <b>TemperatureDataLogger</b> - Temperature Datalogging project, using the FatFS library
|
||||
* - <b>USBtoSerial</b> - USB to USART Serial Converter project
|
||||
* - <b>Webserver</b> - RNDIS Host Webserver with DHCP client, powered by uIP TCP/IP stack project and FatFS library
|
||||
* - <b>XPLAINBridge</b> - XPLAIN alternative PDI Programmer/USB to Serial Bridge firmware project
|
||||
* - <b>Incomplete</b>
|
||||
* - <b>MIDIToneGenerator</b> - Incomplete MIDI Tone Generator application, to convert MIDI note messages into audio tones
|
||||
* - <b>StandaloneProgrammer</b> - Incomplete Standalone AVR Programmer application, to program AVRs directly from a Mass Storage disk
|
||||
*
|
||||
* </small>
|
||||
*/
|
|
@ -1,34 +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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \page Page_Resources Library Resources
|
||||
*
|
||||
* \section Sec_ProjectPages LUFA Related Webpages
|
||||
* Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n
|
||||
* Author's Website: http://www.fourwalledcubicle.com \n
|
||||
* Development Blog: http://www.fourwalledcubicle.com/blog \n
|
||||
* Commercial Licences: http://fourwalledcubicle.com/PurchaseLUFA.php \n
|
||||
*
|
||||
* \section Sec_ProjectHelp Assistance With LUFA
|
||||
* Discussion Group: http://groups.google.com/group/myusb-support-list \n
|
||||
* Author's Email: dean [at] fourwalledcubicle [dot] com
|
||||
* Author's Skype: abcminiuser
|
||||
*
|
||||
* \section Sec_InDevelopment Latest In-Development Source Code
|
||||
* Official Releases, SVN Access, Issue Tracker: http://code.google.com/p/lufa-lib/ \n
|
||||
* Git Access: http://github.com/abcminiuser/lufa-lib \n
|
||||
* Development Source Archives: http://github.com/abcminiuser/lufa-lib/archives/master \n
|
||||
* Commit RSS Feed: http://github.com/feeds/abcminiuser/commits/lufa-lib/master \n
|
||||
*
|
||||
* \section Sec_Toolchain AVR Toolchain
|
||||
* WinAVR Website: http://winavr.sourceforge.net \n
|
||||
* avr-libc Website: http://www.nongnu.org/avr-libc/ \n
|
||||
*
|
||||
* \section Sec_USBResources USB Resources
|
||||
* USB-IF Website: http://www.usb.org \n
|
||||
*/
|
||||
/** \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
|
||||
*
|
||||
* \section Sec_ProjectPages LUFA Related Webpages
|
||||
* Project Homepage: http://www.fourwalledcubicle.com/LUFA.php \n
|
||||
* Author's Website: http://www.fourwalledcubicle.com \n
|
||||
* Development Blog: http://www.fourwalledcubicle.com/blog \n
|
||||
* Commercial Licences: http://fourwalledcubicle.com/PurchaseLUFA.php \n
|
||||
*
|
||||
* \section Sec_ProjectHelp Assistance With LUFA
|
||||
* Discussion Group: http://groups.google.com/group/myusb-support-list \n
|
||||
* Author's Email: dean [at] fourwalledcubicle [dot] com
|
||||
* Author's Skype: abcminiuser
|
||||
*
|
||||
* \section Sec_InDevelopment Latest In-Development Source Code
|
||||
* Official Releases, SVN Access, Issue Tracker: http://code.google.com/p/lufa-lib/ \n
|
||||
* Git Access: http://github.com/abcminiuser/lufa-lib \n
|
||||
* Development Source Archives: http://github.com/abcminiuser/lufa-lib/archives/master \n
|
||||
* Commit RSS Feed: http://github.com/feeds/abcminiuser/commits/lufa-lib/master \n
|
||||
*
|
||||
* \section Sec_Toolchain AVR Toolchain
|
||||
* WinAVR Website: http://winavr.sourceforge.net \n
|
||||
* avr-libc Website: http://www.nongnu.org/avr-libc/ \n
|
||||
*
|
||||
* \section Sec_USBResources USB Resources
|
||||
* USB-IF Website: http://www.usb.org \n
|
||||
*/
|
||||
|
|
@ -1,20 +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_LicenceInfo Source Code Licence
|
||||
*
|
||||
* 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, in
|
||||
* addition to three free hours of consultation with the library author, and priority support.
|
||||
* Please contact the author for more information via the address shown on on \ref Page_Resources.
|
||||
*
|
||||
* \verbinclude License.txt
|
||||
*/
|
||||
/** \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_LicenceInfo Source Code Licence
|
||||
*
|
||||
* 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, in
|
||||
* addition to three free hours of consultation with the library author, and priority support.
|
||||
* Please contact the author for more information via the address shown on on \ref Page_Resources.
|
||||
*
|
||||
* \verbinclude License.txt
|
||||
*/
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
/** \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
|
||||
*
|
||||
* \image html LUFA.png
|
||||
* <div align="center"><small><i>Logo design by <b>Ryo</b> - http://ryophotography.wordpress.com</i></small></div>
|
||||
* \n
|
||||
*
|
||||
* <b>LUFA is donationware. For author and donation information, see \ref Page_Donating.</b>
|
||||
*
|
||||
* LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license (see \ref Page_LicenceInfo).
|
||||
* It supports a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use,
|
||||
* feature rich framework for the development of USB peripherals and hosts.
|
||||
*
|
||||
* LUFA focuses on the microcontroller side of USB development only; it includes no PC host USB driver development facilities - other projects
|
||||
* such as the Windows Driver Development Kit, Windows USB Device Mode Framework and libusb may be of interest for developing custom OS drivers.
|
||||
* While custom USB devices can be made with LUFA using such tools, the included demos all use the inbuilt OS drivers for each USB class for
|
||||
* simplicity.
|
||||
*
|
||||
* 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, see the blog link at \ref Page_Resources.
|
||||
*
|
||||
* 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 (see \ref Page_Resources).
|
||||
*
|
||||
* The only required AVR peripherals for LUFA is the USB controller itself and interrupts - LUFA does not require the use of the
|
||||
* microcontroller's timers or other hardware, leaving more hardware to the application developer.
|
||||
*
|
||||
* Accompanying LUFA in the download package is a set of example demo applications, plus several Bootloaders of different classes
|
||||
* and open source LUFA powered projects.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
|
||||
* - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
|
||||
* - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
|
||||
* - \subpage Page_LicenceInfo Project source licence and commercial use information
|
||||
* - \subpage Page_Donating Donating to support this project
|
||||
* - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
|
||||
*/
|
||||
/** \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
|
||||
*
|
||||
* \image html LUFA.png
|
||||
* <div align="center"><small><i>Logo design by <b>Ryo</b> - http://ryophotography.wordpress.com</i></small></div>
|
||||
* \n
|
||||
*
|
||||
* <b>LUFA is donationware. For author and donation information, see \ref Page_Donating.</b>
|
||||
*
|
||||
* LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license (see \ref Page_LicenceInfo).
|
||||
* It supports a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use,
|
||||
* feature rich framework for the development of USB peripherals and hosts.
|
||||
*
|
||||
* LUFA focuses on the microcontroller side of USB development only; it includes no PC host USB driver development facilities - other projects
|
||||
* such as the Windows Driver Development Kit, Windows USB Device Mode Framework and libusb may be of interest for developing custom OS drivers.
|
||||
* While custom USB devices can be made with LUFA using such tools, the included demos all use the inbuilt OS drivers for each USB class for
|
||||
* simplicity.
|
||||
*
|
||||
* 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, see the blog link at \ref Page_Resources.
|
||||
*
|
||||
* 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 (see \ref Page_Resources).
|
||||
*
|
||||
* The only required AVR peripherals for LUFA is the USB controller itself and interrupts - LUFA does not require the use of the
|
||||
* microcontroller's timers or other hardware, leaving more hardware to the application developer.
|
||||
*
|
||||
* Accompanying LUFA in the download package is a set of example demo applications, plus several Bootloaders of different classes
|
||||
* and open source LUFA powered projects.
|
||||
*
|
||||
* <b>Subsections:</b>
|
||||
* - \subpage Page_WhyUseLUFA What are the advantages of using LUFA?
|
||||
* - \subpage Page_LUFAvsAtmelStack How does LUFA compare to the Atmel USB AVR stack?
|
||||
* - \subpage Page_AlternativeStacks Alternative USB AVR Stacks
|
||||
* - \subpage Page_LicenceInfo Project source licence and commercial use information
|
||||
* - \subpage Page_Donating Donating to support this project
|
||||
* - \subpage Page_LibraryApps Overview of included Demos, Bootloaders and Projects
|
||||
*/
|
||||
|
|
|
@ -1,491 +1,491 @@
|
|||
/** \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 100219 to XXXXXX
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The \ref TWI_StartTransmission() function now takes in a timeout period, expressed in milliseconds, within which the addressed
|
||||
* device must respond or the function will abort.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
|
||||
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
|
||||
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
|
||||
* functions correctly.
|
||||
* - The USBInterrupt.c USB driver source file has been relocated from LUFA/Drivers/USB/HighLevel/ to LUFA/Drivers/USB/LowLevel.
|
||||
* Projects must update their makefile SRC values accordingly.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
|
||||
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
|
||||
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
|
||||
* functions correctly.
|
||||
* - The USBInterrupt.c USB driver source file has been relocated from LUFA/Drivers/USB/HighLevel/ to LUFA/Drivers/USB/LowLevel.
|
||||
* Projects must update their makefile SRC values accordingly.
|
||||
*
|
||||
* \section Sec_Migration100219 Migrating from 091223 to 100219
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - Due to some ADC channels not being identical to their ADC MUX selection masks for single-ended conversions on some AVR models,
|
||||
* the ADC driver now has explicit masks for each of the standard ADC channels (see \ref Group_ADC). These masks should be used
|
||||
* when calling the ADC functions to ensure proper operation across all AVR models. Note that the \ref ADC_SetupChannel() function
|
||||
* is an exception, and should always be called with a channel number rather than a channel mask.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The MIDI Host Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* pipe bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* flush the queued event(s) to the device by calling \ref MIDI_Host_Flush().
|
||||
* - The Pipe_IsEndpointBound() function now takes the endpoint's direction into account, by checking if the MSB of the endpoint's address
|
||||
* is set to denote IN endpoints. If the previous functionality where the direction is to be discounted is required, mask the endpoint
|
||||
* address against the \ref PIPE_EPNUM_MASK token before calling Pipe_IsEndpointBound().
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The MIDI Device Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* endpoint bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* flush the queued event(s) to the host by calling \ref MIDI_Device_Flush().
|
||||
*
|
||||
* \section Sec_Migration091223 Migrating from 091122 to 091223
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The Still Image Host Class driver SI_Host_USBTask() and SI_Host_ConfigurePipes() functions were misnamed, and are
|
||||
* now named \ref SImage_Host_USBTask() and \ref SImage_Host_ConfigurePipes() respectively.
|
||||
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to \ref HOST_SENDCONTROL_DeviceDisconnected to be in
|
||||
* line with the rest of the library error codes.
|
||||
* - The HID Parser item usages no longer contain seperate minimum and maximum values, as this was a violation of the HID
|
||||
* specification. Instead, the values are distributed evenly across each item as its usage value, to ensure that all items
|
||||
* can be distinguished from oneanother.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to
|
||||
* indicate the report type to generate. Existing applications may simply add and ignore this additional parameter.
|
||||
*
|
||||
* \section Sec_Migration091122 Migrating from 090924 to 091122
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The HID_PARSE_UsageStackOverflow HID parser error constant is now named \ref HID_PARSE_UsageListOverflow
|
||||
* - The \ref CALLBACK_HIDParser_FilterHIDReportItem() HID Parser callback now passes a complete HID_ReportItem_t to the
|
||||
* user application, instead of just its attributes.
|
||||
* - The USB_GetDeviceConfigDescriptor() function was incorrectly named and is now called \ref USB_Host_GetDeviceConfigDescriptor().
|
||||
*
|
||||
* \section Sec_Migration090924 Migrating from 090810 to 090924
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The ADC_Off() function has been renamed to \ref ADC_ShutDown() to be consistent with the rest of the library.
|
||||
* - The \ref SPI_Init() routine's parameters have changed, so that the clock polarity and data sampling modes can be set. See
|
||||
* the \ref SPI_Init() function documentation for more details
|
||||
* - The \ref Dataflash_Init() routine no longer initializes the SPI bus - the SPI bus should be initialized manually via a
|
||||
* call to SPI_Init() before using the Dataflash driver
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The USB_GetDeviceConfigDescriptor() function's parameters and behaviour has changed; the user is required to
|
||||
* preallocate the largest allowable buffer, and pass the size of the buffer to the function. This allows for a single
|
||||
* call to the function to retrieve, size check and validate the Configuration Descriptor rather than having the user
|
||||
* application perform these intermediatary steps.
|
||||
* - The HID report parser now requires a mandatory callback in the user code, to filter only the items the application
|
||||
* is interested in into the processed HID report item structure to save RAM. See \ref CALLBACK_HIDParser_FilterHIDReportItem().
|
||||
* - The HID report parser now always parses FEATURE and always ignores constant-data items - the HID_ENABLE_FEATURE_PROCESSING
|
||||
* and HID_INCLUDE_CONSTANT_DATA_ITEMS compile time tokens now have no effect.
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* \section Sec_Migration090810 Migrating from 090605 to 090810
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.
|
||||
* User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
|
||||
* release.
|
||||
* - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
|
||||
* used in user applications. The library is available from the author's website for those wishing to still use it in their
|
||||
* applications.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The ATTR_NOINLINE function attribute macro has been renamed to ATTR_NO_INLINE to be in line with the rest of the function attribute
|
||||
* macro names.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Most demos now have a corresponding Class Driver implementation, which uses the new internal library class drivers for the standard
|
||||
* USB classes. This allows for more rapid device and host development, and so should be used in preference to the low level APIs where
|
||||
* possible so that fixes to the class drivers propagate to all applications which use them automatically with each new LUFA release.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The HIDParser.c module has moved from LUFA/Drivers/USB/Class/ to LUFA/Drivers/USB/Class/Host/.
|
||||
* - The USB_GetDeviceConfigDescriptor() function now requires the desired configuration index within the device as its first
|
||||
* parameter, to add support for multi-configuration devices. Existing code should use a configuration index of 1 to indicate the
|
||||
* first configuration descriptor within the device.
|
||||
* - The non-standard "Ready" host state has been removed. Existing \ref HOST_STATE_Configured code should be moved to the end of
|
||||
* the existing \ref HOST_STATE_Addressed state, and the existing HOST_STATE_Ready state code should be moved to the \ref HOST_STATE_Configured
|
||||
* state.
|
||||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_HostState explicitly to ensure the host is
|
||||
* in the desired state instead.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The \ref CALLBACK_USB_GetDescriptor() function now takes an extra parameter to specify the descriptor's memory space so that
|
||||
* descriptors in mixed memory spaces can be used. The previous functionality can be returned by defining the USE_FLASH_DESCRIPTORS
|
||||
* token in the project makefile to fix all descriptors into FLASH space and remove the extra function parameter.
|
||||
* - The USB_IsSuspended global has been removed - test \ref USB_DeviceState against \ref DEVICE_STATE_Suspended instead.
|
||||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_DeviceState explicitly to ensure the device
|
||||
* is in the desired state instead.
|
||||
* - The VBUS events have been removed, as they are already exposed to the user via the USB_Connect and USB_Disconnect events.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions. *
|
||||
*
|
||||
* \section Sec_Migration090605 Migrating from 090510 to 090605
|
||||
*
|
||||
* <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_IsCharReceived() 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.
|
||||
*/
|
||||
/** \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 100219 to XXXXXX
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The \ref TWI_StartTransmission() function now takes in a timeout period, expressed in milliseconds, within which the addressed
|
||||
* device must respond or the function will abort.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
|
||||
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
|
||||
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
|
||||
* functions correctly.
|
||||
* - The USBInterrupt.c USB driver source file has been relocated from LUFA/Drivers/USB/HighLevel/ to LUFA/Drivers/USB/LowLevel.
|
||||
* Projects must update their makefile SRC values accordingly.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The \ref USB_Init() function no longer calls sei() to enable global interrupts, as the user application may need
|
||||
* to perform other initialization before it is ready to handle global interrupts. The user application is now responsible
|
||||
* for enabling global interrupts before or shortly after calling \ref USB_Init() to ensure that the enumeration process
|
||||
* functions correctly.
|
||||
* - The USBInterrupt.c USB driver source file has been relocated from LUFA/Drivers/USB/HighLevel/ to LUFA/Drivers/USB/LowLevel.
|
||||
* Projects must update their makefile SRC values accordingly.
|
||||
*
|
||||
* \section Sec_Migration100219 Migrating from 091223 to 100219
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - Due to some ADC channels not being identical to their ADC MUX selection masks for single-ended conversions on some AVR models,
|
||||
* the ADC driver now has explicit masks for each of the standard ADC channels (see \ref Group_ADC). These masks should be used
|
||||
* when calling the ADC functions to ensure proper operation across all AVR models. Note that the \ref ADC_SetupChannel() function
|
||||
* is an exception, and should always be called with a channel number rather than a channel mask.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The MIDI Host Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* pipe bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* flush the queued event(s) to the device by calling \ref MIDI_Host_Flush().
|
||||
* - The Pipe_IsEndpointBound() function now takes the endpoint's direction into account, by checking if the MSB of the endpoint's address
|
||||
* is set to denote IN endpoints. If the previous functionality where the direction is to be discounted is required, mask the endpoint
|
||||
* address against the \ref PIPE_EPNUM_MASK token before calling Pipe_IsEndpointBound().
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The MIDI Device Class driver send and receive routines now operate on packed events, where multiple MIDI events may be
|
||||
* packed into a single USB packet. This means that the sending of MIDI events will now be delayed until the MIDI send
|
||||
* endpoint bank is full. To override this new behaviour and revert to the previous behaviour, the user application may manually
|
||||
* flush the queued event(s) to the host by calling \ref MIDI_Device_Flush().
|
||||
*
|
||||
* \section Sec_Migration091223 Migrating from 091122 to 091223
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The Still Image Host Class driver SI_Host_USBTask() and SI_Host_ConfigurePipes() functions were misnamed, and are
|
||||
* now named \ref SImage_Host_USBTask() and \ref SImage_Host_ConfigurePipes() respectively.
|
||||
* - The HOST_SENDCONTROL_DeviceDisconnect enum value has been renamed to \ref HOST_SENDCONTROL_DeviceDisconnected to be in
|
||||
* line with the rest of the library error codes.
|
||||
* - The HID Parser item usages no longer contain seperate minimum and maximum values, as this was a violation of the HID
|
||||
* specification. Instead, the values are distributed evenly across each item as its usage value, to ensure that all items
|
||||
* can be distinguished from oneanother.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The CALLBACK_HID_Device_CreateHIDReport() HID Device Class driver callback now has a new ReportType parameter to
|
||||
* indicate the report type to generate. Existing applications may simply add and ignore this additional parameter.
|
||||
*
|
||||
* \section Sec_Migration091122 Migrating from 090924 to 091122
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The HID_PARSE_UsageStackOverflow HID parser error constant is now named \ref HID_PARSE_UsageListOverflow
|
||||
* - The \ref CALLBACK_HIDParser_FilterHIDReportItem() HID Parser callback now passes a complete HID_ReportItem_t to the
|
||||
* user application, instead of just its attributes.
|
||||
* - The USB_GetDeviceConfigDescriptor() function was incorrectly named and is now called \ref USB_Host_GetDeviceConfigDescriptor().
|
||||
*
|
||||
* \section Sec_Migration090924 Migrating from 090810 to 090924
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The ADC_Off() function has been renamed to \ref ADC_ShutDown() to be consistent with the rest of the library.
|
||||
* - The \ref SPI_Init() routine's parameters have changed, so that the clock polarity and data sampling modes can be set. See
|
||||
* the \ref SPI_Init() function documentation for more details
|
||||
* - The \ref Dataflash_Init() routine no longer initializes the SPI bus - the SPI bus should be initialized manually via a
|
||||
* call to SPI_Init() before using the Dataflash driver
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The USB_GetDeviceConfigDescriptor() function's parameters and behaviour has changed; the user is required to
|
||||
* preallocate the largest allowable buffer, and pass the size of the buffer to the function. This allows for a single
|
||||
* call to the function to retrieve, size check and validate the Configuration Descriptor rather than having the user
|
||||
* application perform these intermediatary steps.
|
||||
* - The HID report parser now requires a mandatory callback in the user code, to filter only the items the application
|
||||
* is interested in into the processed HID report item structure to save RAM. See \ref CALLBACK_HIDParser_FilterHIDReportItem().
|
||||
* - The HID report parser now always parses FEATURE and always ignores constant-data items - the HID_ENABLE_FEATURE_PROCESSING
|
||||
* and HID_INCLUDE_CONSTANT_DATA_ITEMS compile time tokens now have no effect.
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token has been removed - there are now seperate USB_Descriptor_*
|
||||
* and USB_StdDescriptor_* structures for both the LUFA and standardized element naming conventions so that both may be used in
|
||||
* the one project. For existing projects using the standardized names, change all code to use the USB_StdDescriptor_* variants.
|
||||
*
|
||||
* \section Sec_Migration090810 Migrating from 090605 to 090810
|
||||
*
|
||||
* <b>All</b>
|
||||
* - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.
|
||||
* User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
|
||||
* release.
|
||||
* - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
|
||||
* used in user applications. The library is available from the author's website for those wishing to still use it in their
|
||||
* applications.
|
||||
*
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The ATTR_NOINLINE function attribute macro has been renamed to ATTR_NO_INLINE to be in line with the rest of the function attribute
|
||||
* macro names.
|
||||
*
|
||||
* <b>Library Demos</b>
|
||||
* - Most demos now have a corresponding Class Driver implementation, which uses the new internal library class drivers for the standard
|
||||
* USB classes. This allows for more rapid device and host development, and so should be used in preference to the low level APIs where
|
||||
* possible so that fixes to the class drivers propagate to all applications which use them automatically with each new LUFA release.
|
||||
*
|
||||
* <b>Host Mode</b>
|
||||
* - The HIDParser.c module has moved from LUFA/Drivers/USB/Class/ to LUFA/Drivers/USB/Class/Host/.
|
||||
* - The USB_GetDeviceConfigDescriptor() function now requires the desired configuration index within the device as its first
|
||||
* parameter, to add support for multi-configuration devices. Existing code should use a configuration index of 1 to indicate the
|
||||
* first configuration descriptor within the device.
|
||||
* - The non-standard "Ready" host state has been removed. Existing \ref HOST_STATE_Configured code should be moved to the end of
|
||||
* the existing \ref HOST_STATE_Addressed state, and the existing HOST_STATE_Ready state code should be moved to the \ref HOST_STATE_Configured
|
||||
* state.
|
||||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_HostState explicitly to ensure the host is
|
||||
* in the desired state instead.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions.
|
||||
*
|
||||
* <b>Device Mode</b>
|
||||
* - The \ref CALLBACK_USB_GetDescriptor() function now takes an extra parameter to specify the descriptor's memory space so that
|
||||
* descriptors in mixed memory spaces can be used. The previous functionality can be returned by defining the USE_FLASH_DESCRIPTORS
|
||||
* token in the project makefile to fix all descriptors into FLASH space and remove the extra function parameter.
|
||||
* - The USB_IsSuspended global has been removed - test \ref USB_DeviceState against \ref DEVICE_STATE_Suspended instead.
|
||||
* - The USB_IsConnected global has been removed, as it is too vague for general use. Test \ref USB_DeviceState explicitly to ensure the device
|
||||
* is in the desired state instead.
|
||||
* - The VBUS events have been removed, as they are already exposed to the user via the USB_Connect and USB_Disconnect events.
|
||||
* - The USB event names have been changed and their firing conditions changed to properly seperate out Host mode events from Device mode
|
||||
* events. See the \ref Group_Events page for details on the new event names and firing conditions. *
|
||||
*
|
||||
* \section Sec_Migration090605 Migrating from 090510 to 090605
|
||||
*
|
||||
* <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_IsCharReceived() 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.
|
||||
*/
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
/** \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_ProgrammingApps Programming an Application into 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 of 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".
|
||||
/** \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_ProgrammingApps Programming an Application into 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 of 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".
|
||||
*/
|
|
@ -1,35 +1,35 @@
|
|||
/** \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_SchedulerOverview LUFA Scheduler Overview
|
||||
*
|
||||
* <B>THE LUFA SCHEDULER IS NOW DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE. EXISTING CODE SHOULD CONVERT
|
||||
* TO STANDARD LOOPS AS SHOWN IN THE CURRENT LIBRARY DEMOS.</b>
|
||||
*
|
||||
*
|
||||
* The LUFA library comes with a small, basic round-robbin scheduler which allows for small "tasks" to be executed
|
||||
* continuously in sequence, and enabled/disabled at runtime. Unlike a conventional, complex RTOS scheduler, the
|
||||
* LUFA scheduler is very simple in design and operation and is essentially a loop conditionally executing a series
|
||||
* of functions.
|
||||
*
|
||||
* Each LUFA scheduler task should be written similar to an ISR; it should execute quickly (so that no one task
|
||||
* hogs the processor, preventing another from running before some sort of timeout is exceeded). Unlike normal RTOS
|
||||
* tasks, each LUFA scheduler task is a regular function, and thus must be designed to be called, and designed to
|
||||
* return to the calling scheduler function repeatedly. Data which must be preserved between task calls should be
|
||||
* declared as global or (preferably) as a static local variable inside the task.
|
||||
*
|
||||
* The scheduler consists of a task list, listing all the tasks which can be executed by the scheduler. Once started,
|
||||
* each task is then called one after another, unless the task is stopped by another running task or interrupt.
|
||||
*
|
||||
*
|
||||
* If desired, the LUFA scheduler <b>does not need to be used</b> in a LUFA powered application. A more conventional
|
||||
* approach to application design can be used, or a proper scheduling RTOS inserted in the place of the LUFA scheduler.
|
||||
* In the case of the former the USB task must be run manually repeatedly to maintain USB communications, and in the
|
||||
* case of the latter a proper RTOS task must be set up to do the same.
|
||||
*
|
||||
*
|
||||
* For more information on the LUFA scheduler, see the Scheduler.h file documentation.
|
||||
*/
|
||||
/** \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_SchedulerOverview LUFA Scheduler Overview
|
||||
*
|
||||
* <B>THE LUFA SCHEDULER IS NOW DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE. EXISTING CODE SHOULD CONVERT
|
||||
* TO STANDARD LOOPS AS SHOWN IN THE CURRENT LIBRARY DEMOS.</b>
|
||||
*
|
||||
*
|
||||
* The LUFA library comes with a small, basic round-robbin scheduler which allows for small "tasks" to be executed
|
||||
* continuously in sequence, and enabled/disabled at runtime. Unlike a conventional, complex RTOS scheduler, the
|
||||
* LUFA scheduler is very simple in design and operation and is essentially a loop conditionally executing a series
|
||||
* of functions.
|
||||
*
|
||||
* Each LUFA scheduler task should be written similar to an ISR; it should execute quickly (so that no one task
|
||||
* hogs the processor, preventing another from running before some sort of timeout is exceeded). Unlike normal RTOS
|
||||
* tasks, each LUFA scheduler task is a regular function, and thus must be designed to be called, and designed to
|
||||
* return to the calling scheduler function repeatedly. Data which must be preserved between task calls should be
|
||||
* declared as global or (preferably) as a static local variable inside the task.
|
||||
*
|
||||
* The scheduler consists of a task list, listing all the tasks which can be executed by the scheduler. Once started,
|
||||
* each task is then called one after another, unless the task is stopped by another running task or interrupt.
|
||||
*
|
||||
*
|
||||
* If desired, the LUFA scheduler <b>does not need to be used</b> in a LUFA powered application. A more conventional
|
||||
* approach to application design can be used, or a proper scheduling RTOS inserted in the place of the LUFA scheduler.
|
||||
* In the case of the former the USB task must be run manually repeatedly to maintain USB communications, and in the
|
||||
* case of the latter a proper RTOS task must be set up to do the same.
|
||||
*
|
||||
*
|
||||
* For more information on the LUFA scheduler, see the Scheduler.h file documentation.
|
||||
*/
|
||||
|
|
|
@ -1,63 +1,63 @@
|
|||
/** \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_SoftwareBootloaderStart Entering the Bootloader via Software
|
||||
*
|
||||
* A common requirement of many applications is the ability to jump to the programmed bootloader of a chip
|
||||
* on demand, via the code's firmware (i.e. not as a result of any physical user interaction with the
|
||||
* hardware). This might be required because the device does not have any physical user input, or simply
|
||||
* just to streamline the device upgrade process on the host PC.
|
||||
*
|
||||
* The following C code snippet may be used to enter the bootloader upon request by the user application.
|
||||
* By using the watchdog to physically reset the controller, it is ensured that all system hardware is
|
||||
* completely reset to their defaults before the bootloader is run. This is important; since bootloaders
|
||||
* are written to occupy a very limited space, they usually make assumptions about the register states based
|
||||
* on the default values after a hard-reset of the chip.
|
||||
*
|
||||
* \code
|
||||
* #include <avr/wdt.h>
|
||||
* #include <avr/io.h>
|
||||
* #include <util/delay.h>
|
||||
*
|
||||
* #include <LUFA/Common/Common.h>
|
||||
* #include <LUFA/Drivers/USB/USB.h>
|
||||
*
|
||||
* uint32_t Boot_Key ATTR_NO_INIT;
|
||||
*
|
||||
* #define MAGIC_BOOT_KEY 0xDC42ACCA
|
||||
* #define BOOTLOADER_START_ADDRESS ({FLASH_SIZE_BYTES} - {BOOTLOADER_SEC_SIZE_BYTES})
|
||||
*
|
||||
* void Bootloader_Jump_Check(void) ATTR_INIT_SECTION(3);
|
||||
* void Bootloader_Jump_Check(void)
|
||||
* {
|
||||
* // If the reset source was the bootloader and the key is correct, clear it and jump to the bootloader
|
||||
* if ((MCUSR & (1<<WDRF)) && (Boot_Key == MAGIC_BOOT_KEY))
|
||||
* {
|
||||
* Boot_Key = 0;
|
||||
* ((void (*)(void))BOOTLOADER_START_ADDRESS)();
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* void Jump_To_Bootloader(void)
|
||||
* {
|
||||
* // If USB is used, detatch from the bus and wait 2 seconds for the host to register it
|
||||
* USB_ShutDown();
|
||||
* for (uint8_t i = 0; i < 128; i++)
|
||||
* _delay_ms(16);
|
||||
*
|
||||
* // Set the bootloader key to the magic value and force a reset
|
||||
* Boot_Key = MAGIC_BOOT_KEY;
|
||||
* wdt_enable(WDTO_250MS);
|
||||
* for (;;);
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Note that the bootloader magic key can be any arbitrary value. The {FLASH_SIZE_BYTES} and
|
||||
* {BOOTLOADER_SEC_SIZE_BYTES} tokens should be replaced with the total flash size of the AVR
|
||||
* in bytes, and the allocated size of the bootloader section for the target AVR.
|
||||
*
|
||||
/** \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_SoftwareBootloaderStart Entering the Bootloader via Software
|
||||
*
|
||||
* A common requirement of many applications is the ability to jump to the programmed bootloader of a chip
|
||||
* on demand, via the code's firmware (i.e. not as a result of any physical user interaction with the
|
||||
* hardware). This might be required because the device does not have any physical user input, or simply
|
||||
* just to streamline the device upgrade process on the host PC.
|
||||
*
|
||||
* The following C code snippet may be used to enter the bootloader upon request by the user application.
|
||||
* By using the watchdog to physically reset the controller, it is ensured that all system hardware is
|
||||
* completely reset to their defaults before the bootloader is run. This is important; since bootloaders
|
||||
* are written to occupy a very limited space, they usually make assumptions about the register states based
|
||||
* on the default values after a hard-reset of the chip.
|
||||
*
|
||||
* \code
|
||||
* #include <avr/wdt.h>
|
||||
* #include <avr/io.h>
|
||||
* #include <util/delay.h>
|
||||
*
|
||||
* #include <LUFA/Common/Common.h>
|
||||
* #include <LUFA/Drivers/USB/USB.h>
|
||||
*
|
||||
* uint32_t Boot_Key ATTR_NO_INIT;
|
||||
*
|
||||
* #define MAGIC_BOOT_KEY 0xDC42ACCA
|
||||
* #define BOOTLOADER_START_ADDRESS ({FLASH_SIZE_BYTES} - {BOOTLOADER_SEC_SIZE_BYTES})
|
||||
*
|
||||
* void Bootloader_Jump_Check(void) ATTR_INIT_SECTION(3);
|
||||
* void Bootloader_Jump_Check(void)
|
||||
* {
|
||||
* // If the reset source was the bootloader and the key is correct, clear it and jump to the bootloader
|
||||
* if ((MCUSR & (1<<WDRF)) && (Boot_Key == MAGIC_BOOT_KEY))
|
||||
* {
|
||||
* Boot_Key = 0;
|
||||
* ((void (*)(void))BOOTLOADER_START_ADDRESS)();
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* void Jump_To_Bootloader(void)
|
||||
* {
|
||||
* // If USB is used, detatch from the bus and wait 2 seconds for the host to register it
|
||||
* USB_ShutDown();
|
||||
* for (uint8_t i = 0; i < 128; i++)
|
||||
* _delay_ms(16);
|
||||
*
|
||||
* // Set the bootloader key to the magic value and force a reset
|
||||
* Boot_Key = MAGIC_BOOT_KEY;
|
||||
* wdt_enable(WDTO_250MS);
|
||||
* for (;;);
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Note that the bootloader magic key can be any arbitrary value. The {FLASH_SIZE_BYTES} and
|
||||
* {BOOTLOADER_SEC_SIZE_BYTES} tokens should be replaced with the total flash size of the AVR
|
||||
* in bytes, and the allocated size of the bootloader section for the target AVR.
|
||||
*
|
||||
*/
|
|
@ -1,423 +1,423 @@
|
|||
/** \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
|
||||
*
|
||||
* \section Sec_VIDPID_Allocations
|
||||
* 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.
|
||||
*
|
||||
* <b>These VID/PID values should not be used in commercial designs under any circumstances.</b> 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 VID/PID (See below)
|
||||
* </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>
|
||||
* Combined Keyboard and Mouse 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>
|
||||
* Benito Programmer Project
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2061
|
||||
* </td>
|
||||
* <td>
|
||||
* Combined Mass Storage and Keyboard Demo
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2062
|
||||
* </td>
|
||||
* <td>
|
||||
* Combined CDC and Mouse Demo
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2063
|
||||
* </td>
|
||||
* <td>
|
||||
* Mass Storage/HID Interface Datalogger Project
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2064
|
||||
* </td>
|
||||
* <td>
|
||||
* Interfaceless Control-Only LUFA Devices
|
||||
* </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>
|
||||
*
|
||||
* \section Sec_Test_VIDPID The Test VID/PID Combination:
|
||||
* For use in testing of LUFA powered devices during development only, by non-commercial entities.
|
||||
* All devices must accept collisions on this VID/PID range (from other in-development LUFA devices)
|
||||
* to be resolved by using a unique release number in the Device Descriptor. No devices using this
|
||||
* VID/PID combination may be released to the general public.
|
||||
*/
|
||||
/** \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
|
||||
*
|
||||
* \section Sec_VIDPID_Allocations
|
||||
* 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.
|
||||
*
|
||||
* <b>These VID/PID values should not be used in commercial designs under any circumstances.</b> 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 VID/PID (See below)
|
||||
* </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>
|
||||
* Combined Keyboard and Mouse 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>
|
||||
* Benito Programmer Project
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2061
|
||||
* </td>
|
||||
* <td>
|
||||
* Combined Mass Storage and Keyboard Demo
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2062
|
||||
* </td>
|
||||
* <td>
|
||||
* Combined CDC and Mouse Demo
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2063
|
||||
* </td>
|
||||
* <td>
|
||||
* Mass Storage/HID Interface Datalogger Project
|
||||
* </td>
|
||||
* </tr>
|
||||
*
|
||||
* <tr>
|
||||
* <td>
|
||||
* 0x03EB
|
||||
* </td>
|
||||
* <td>
|
||||
* 0x2064
|
||||
* </td>
|
||||
* <td>
|
||||
* Interfaceless Control-Only LUFA Devices
|
||||
* </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>
|
||||
*
|
||||
* \section Sec_Test_VIDPID The Test VID/PID Combination:
|
||||
* For use in testing of LUFA powered devices during development only, by non-commercial entities.
|
||||
* All devices must accept collisions on this VID/PID range (from other in-development LUFA devices)
|
||||
* to be resolved by using a unique release number in the Device Descriptor. No devices using this
|
||||
* VID/PID combination may be released to the general public.
|
||||
*/
|
||||
|
|
|
@ -1,46 +1,46 @@
|
|||
/** \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_WhyUseLUFA Why Use LUFA?
|
||||
*
|
||||
* The LUFA Library has many advantages over implementing the code required to drive the USB AVRs directly.
|
||||
* It is much more preferable to incorporate LUFA into your existing projects - or even make a new project
|
||||
* using LUFA - than it is to start from scratch and use the USB AVR registers directly. Some of these reasons
|
||||
* are:
|
||||
*
|
||||
* - <b>Portability:</b>
|
||||
* The LUFA stack is designed to run (at some capacity) on the entire Atmel range of USB AVRs, regardless of the
|
||||
* exact USB controller revision used. If you decide to implement your own USB stack, you will either need to
|
||||
* code around the differences between each USB AVR controller's implementation between different chip models, or
|
||||
* require your code to run on only one specific USB AVR model series.
|
||||
*
|
||||
* - <b>Speed of Development:</b>
|
||||
* LUFA ships with a wide range of pre-made demos, bootloaders and projects for you to try, learn and extend. Each
|
||||
* of these demos are tested (where possible) across as many USB AVRs and Operating Systems as possible, to ensure
|
||||
* that they work under as many conditions as possible. In addition, there are inbuilt class drivers for several of
|
||||
* the USB classes which you can make use of in your projects with minimal effort.
|
||||
*
|
||||
* - <b>Maintainability:</b>
|
||||
* As LUFA takes care of much of the USB implementation, you can be left to focusing on your actual project's
|
||||
* functionality, rather than being held back developing and debugging the USB stack code. Since LUFA uses clear APIs
|
||||
* for USB development, your code will be more readable than if it had the low level USB stack code integrated into
|
||||
* it directly. Updating the LUFA library is a simple folder-replacement and gives new features and bug fixes in
|
||||
* seconds each time a new release is made.
|
||||
*
|
||||
* - <b>Size:</b>
|
||||
* Not just requiring less code to make complex USB devices, LUFA (under most cases with the correct compile options)
|
||||
* requires less FLASH space than Atmel's stack, meaning more space for the user application*.
|
||||
*
|
||||
* - <b>Support:</b>
|
||||
* Since many people are now using LUFA in their own projects, you can take advantage of other's knowedge when you run
|
||||
* into difficulties or need some advice. In addition, you can also email the library author to recieve personalised
|
||||
* support when you need it (subject to author's schedule).
|
||||
*
|
||||
* <small>* Atmel Stack Mouse Device Demo 4292 bytes, LUFA Mouse Low Level Device Demo 3296 bytes, under identical build
|
||||
* environments</small>
|
||||
*/
|
||||
/** \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_WhyUseLUFA Why Use LUFA?
|
||||
*
|
||||
* The LUFA Library has many advantages over implementing the code required to drive the USB AVRs directly.
|
||||
* It is much more preferable to incorporate LUFA into your existing projects - or even make a new project
|
||||
* using LUFA - than it is to start from scratch and use the USB AVR registers directly. Some of these reasons
|
||||
* are:
|
||||
*
|
||||
* - <b>Portability:</b>
|
||||
* The LUFA stack is designed to run (at some capacity) on the entire Atmel range of USB AVRs, regardless of the
|
||||
* exact USB controller revision used. If you decide to implement your own USB stack, you will either need to
|
||||
* code around the differences between each USB AVR controller's implementation between different chip models, or
|
||||
* require your code to run on only one specific USB AVR model series.
|
||||
*
|
||||
* - <b>Speed of Development:</b>
|
||||
* LUFA ships with a wide range of pre-made demos, bootloaders and projects for you to try, learn and extend. Each
|
||||
* of these demos are tested (where possible) across as many USB AVRs and Operating Systems as possible, to ensure
|
||||
* that they work under as many conditions as possible. In addition, there are inbuilt class drivers for several of
|
||||
* the USB classes which you can make use of in your projects with minimal effort.
|
||||
*
|
||||
* - <b>Maintainability:</b>
|
||||
* As LUFA takes care of much of the USB implementation, you can be left to focusing on your actual project's
|
||||
* functionality, rather than being held back developing and debugging the USB stack code. Since LUFA uses clear APIs
|
||||
* for USB development, your code will be more readable than if it had the low level USB stack code integrated into
|
||||
* it directly. Updating the LUFA library is a simple folder-replacement and gives new features and bug fixes in
|
||||
* seconds each time a new release is made.
|
||||
*
|
||||
* - <b>Size:</b>
|
||||
* Not just requiring less code to make complex USB devices, LUFA (under most cases with the correct compile options)
|
||||
* requires less FLASH space than Atmel's stack, meaning more space for the user application*.
|
||||
*
|
||||
* - <b>Support:</b>
|
||||
* Since many people are now using LUFA in their own projects, you can take advantage of other's knowedge when you run
|
||||
* into difficulties or need some advice. In addition, you can also email the library author to recieve personalised
|
||||
* support when you need it (subject to author's schedule).
|
||||
*
|
||||
* <small>* Atmel Stack Mouse Device Demo 4292 bytes, LUFA Mouse Low Level Device Demo 3296 bytes, under identical build
|
||||
* environments</small>
|
||||
*/
|
||||
|
|
@ -1,26 +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.
|
||||
*/
|
||||
/** \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