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