mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
22 Commits
LUFA-13090
...
LUFA-13090
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
012c565609 | ||
|
|
dbad27dd6d | ||
|
|
53f7499009 | ||
|
|
96f2634770 | ||
|
|
c18283a275 | ||
|
|
14ba7a7047 | ||
|
|
adb61c7b29 | ||
|
|
2ba22d5571 | ||
|
|
a8d907d704 | ||
|
|
6216a71e1c | ||
|
|
ce546b43cc | ||
|
|
af0adbcb36 | ||
|
|
e5bee74fca | ||
|
|
8cd0b383c5 | ||
|
|
fbe2982858 | ||
|
|
aded8373cc | ||
|
|
44bc433fb0 | ||
|
|
46621b7a11 | ||
|
|
41046f2354 | ||
|
|
179e18cf58 | ||
|
|
cba09e323d | ||
|
|
03ce1bc503 |
@@ -54,6 +54,9 @@
|
||||
* When the bootloader is running, the board's LED(s) will flash at regular intervals to distinguish the
|
||||
* bootloader from the normal user application.
|
||||
*
|
||||
* \warning <b>THIS BOOTLOADER IS NOT SECURE.</b> Malicious entities can recover written data, even if the device
|
||||
* lockbits are set.
|
||||
*
|
||||
* \section Sec_Installation Driver Installation
|
||||
*
|
||||
* After running this bootloader for the first time on a new computer, you will need to supply the .INF
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA CDC Bootloader.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
@@ -60,4 +63,4 @@ HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider"
|
||||
;------------------------------------------------------------------------------
|
||||
[Strings]
|
||||
MFGNAME="http://www.lufa-lib.org"
|
||||
DESCRIPTION="LUFA CDC Class Bootloader"
|
||||
DESCRIPTION="LUFA CDC Class Bootloader"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -56,6 +56,9 @@
|
||||
* all other models. If you wish to alter this size and/or change the AVR model, you will need to edit the MCU,
|
||||
* FLASH_SIZE_KB and BOOT_SECTION_SIZE_KB values in the accompanying makefile.
|
||||
*
|
||||
* \warning <b>THIS BOOTLOADER IS NOT SECURE.</b> Malicious entities can recover written data, even if the device
|
||||
* lockbits are set.
|
||||
*
|
||||
* \section Sec_Installation Driver Installation
|
||||
*
|
||||
* This bootloader uses the HID class driver inbuilt into all modern operating systems, thus no additional drivers
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -57,6 +57,9 @@
|
||||
* When the bootloader is running, the board's LED(s) will flash at regular intervals to distinguish the
|
||||
* bootloader from the normal user application.
|
||||
*
|
||||
* \warning <b>THIS BOOTLOADER IS NOT SECURE.</b> Malicious entities can recover written data, even if the device
|
||||
* lockbits are set.
|
||||
*
|
||||
* \section Sec_Installation Driver Installation
|
||||
*
|
||||
* This bootloader uses the Mass Storage drivers inbuilt into all modern operating systems, thus no additional
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA DualVirtualSerial.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,9 @@
|
||||
; Windows LUFA RNDIS Setup File
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA RNDIS.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Net
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA VirtualSerial.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA VirtualSerialMassStorage.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA VirtualSerialMouse.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA DualVirtualSerial.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,9 @@
|
||||
; Windows LUFA RNDIS Setup File
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA RNDIS.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Net
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA VirtualSerial.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -47,7 +47,7 @@
|
||||
/* Includes: */
|
||||
// TODO: Add any required includes here
|
||||
|
||||
/* Enable C linkage for C++ Compilers: */
|
||||
/* Enable C linkage for C++ Compilers: */
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
; Windows LUFA CDC ACM Setup File
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA CDC-ACM.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
@@ -58,4 +61,4 @@ HKR,,EnumPropPages32,,"msports.dll,SerialPortPropPageProvider"
|
||||
;------------------------------------------------------------------------------
|
||||
[Strings]
|
||||
MFGNAME="http://www.lufa-lib.org"
|
||||
DESCRIPTION="LUFA CDC-ACM Virtual Serial Port"
|
||||
DESCRIPTION="LUFA CDC-ACM Virtual Serial Port"
|
||||
@@ -1,6 +1,9 @@
|
||||
; Windows LUFA RNDIS Setup File
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA RNDIS.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Net
|
||||
2275
LUFA/Doxygen.conf
2275
LUFA/Doxygen.conf
File diff suppressed because it is too large
Load Diff
@@ -320,7 +320,7 @@
|
||||
* \section SSec_BuildModule_ATPROGRAM_Requirements Requirements
|
||||
* This module requires the <tt>atprogram.exe</tt> utility to be available in your system's <b>PATH</b>
|
||||
* variable. The <tt>atprogram.exe</tt> utility is distributed in Atmel AVR Studio 5.x and Atmel Studio 6.x
|
||||
* inside the application install folder's "\avrdbg" subdirectory.
|
||||
* inside the application install folder's "\atbackend" subdirectory.
|
||||
*
|
||||
* \section SSec_BuildModule_ATPROGRAM_Targets Targets
|
||||
*
|
||||
@@ -789,7 +789,7 @@
|
||||
*
|
||||
* The SOURCES LUFA build system module, providing variables listing the various LUFA source files
|
||||
* required to be build by a project for a given LUFA module. This module gives a way to reference
|
||||
* LUFA source files symbollically, so that changes to the library structure do not break the library
|
||||
* LUFA source files symbolically, so that changes to the library structure do not break the library
|
||||
* makefile.
|
||||
*
|
||||
* To use this module in your application makefile, add the following code:
|
||||
@@ -909,7 +909,7 @@
|
||||
* <tr>
|
||||
* <td>Error "<b><tt>Makefile <i>{X}</i> option must be Y or N</tt></b>" shown when compiling.</td>
|
||||
* <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No").
|
||||
* This configuration option is required to be one of the aformentioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td>
|
||||
* This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <td>Error "<b><tt>Unknown input source file formats: <i>{X}</i></tt></b>" shown when compiling.</td>
|
||||
@@ -957,7 +957,7 @@
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <td>Error "<b><tt>unknown MCU '<i>{X}</i>' specified</tt></b>" shown when compiling.</td>
|
||||
* <td>The specified micocontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the
|
||||
* <td>The specified microcontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the
|
||||
* version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.</td>
|
||||
* </tr>
|
||||
* <tr>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
/** \page Page_ChangeLog Project Changelog
|
||||
*
|
||||
* \section Sec_ChangeLogXXXXXX Version XXXXXX
|
||||
* \section Sec_ChangeLog130901 Version 130901
|
||||
* <b>New:</b>
|
||||
* - Core:
|
||||
* - Added additional MIDI command definitions to the MIDI class driver (thanks to Daniel Dreibrodt)
|
||||
@@ -43,6 +43,7 @@
|
||||
* - Fixed incorrect USB device state set when a suspended LUFA device is woken while addressed but not configured (thanks to Balaji Krishnan)
|
||||
* - Fixed broken USART SPI driver for the AVR8 architecture due to incorrect initialization
|
||||
* - Fixed re-enumeration issue of XMEGA architecture targets (thanks to Jaroslav Jedlinsky)
|
||||
* - Fixed error receiving PIMA events via the Still Image Host class driver
|
||||
* - Library Applications:
|
||||
* - Added handler for SCSI_CMD_START_STOP_UNIT in demos using the Mass Storage class, to prevent ejection errors on *nix systems due to an
|
||||
* unknown SCSI command
|
||||
@@ -158,7 +159,7 @@
|
||||
* - Fixed compile error for the UC3 architecture when INTERRUPT_CONTROL_ENDPOINT is specified (thanks to Andrus Aaslaid)
|
||||
* - Fixed compile error if LEDs_Disable() is called and BOARD=NONE is set (thanks to Sam Lin)
|
||||
* - Fixed inverted LED logic in the OLIMEX162 board LED driver
|
||||
* - Fixed incorrect reponse to GET STATUS requests in device mode if NO_DEVICE_SELF_POWER or NO_DEVICE_REMOTE_WAKEUP tokens are defined (thanks to Georg Glock)
|
||||
* - Fixed incorrect response to GET STATUS requests in device mode if NO_DEVICE_SELF_POWER or NO_DEVICE_REMOTE_WAKEUP tokens are defined (thanks to Georg Glock)
|
||||
* - Fixed inverted LED logic in the USB2AX board LED driver
|
||||
* - Fixed possible deadlock in the CDC device driver if the USB connection is dropped while the CDC_REQ_SetLineEncoding control request is being processed by
|
||||
* the stack (thanks to Jonathan Hudgins)
|
||||
@@ -210,7 +211,7 @@
|
||||
* - Altered the Mass Storage Host class driver so that SCSI data STALLs from the attached device can be recovered from automatically without
|
||||
* having to reset the Mass Storage interface
|
||||
* - USB_CONFIG_ATTR_BUSPOWERED constant renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed (thanks to NXP Semiconductors)
|
||||
* - Reordered board name definition indexes so that a mispelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
|
||||
* - Reordered board name definition indexes so that a misspelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
|
||||
* - Altered the HID class driver to only try to construct at maximum one packet per USB frame, to reduce CPU usage
|
||||
* - All USB Class Driver configuration struct values are now non-const, to allow for run-time modifications if required before configuring an instance
|
||||
* - Library Applications:
|
||||
@@ -757,7 +758,7 @@
|
||||
* - Added new RNDIS Ethernet Host ClassDriver demo
|
||||
* - Added CDC_Host_Flush() function to the CDC Host Class driver to flush sent data to the attached device
|
||||
* - Added PDI programming support for XMEGA devices to the AVRISP programmer project (thanks to Justin Mattair)
|
||||
* - Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different dataflash used
|
||||
* - Added support for the XPLAIN board Dataflash, with new XPLAIN_REV1 board target for the different Dataflash used
|
||||
* on the first revision boards compared to the one mounted on later revisions
|
||||
* - Added new HID_ALIGN_DATA() macro to return the pre-retrieved value of a HID report item, left-aligned to a given datatype
|
||||
* - Added new PreviousValue to the HID Report Parser report item structure, for easy monitoring of previous report item values
|
||||
@@ -1075,7 +1076,7 @@
|
||||
* Pipe_ClearSetupSent() macro is no longer applicable and should be removed - changes made to compliment the new endpoint and pipe
|
||||
* bank management API
|
||||
* - Updated all demos, bootloaders and projects to use the new endpoint and pipe management APIs (thanks to Roman Thiel from Curetis AG)
|
||||
* - Updated library doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
|
||||
* - Updated library Doxygen documentation, added groups, changed documentation macro functions to real functions for clarity
|
||||
* - Removed old endpoint and pipe aliased read/write/discard routines which did not have an explicit endian specifier for clarity
|
||||
* - Removed the ButtLoadTag.h header file, as no one used for its intended purpose anyway
|
||||
* - Renamed the main Drivers/AT90USBXXX directory to Drivers/Peripheral, renamed the Serial_Stream driver to SerialStream
|
||||
@@ -1291,7 +1292,7 @@
|
||||
* - All HID demos now pass the USB.org automated HID compliance tests
|
||||
* - Polling interval of the interrupt endpoint in the CDC based demos changed to 0xFF to fix problems on Linux systems
|
||||
* - Changed stream functions to accept a new callback function, with NO_STREAM_CALLBACKS used to disable all callbacks
|
||||
* - Mass Storage demo dataflash management routines changed to use the endpoint stream functions
|
||||
* - Mass Storage demo Dataflash management routines changed to use the endpoint stream functions
|
||||
* - Added AVRStudio project files for each demo in addition to the existing Programmer's Notepad master project file
|
||||
* - Re-added call to ReconfigureUSART() in USBtoSerial SetLineCoding request, so that baud rate changes
|
||||
* are reflected in the hardware (change was previously lost)
|
||||
@@ -1347,7 +1348,7 @@
|
||||
* size bits not required for the routines (improves compatibility with devices)
|
||||
* - Fixed AudioInput demo - now correctly sends sampled audio to the host PC
|
||||
* - Fixed AudioOutput demo once more -- apparently Windows requires endpoint packets to be >=192 bytes
|
||||
* - Shrunk round-robbin scheduler code slightly via the use of struct pointers rather than array indexes
|
||||
* - Shrunk round-robin scheduler code slightly via the use of struct pointers rather than array indexes
|
||||
* - Fixed off-by-one error when determining if the Usage Stack is full inside the HID Report parser
|
||||
* - Renamed Magstripe.h to MagstripeHW.h and moved driver out of the library and into the MagStripe demo folder
|
||||
* - Added preprocessor checks to enable C linkage on the library components when used with a C++ compiler
|
||||
@@ -1489,7 +1490,7 @@
|
||||
* - Added support for custom board drivers to be supplied by selecting the board type as BOARD_USER, and
|
||||
* placing board drivers in {Application Directory}/Board/
|
||||
* - PLL is now stopped and USB clock is frozen when detached from host in device mode, to save power
|
||||
* - Joystick defines are now in synch with the schematics - orientation will be rotated for the USBKEY
|
||||
* - Joystick defines are now in sync with the schematics - orientation will be rotated for the USBKEY
|
||||
* - Fixed USB_DEV_IsUSBSuspended() - now checks the correct register
|
||||
* - Fixed data transfers to devices when in host mode
|
||||
* - Renamed USB_DEV_OPT_HIGHSPEED to USB_DEV_OPT_FULLSPEED and USB_HOST_IsDeviceHighSpeed() to
|
||||
@@ -1524,7 +1525,7 @@
|
||||
* - AVR_HOST_GetDeviceConfigDescriptor routine no longer modifies ConfigSizePtr if a valid buffer
|
||||
* pointer is passed
|
||||
* - Added ALLOCABLE_BYTES to DynAlloc, and added code to make the size of key storage variables
|
||||
* dependant on size of memory parameters passed in via the user project's makefile
|
||||
* dependent on size of memory parameters passed in via the user project's makefile
|
||||
* - Fixed incorrect device reset routine being called in USBTask
|
||||
* - Devices which do not connect within the standard 300mS are now supported
|
||||
* - Removed incorrect ATTR_PURE from Scheduler_SetTaskMode(), which was preventing tasks from being
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
* \subsection SSec_ConfiguringApps_LUFA_PATH The LUFA_PATH Parameter
|
||||
* As each LUFA program requires the LUFA library source code to compile correctly, the application must know where the LUFA library is located. This
|
||||
* value specifies the path to the LUFA library core. This path may be relative or absolute, however note than even under Windows based systems the
|
||||
* forward-slash (/) path seperator must be used.
|
||||
* forward-slash (/) path separator must be used.
|
||||
*
|
||||
* \subsection SSec_ConfiguringApps_CC_FLAGS The CC_FLAGS Parameter
|
||||
* This parameter lists the compiler flags passed to the C/C++ compiler, the assembler and the linker. These are used as-is directly to GCC and thus
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* issues in the library. Most of these issues should be corrected in the future release - see
|
||||
* \ref Page_FutureChanges for a list of planned changes in future releases.
|
||||
*
|
||||
* \section Sec_KnownIssuesXXXXXX Version XXXXXX
|
||||
* \section Sec_KnownIssues130901 Version 130901
|
||||
* - AVR8 Architecture
|
||||
* - No known issues.
|
||||
* - UC3 Architecture
|
||||
@@ -20,27 +20,26 @@
|
||||
* - DMA transfers to and from the USB controller are not yet implemented for this release.
|
||||
* - The UC3C, UC3D and UC3L sub-families of UC3 are not currently supported by the library due to their
|
||||
* altered USB controller design.
|
||||
* - The various \c CreateStream() functions for creating standard \c <stdio.h> compatible virtual file
|
||||
* - The various \c *_CreateStream() functions for creating standard \c <stdio.h> compatible virtual file
|
||||
* streams are not available on the UC3 architecture, due to a lack of suitable library support.
|
||||
* - XMEGA Architecture
|
||||
* \warning The XMEGA device support is currently <b>experimental</b> (incomplete and/or non-functional), and is included for preview purposes only.
|
||||
*
|
||||
* - No demos, bootloaders or projects have been ported for the XMEGA devices in the current release,
|
||||
* although the architecture is supported in the LUFA core library.
|
||||
* - Endpoints of more than 64 bytes are not currently supported in this release.
|
||||
* - Isochronous endpoints are not currently supported in this release. As a result, the audio class
|
||||
* cannot be used on XMEGA devices.
|
||||
* - Multiple-bank endpoints are not currently supported in this release.
|
||||
* - Early revisions of the ATXMEGA128A1U are incompatible with LUFA, due to their various errata
|
||||
* - Early silicon revisions of the ATXMEGA128A1U are incompatible with LUFA, due to their various errata
|
||||
* relating to the USB controller.
|
||||
* - Architecture Independent
|
||||
* - The HID parser fails for array type elements that have a MIN and MAX usage applied; each element
|
||||
* in the array will receive a unique incrementing usage from the MIN value, up to MAX.
|
||||
* - The LUFA library is not watchdog aware, and thus timeouts are possible if short periods are used
|
||||
* and a lengthy USB operation is initiated.
|
||||
* - No LUFA provided driver INF files for Windows are signed, and thus may fail to install on systems where driver signing is enforced (e.g. Windows 8).
|
||||
* - Build System
|
||||
* - No known issues.
|
||||
* - Atmel Studio Integration
|
||||
* - Not all devices are listed in the "Supported Parts" screen when selecting a device. To select an alternative device, change the "Show Device" drop-down to "All Parts".
|
||||
* - When switching boards after changing the device selection, a second conflicting BOARD symbol definition can be created that prevents successful compilation. To fix, open the project properties window (<i>Project->Project {name} Properties...</i> menu item), click the Toolchain tab, click "Symbols" under the "AVR/GNU C Compiler" section and remove the incorrect definition.
|
||||
*
|
||||
* \section Sec_KnownIssues130303 Version 130303
|
||||
* - AVR8 Architecture
|
||||
@@ -67,8 +66,6 @@
|
||||
* - Early revisions of the ATXMEGA128A1U are incompatible with LUFA, due to their various errata
|
||||
* relating to the USB controller.
|
||||
* - Architecture Independent
|
||||
* - The HID parser fails for array type elements that have a MIN and MAX usage applied; each element
|
||||
* in the array will receive a unique incrementing usage from the MIN value, up to MAX.
|
||||
* - The LUFA library is not watchdog aware, and thus timeouts are possible if short periods are used
|
||||
* and a lengthy USB operation is initiated.
|
||||
* - No LUFA provided driver INF files for Windows are signed, and thus may fail to install on systems where driver signing is enforced (e.g. Windows 8).
|
||||
@@ -100,10 +97,9 @@
|
||||
* - Early revisions of the ATXMEGA128A1U are incompatible with LUFA, due to their various errata
|
||||
* relating to the USB controller.
|
||||
* - Architecture Independent
|
||||
* - The HID parser fails for array type elements that have a MIN and MAX usage applied; each element
|
||||
* in the array will receive a unique incrementing usage from the MIN value, up to MAX.
|
||||
* - The LUFA library is not watchdog aware, and thus timeouts are possible if short periods are used
|
||||
* and a lengthy USB operation is initiated.
|
||||
* - No LUFA provided driver INF files for Windows are signed, and thus may fail to install on systems where driver signing is enforced (e.g. Windows 8).
|
||||
* - Build System
|
||||
* - No known issues.
|
||||
*/
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*
|
||||
* \li AVR-USB-162, a USBKEY-like development board for the AT90USB162: http://olimex.com/dev/avr-usb-162.html
|
||||
* \li Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/wiki/benito
|
||||
* \li Duce, the sucessor to the Benito #7: http://dorkbotpdx.org/wiki/duce
|
||||
* \li Duce, the successor to the Benito #7: http://dorkbotpdx.org/wiki/duce
|
||||
* \li JM-DB-U2, an ATMEGA32U2 development board: http://u2.mattair.net/index.html
|
||||
* \li Micropendous, an open design/source set of AVR USB development boards: http://micropendous.org/
|
||||
* \li Microsin AVR-USB162 breakout board, a DIY AT90USB162 development board: http://microsin.ru/content/view/685/44/
|
||||
@@ -51,6 +51,7 @@
|
||||
* \li Bus Ninja, an AVR clone of the popular BusPirate project: http://blog.hodgepig.org/busninja/
|
||||
* \li CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
|
||||
* \li CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
|
||||
* \li ChipWhisperer, a signal capture device: https://www.assembla.com/spaces/chipwhisperer/wiki/ChipWhisperer_Rev2_Capture_Hardware
|
||||
* \li ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
|
||||
* \li Collection of alternative Arduino Uno firmwares: http://hunt.net.nz/users/darran/
|
||||
* \li Computer controlled LED matrix (Russian): http://we.easyelectronics.ru/AVR/nebolshoy-primer-s-lufa-hidapi.html
|
||||
@@ -104,6 +105,7 @@
|
||||
* \li Opendous-JTAG, an open source ARM JTAG debugger: http://code.google.com/p/opendous-jtag/
|
||||
* \li Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/
|
||||
* \li Orbee, a USB connected RGB Orb for notifications: http://www.franksworkshop.com.au/Electronics/Orbee/Orbee.htm
|
||||
* \li Password keyring: http://owlsan.blogspot.no/2013/06/keyring-project-version-10.html
|
||||
* \li PPM signal generator over USB: https://github.com/G33KatWork/USBPPM
|
||||
* \li Programmable keyboard controller: http://41j.com/blog/2011/10/a-programmable-keyboard-controller/
|
||||
* \li Programmable XBOX controller: http://richard-burke.dyndns.org/wordpress/pan-galactic-gargantuan-gargle-brain-aka-xbox-360-usb-controller/
|
||||
@@ -144,7 +146,7 @@
|
||||
* \li Userial, a USB to Serial converter with SPI, I2C and other protocols: http://www.tty1.net/userial/
|
||||
* \li Wii Classic Controller to USB converter: https://github.com/crazyiop/wii-classic-2-usb
|
||||
* \li Wireless MIDI Guitar system: http://www.ise.pw.edu.pl/~wzab/wireless_guitar_system/
|
||||
* \li XBOX 360 Statup Sound Changer: http://www.homebrew-connection.org/change-your-xbox-360-startup-sounds-yourself/
|
||||
* \li XBOX 360 Startup Sound Changer: http://www.homebrew-connection.org/change-your-xbox-360-startup-sounds-yourself/
|
||||
* \li Xnormidi, a C MIDI library: http://x37v.info/projects/xnormidi
|
||||
* \li XUM1541, a Commodore 64 floppy drive to USB adapter: http://www.root.org/~nate/c64/xum1541/
|
||||
* \li Zeus, a touch screen computer for music manipulation: http://www.benbengler.com/developments_zeus.html
|
||||
@@ -164,6 +166,7 @@
|
||||
* \li Digital Survey Instruments Magnetometer and Pointer: http://www.digitalsurveyinstruments.com/
|
||||
* \li FinchRobot, a robot designed for educational use: http://www.finchrobot.com/
|
||||
* \li Flysight, a GPS logger for wingsuit pilots: http://flysight.ca/
|
||||
* \li Goldilocks, an Arduino compatible clone: http://feilipu.me/2013/03/08/goldilocks-1284p-arduino-uno-clone/
|
||||
* \li HummingBird Kit, a robotics learning platform: http://www.hummingbirdkit.com/
|
||||
* \li Penguino, an Arduino Board With On-Board LUFA Powered Debugger/Programmer: http://wiki.icy.com.au/PenguinoAVR
|
||||
* \li PhatIO, a filesystem based I/O interface: http://www.phatio.com/
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* 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 130303 to XXXXXX
|
||||
* \section Sec_Migration130901 Migrating from 130303 to 130901
|
||||
* <b>Non-USB Library Components</b>
|
||||
* - The Board Dataflash \c Dataflash_Init() function now automatically configures the appropriate communication interface.
|
||||
*
|
||||
|
||||
@@ -102,10 +102,10 @@
|
||||
*
|
||||
* \subsection SSec_WinINF_CDC Windows CDC INF Template
|
||||
* This template is required for all CDC-ACM devices on Windows XP or newer.
|
||||
* \verbinclude WindowsINF/CDC-ACM.inf
|
||||
* \verbinclude "WindowsINF/LUFA CDC-ACM.inf"
|
||||
*
|
||||
* \subsection SSec_WinINF_RNDIS Windows RNDIS INF Template
|
||||
* This template is required for all RNDIS devices on Windows XP or newer.
|
||||
* \verbinclude WindowsINF/RNDIS.inf
|
||||
* \verbinclude "WindowsINF/LUFA RNDIS.inf"
|
||||
*/
|
||||
|
||||
|
||||
@@ -8,20 +8,40 @@
|
||||
*
|
||||
* LUFA ships with several basic pre-made board drivers, to control hardware present on the supported board
|
||||
* hardware - such as Dataflash ICs, LEDs, Joysticks, or other hardware peripherals. When compiling an application
|
||||
* which makes use of one or more board drivers located in LUFA/Drivers/Board, you must also indicate what board
|
||||
* hardware you are using in your project makefile. This is done by defining the BOARD macro using the -D switch
|
||||
* passed to the compiler, with a constant of BOARD_{Name}. For example <b>-DBOARD=BOARD_USBKEY</b> instructs the
|
||||
* compiler to use the USBKEY board hardware drivers.
|
||||
* which makes use of one or more board drivers located in <i>LUFA/Drivers/Board</i>, you must also indicate which
|
||||
* board hardware you are using in your project makefile. This is done by defining the <tt>BOARD</tt> macro using
|
||||
* the <tt>-D</tt> switch passed to the compiler, with a constant of <tt>BOARD_{Name}</tt>. For example,
|
||||
* <tt>-DBOARD=BOARD_USBKEY</tt> 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.
|
||||
* If your application does not use <i>any</i> board level drivers, you can omit the definition of the <tt>BOARD</tt>
|
||||
* 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 <tt>BOARD</tt> macro should be defined to the value <tt>BOARD_USER</tt>.
|
||||
* 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 LUFA/CodeTemplates/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.
|
||||
* When used, the driver stub files located in the <tt>LUFA/CodeTemplates/DriverStubs</tt> folder should be copied to
|
||||
* the user application's <tt>Board/</tt> directory, and filled 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
|
||||
* <tt>LUFA/Drivers/Board/</tt> 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.
|
||||
*
|
||||
* \section Sec_BoardTemplates Board Driver Templates
|
||||
*
|
||||
* The templates for each board driver are reproduced below.
|
||||
*
|
||||
* \subsection SSec_BoardTemplates_Board Template for USER <Board/Board.h>
|
||||
* \include "DriverStubs/Board.h"
|
||||
*
|
||||
* \subsection SSec_BoardTemplates_Buttons Template for USER <Board/Buttons.h>
|
||||
* \include "DriverStubs/Buttons.h"
|
||||
*
|
||||
* \subsection SSec_BoardTemplates_Dataflash Template for USER <Board/Dataflash.h>
|
||||
* \include "DriverStubs/Dataflash.h"
|
||||
*
|
||||
* \subsection SSec_BoardTemplates_Joystick Template for USER <Board/Joystick.h>
|
||||
* \include "DriverStubs/Joystick.h"
|
||||
*
|
||||
* \subsection SSec_BoardTemplates_LEDs Template for USER <Board/LEDs.h>
|
||||
* \include "DriverStubs/LEDs.h"
|
||||
*/
|
||||
|
||||
|
||||
@@ -37,12 +37,12 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
HID_ReportInfo_t* const ParserData)
|
||||
{
|
||||
HID_StateTable_t StateTable[HID_STATETABLE_STACK_DEPTH];
|
||||
HID_StateTable_t* CurrStateTable = &StateTable[0];
|
||||
HID_CollectionPath_t* CurrCollectionPath = NULL;
|
||||
HID_ReportSizeInfo_t* CurrReportIDInfo = &ParserData->ReportIDSizes[0];
|
||||
HID_StateTable_t* CurrStateTable = &StateTable[0];
|
||||
HID_CollectionPath_t* CurrCollectionPath = NULL;
|
||||
HID_ReportSizeInfo_t* CurrReportIDInfo = &ParserData->ReportIDSizes[0];
|
||||
uint16_t UsageList[HID_USAGE_STACK_DEPTH];
|
||||
uint8_t UsageListSize = 0;
|
||||
HID_MinMax_t UsageMinMax = {0, 0};
|
||||
uint8_t UsageListSize = 0;
|
||||
HID_MinMax_t UsageMinMax = {0, 0};
|
||||
|
||||
memset(ParserData, 0x00, sizeof(HID_ReportInfo_t));
|
||||
memset(CurrStateTable, 0x00, sizeof(HID_StateTable_t));
|
||||
@@ -96,42 +96,53 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
|
||||
CurrStateTable++;
|
||||
break;
|
||||
|
||||
case HID_RI_POP(0):
|
||||
if (CurrStateTable == &StateTable[0])
|
||||
return HID_PARSE_HIDStackUnderflow;
|
||||
|
||||
CurrStateTable--;
|
||||
break;
|
||||
|
||||
case HID_RI_USAGE_PAGE(0):
|
||||
if ((HIDReportItem & HID_RI_DATA_SIZE_MASK) == HID_RI_DATA_BITS_32)
|
||||
CurrStateTable->Attributes.Usage.Page = (ReportItemData >> 16);
|
||||
|
||||
CurrStateTable->Attributes.Usage.Page = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_LOGICAL_MINIMUM(0):
|
||||
CurrStateTable->Attributes.Logical.Minimum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_LOGICAL_MAXIMUM(0):
|
||||
CurrStateTable->Attributes.Logical.Maximum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_PHYSICAL_MINIMUM(0):
|
||||
CurrStateTable->Attributes.Physical.Minimum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_PHYSICAL_MAXIMUM(0):
|
||||
CurrStateTable->Attributes.Physical.Maximum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_UNIT_EXPONENT(0):
|
||||
CurrStateTable->Attributes.Unit.Exponent = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_UNIT(0):
|
||||
CurrStateTable->Attributes.Unit.Type = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_REPORT_SIZE(0):
|
||||
CurrStateTable->Attributes.BitSize = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_REPORT_COUNT(0):
|
||||
CurrStateTable->ReportCount = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_REPORT_ID(0):
|
||||
CurrStateTable->ReportID = ReportItemData;
|
||||
|
||||
@@ -162,18 +173,22 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
|
||||
CurrReportIDInfo->ReportID = CurrStateTable->ReportID;
|
||||
break;
|
||||
|
||||
case HID_RI_USAGE(0):
|
||||
if (UsageListSize == HID_USAGE_STACK_DEPTH)
|
||||
return HID_PARSE_UsageListOverflow;
|
||||
|
||||
UsageList[UsageListSize++] = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_USAGE_MINIMUM(0):
|
||||
UsageMinMax.Minimum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_USAGE_MAXIMUM(0):
|
||||
UsageMinMax.Maximum = ReportItemData;
|
||||
break;
|
||||
|
||||
case HID_RI_COLLECTION(0):
|
||||
if (CurrCollectionPath == NULL)
|
||||
{
|
||||
@@ -203,8 +218,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
{
|
||||
CurrCollectionPath->Usage.Usage = UsageList[0];
|
||||
|
||||
for (uint8_t i = 0; i < UsageListSize; i++)
|
||||
UsageList[i] = UsageList[i + 1];
|
||||
for (uint8_t i = 1; i < UsageListSize; i++)
|
||||
UsageList[i - 1] = UsageList[i];
|
||||
|
||||
UsageListSize--;
|
||||
}
|
||||
@@ -214,12 +229,14 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case HID_RI_END_COLLECTION(0):
|
||||
if (CurrCollectionPath == NULL)
|
||||
return HID_PARSE_UnexpectedEndCollection;
|
||||
|
||||
CurrCollectionPath = CurrCollectionPath->Parent;
|
||||
break;
|
||||
|
||||
case HID_RI_INPUT(0):
|
||||
case HID_RI_OUTPUT(0):
|
||||
case HID_RI_FEATURE(0):
|
||||
@@ -239,8 +256,8 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
{
|
||||
NewReportItem.Attributes.Usage.Usage = UsageList[0];
|
||||
|
||||
for (uint8_t i = 0; i < UsageListSize; i++)
|
||||
UsageList[i] = UsageList[i + 1];
|
||||
for (uint8_t i = 1; i < UsageListSize; i++)
|
||||
UsageList[i - 1] = UsageList[i];
|
||||
|
||||
UsageListSize--;
|
||||
}
|
||||
@@ -275,7 +292,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -119,18 +119,18 @@
|
||||
{
|
||||
PIMA_RESPONSE_OK = 1, /**< Response code indicating no error in the issued command. */
|
||||
PIMA_RESPONSE_GeneralError = 2, /**< Response code indicating a general error while processing the
|
||||
* issued command.
|
||||
*/
|
||||
* issued command.
|
||||
*/
|
||||
PIMA_RESPONSE_SessionNotOpen = 3, /**< Response code indicating that the sent command requires an open
|
||||
* session before being issued.
|
||||
*/
|
||||
* session before being issued.
|
||||
*/
|
||||
PIMA_RESPONSE_InvalidTransaction = 4, /**< Response code indicating an invalid transaction occurred. */
|
||||
PIMA_RESPONSE_OperationNotSupported = 5, /**< Response code indicating that the issued command is not supported
|
||||
* by the attached device.
|
||||
*/
|
||||
* by the attached device.
|
||||
*/
|
||||
PIMA_RESPONSE_ParameterNotSupported = 6, /**< Response code indicating that one or more of the issued command's
|
||||
* parameters are not supported by the device.
|
||||
*/
|
||||
* parameters are not supported by the device.
|
||||
*/
|
||||
};
|
||||
|
||||
/* Type Defines: */
|
||||
|
||||
@@ -302,7 +302,7 @@ bool SI_Host_IsEventReceived(USB_ClassInfo_SI_Host_t* const SIInterfaceInfo)
|
||||
Pipe_SelectPipe(SIInterfaceInfo->Config.EventsPipe.Address);
|
||||
Pipe_Unfreeze();
|
||||
|
||||
if (Pipe_BytesInPipe())
|
||||
if (Pipe_IsINReceived())
|
||||
IsEventReceived = true;
|
||||
|
||||
Pipe_Freeze();
|
||||
|
||||
@@ -742,6 +742,18 @@
|
||||
</emphasis>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="highlight[1]/text()">
|
||||
<xsl:choose>
|
||||
<xsl:when test="substring(., 1, 1) = '*'">
|
||||
<xsl:value-of select="substring(., 2)"/>
|
||||
</xsl:when>
|
||||
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="sp[ancestor::codeline]">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
Binary file not shown.
@@ -43,10 +43,10 @@
|
||||
/* Public Interface - May be used in end-application: */
|
||||
/* Macros: */
|
||||
/** Indicates the version number of the library, as an integer. */
|
||||
#define LUFA_VERSION_INTEGER 0x000000
|
||||
#define LUFA_VERSION_INTEGER 0x130901
|
||||
|
||||
/** Indicates the version number of the library, as a string. */
|
||||
#define LUFA_VERSION_STRING "000000"
|
||||
#define LUFA_VERSION_STRING "130901"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,7 @@
|
||||
#if (!defined(FIRMWARE_VERSION_MINOR) || defined(__DOXYGEN__))
|
||||
/** Minor firmware version, reported to the host on request; must match the version
|
||||
* the host is expecting, or it (may) reject further communications with the programmer. */
|
||||
#define FIRMWARE_VERSION_MINOR 0x16
|
||||
#define FIRMWARE_VERSION_MINOR 0x17
|
||||
#endif
|
||||
|
||||
/* Type Defines: */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,6 +3,9 @@
|
||||
; Copyright (c) 2000 Microsoft Corporation
|
||||
;************************************************************
|
||||
|
||||
[DefaultInstall]
|
||||
CopyINF="LUFA Benito Programmer.inf"
|
||||
|
||||
[Version]
|
||||
Signature="$Windows NT$"
|
||||
Class=Ports
|
||||
@@ -29,7 +29,7 @@
|
||||
<device-support-alias value="lufa_uc3"/>
|
||||
|
||||
<build type="distribute" subtype="user-file" value="Benito.txt"/>
|
||||
<build type="distribute" subtype="user-file" value="Benito Programmer.inf"/>
|
||||
<build type="distribute" subtype="user-file" value="LUFA Benito Programmer.inf"/>
|
||||
|
||||
<build type="c-source" value="Benito.c"/>
|
||||
<build type="c-source" value="Descriptors.c"/>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user