aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BuildTests/BoardDriverTest/BoardDeviceMap.cfg144
-rw-r--r--BuildTests/BoardDriverTest/makefile132
-rw-r--r--BuildTests/BoardDriverTest/makefile.test46
-rw-r--r--BuildTests/BootloaderTest/BootloaderDeviceMap.cfg124
-rw-r--r--BuildTests/BootloaderTest/makefile122
-rw-r--r--BuildTests/ModuleTest/Dummy.S82
-rw-r--r--BuildTests/ModuleTest/Modules.h114
-rw-r--r--BuildTests/ModuleTest/Test_C.c60
-rw-r--r--BuildTests/ModuleTest/Test_CPP.cpp60
-rw-r--r--BuildTests/ModuleTest/makefile120
-rw-r--r--BuildTests/ModuleTest/makefile.test128
-rw-r--r--BuildTests/SingleUSBModeTest/Dummy.S84
-rw-r--r--BuildTests/SingleUSBModeTest/Test.c64
-rw-r--r--BuildTests/SingleUSBModeTest/makefile92
-rw-r--r--BuildTests/SingleUSBModeTest/makefile.test66
-rw-r--r--BuildTests/StaticAnalysisTest/makefile74
-rw-r--r--BuildTests/makefile38
-rw-r--r--LUFA/Build/lufa.atprogram.in178
-rw-r--r--LUFA/Build/lufa.avrdude.in138
-rw-r--r--LUFA/Build/lufa.build.in480
-rw-r--r--LUFA/Build/lufa.core.in218
-rw-r--r--LUFA/Build/lufa.cppcheck.in176
-rw-r--r--LUFA/Build/lufa.dfu.in166
-rw-r--r--LUFA/Build/lufa.doxygen.in128
-rw-r--r--LUFA/Build/lufa.sources.in190
-rw-r--r--LUFA/CodeTemplates/makefile_template70
-rw-r--r--LUFA/DoxygenPages/ExportingLibrary.txt212
-rw-r--r--LUFA/DoxygenPages/KnownIssues.txt84
-rw-r--r--LUFA/DoxygenPages/Style/Style.css2244
-rw-r--r--LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h322
-rw-r--r--LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h322
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c442
-rw-r--r--Maintenance/AS4Template.aps2
-rw-r--r--Maintenance/makefile182
-rw-r--r--Projects/SerialToLCD/SerialToLCD.txt194
-rw-r--r--Projects/SerialToLCD/makefile70
36 files changed, 3684 insertions, 3684 deletions
diff --git a/BuildTests/BoardDriverTest/BoardDeviceMap.cfg b/BuildTests/BoardDriverTest/BoardDeviceMap.cfg
index cdc224d07..2b80fa0c0 100644
--- a/BuildTests/BoardDriverTest/BoardDeviceMap.cfg
+++ b/BuildTests/BoardDriverTest/BoardDeviceMap.cfg
@@ -1,73 +1,73 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-#
-# =============================================================================
-# Board configuration map script, processed with the "BoardDriverTest"
-# makefile. This script file maps the possible LUFA target BOARD makefile
-# value in user projects to a specific architecture and device. This mapping is
-# then used by the makefile to build all possible drivers for that board, to
-# detect any missing or erroneous functions. To add a new board mapping, use
-# the syntax:
-#
-# BOARD DEFINE = {ARCH} : {MCU} :
-#
-# And re-run the makefile. Note that each board may have only one target.
-# =============================================================================
-#
-#
-BOARD_USER = AVR8 : at90usb1287 :
-BOARD_NONE = AVR8 : at90usb1287 :
-BOARD_USBKEY = AVR8 : at90usb1287 :
-BOARD_STK525 = AVR8 : at90usb647 :
-BOARD_STK526 = AVR8 : at90usb162 :
-BOARD_RZUSBSTICK = AVR8 : at90usb1287 :
-BOARD_ATAVRUSBRF01 = AVR8 : at90usb1287 :
-BOARD_BUMBLEB = AVR8 : at90usb162 :
-BOARD_XPLAIN = AVR8 : at90usb1287 :
-BOARD_XPLAIN_REV1 = AVR8 : at90usb1287 :
-BOARD_EVK527 = AVR8 : atmega32u4 :
-BOARD_TEENSY = AVR8 : at90usb162 :
-BOARD_USBTINYMKII = AVR8 : at90usb162 :
-BOARD_BENITO = AVR8 : at90usb162 :
-BOARD_JMDBU2 = AVR8 : atmega32u2 :
-BOARD_OLIMEX162 = AVR8 : at90usb162 :
-BOARD_UDIP = AVR8 : atmega32u2 :
-BOARD_BUI = AVR8 : at90usb646 :
-BOARD_UNO = AVR8 : atmega8u2 :
-BOARD_CULV3 = AVR8 : atmega32u4 :
-BOARD_BLACKCAT = AVR8 : at90usb162 :
-BOARD_MAXIMUS = AVR8 : at90usb162 :
-BOARD_MINIMUS = AVR8 : atmega32u2 :
-BOARD_ADAFRUITU4 = AVR8 : atmega32u4 :
-BOARD_MICROSIN162 = AVR8 : atmega162 :
-BOARD_USBFOO = AVR8 : atmega162 :
-BOARD_SPARKFUN8U2 = AVR8 : atmega8u2 :
-BOARD_EVK1101 = UC3 : uc3b0256 :
-BOARD_TUL = AVR8 : atmega32u4 :
-BOARD_EVK1100 = UC3 : uc3a0512 :
-BOARD_EVK1104 = UC3 : uc3a3256 :
-BOARD_A3BU_XPLAINED = XMEGA : atxmega256a3bu :
-BOARD_TEENSY2 = AVR8 : at90usb646 :
-BOARD_USB2AX = AVR8 : atmega32u4 :
-BOARD_USB2AX_V3 = AVR8 : atmega32u4 :
-BOARD_MICROPENDOUS_32U2 = AVR8 : atmega32u2 :
-BOARD_MICROPENDOUS_A = AVR8 : at90usb1287 :
-BOARD_MICROPENDOUS_1 = AVR8 : at90usb162 :
-BOARD_MICROPENDOUS_2 = AVR8 : atmega32u4 :
-BOARD_MICROPENDOUS_3 = AVR8 : at90usb1287 :
-BOARD_MICROPENDOUS_4 = AVR8 : at90usb1287 :
-BOARD_MICROPENDOUS_DIP = AVR8 : at90usb1287 :
-BOARD_MICROPENDOUS_REV1 = AVR8 : at90usb1287 :
-BOARD_MICROPENDOUS_REV2 = AVR8 : at90usb1287 :
-BOARD_B1_XPLAINED = XMEGA : atxmega128b1 :
-BOARD_MULTIO = AVR8 : at90usb162 :
-BOARD_BIGMULTIO = AVR8 : atmega32u4 :
-BOARD_DUCE = AVR8 : atmega32u2 :
-BOARD_OLIMEX32U4 = AVR8 : atmega32u4 :
-BOARD_OLIMEXT32U4 = AVR8 : atmega32u4 :
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+#
+# =============================================================================
+# Board configuration map script, processed with the "BoardDriverTest"
+# makefile. This script file maps the possible LUFA target BOARD makefile
+# value in user projects to a specific architecture and device. This mapping is
+# then used by the makefile to build all possible drivers for that board, to
+# detect any missing or erroneous functions. To add a new board mapping, use
+# the syntax:
+#
+# BOARD DEFINE = {ARCH} : {MCU} :
+#
+# And re-run the makefile. Note that each board may have only one target.
+# =============================================================================
+#
+#
+BOARD_USER = AVR8 : at90usb1287 :
+BOARD_NONE = AVR8 : at90usb1287 :
+BOARD_USBKEY = AVR8 : at90usb1287 :
+BOARD_STK525 = AVR8 : at90usb647 :
+BOARD_STK526 = AVR8 : at90usb162 :
+BOARD_RZUSBSTICK = AVR8 : at90usb1287 :
+BOARD_ATAVRUSBRF01 = AVR8 : at90usb1287 :
+BOARD_BUMBLEB = AVR8 : at90usb162 :
+BOARD_XPLAIN = AVR8 : at90usb1287 :
+BOARD_XPLAIN_REV1 = AVR8 : at90usb1287 :
+BOARD_EVK527 = AVR8 : atmega32u4 :
+BOARD_TEENSY = AVR8 : at90usb162 :
+BOARD_USBTINYMKII = AVR8 : at90usb162 :
+BOARD_BENITO = AVR8 : at90usb162 :
+BOARD_JMDBU2 = AVR8 : atmega32u2 :
+BOARD_OLIMEX162 = AVR8 : at90usb162 :
+BOARD_UDIP = AVR8 : atmega32u2 :
+BOARD_BUI = AVR8 : at90usb646 :
+BOARD_UNO = AVR8 : atmega8u2 :
+BOARD_CULV3 = AVR8 : atmega32u4 :
+BOARD_BLACKCAT = AVR8 : at90usb162 :
+BOARD_MAXIMUS = AVR8 : at90usb162 :
+BOARD_MINIMUS = AVR8 : atmega32u2 :
+BOARD_ADAFRUITU4 = AVR8 : atmega32u4 :
+BOARD_MICROSIN162 = AVR8 : atmega162 :
+BOARD_USBFOO = AVR8 : atmega162 :
+BOARD_SPARKFUN8U2 = AVR8 : atmega8u2 :
+BOARD_EVK1101 = UC3 : uc3b0256 :
+BOARD_TUL = AVR8 : atmega32u4 :
+BOARD_EVK1100 = UC3 : uc3a0512 :
+BOARD_EVK1104 = UC3 : uc3a3256 :
+BOARD_A3BU_XPLAINED = XMEGA : atxmega256a3bu :
+BOARD_TEENSY2 = AVR8 : at90usb646 :
+BOARD_USB2AX = AVR8 : atmega32u4 :
+BOARD_USB2AX_V3 = AVR8 : atmega32u4 :
+BOARD_MICROPENDOUS_32U2 = AVR8 : atmega32u2 :
+BOARD_MICROPENDOUS_A = AVR8 : at90usb1287 :
+BOARD_MICROPENDOUS_1 = AVR8 : at90usb162 :
+BOARD_MICROPENDOUS_2 = AVR8 : atmega32u4 :
+BOARD_MICROPENDOUS_3 = AVR8 : at90usb1287 :
+BOARD_MICROPENDOUS_4 = AVR8 : at90usb1287 :
+BOARD_MICROPENDOUS_DIP = AVR8 : at90usb1287 :
+BOARD_MICROPENDOUS_REV1 = AVR8 : at90usb1287 :
+BOARD_MICROPENDOUS_REV2 = AVR8 : at90usb1287 :
+BOARD_B1_XPLAINED = XMEGA : atxmega128b1 :
+BOARD_MULTIO = AVR8 : at90usb162 :
+BOARD_BIGMULTIO = AVR8 : atmega32u4 :
+BOARD_DUCE = AVR8 : atmega32u2 :
+BOARD_OLIMEX32U4 = AVR8 : atmega32u4 :
+BOARD_OLIMEXT32U4 = AVR8 : atmega32u4 :
# \ No newline at end of file
diff --git a/BuildTests/BoardDriverTest/makefile b/BuildTests/BoardDriverTest/makefile
index 6ed32a47e..43256202e 100644
--- a/BuildTests/BoardDriverTest/makefile
+++ b/BuildTests/BoardDriverTest/makefile
@@ -1,66 +1,66 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Makefile for the board driver build test. This
-# test attempts to build a dummy project with all
-# possible board targets using their respective
-# compiler.
-
-# Path to the LUFA library core
-LUFA_PATH = ../../LUFA/
-
-
-all: begin makeboardlist testboards clean end
-
-begin:
- @echo Executing build test "BoardDriverTest".
- @echo
-
-end:
- @echo Build test "BoardDriverTest" complete.
- @echo
-
-makeboardlist:
- @grep "BOARD_" $(patsubst %/,%,$(LUFA_PATH))/Common/BoardTypes.h | cut -d'#' -f2 | cut -d' ' -f2 | grep "BOARD_" > BoardList.txt
-
-testboards:
- @echo "buildtest:" > BuildMakefile
-
- @while read line; \
- do \
- build_cfg=`grep "$$line " BoardDeviceMap.cfg | grep -v "#" | cut -d'=' -f2- | sed 's/ //g'`; \
- \
- build_board=$$line; \
- build_arch=`echo $$build_cfg | cut -d':' -f1`; \
- build_mcu=`echo $$build_cfg | cut -d':' -f2`; \
- \
- if ( test -z "$$build_cfg" ); then \
- echo "No matching information set for board $$build_board"; \
- else \
- echo "Found board configuration for $$build_board - $$build_arch, $$build_mcu"; \
- \
- printf "\t@echo Building dummy project for $$build_board...\n" >> BuildMakefile; \
- printf "\t$(MAKE) -s -f makefile.test clean elf MCU=%s ARCH=%s BOARD=%s\n\n" $$build_mcu $$build_arch $$build_board >> BuildMakefile; \
- fi; \
- done < BoardList.txt
-
- $(MAKE) -f BuildMakefile buildtest
-
-clean:
- rm -f BuildMakefile
- rm -f BoardList.txt
- $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=at90usb1287
- $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=atxmega128a1u
- $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=uc3a0256
-
-%:
-
-.PHONY: all begin end makeboardlist testboards clean
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Makefile for the board driver build test. This
+# test attempts to build a dummy project with all
+# possible board targets using their respective
+# compiler.
+
+# Path to the LUFA library core
+LUFA_PATH = ../../LUFA/
+
+
+all: begin makeboardlist testboards clean end
+
+begin:
+ @echo Executing build test "BoardDriverTest".
+ @echo
+
+end:
+ @echo Build test "BoardDriverTest" complete.
+ @echo
+
+makeboardlist:
+ @grep "BOARD_" $(patsubst %/,%,$(LUFA_PATH))/Common/BoardTypes.h | cut -d'#' -f2 | cut -d' ' -f2 | grep "BOARD_" > BoardList.txt
+
+testboards:
+ @echo "buildtest:" > BuildMakefile
+
+ @while read line; \
+ do \
+ build_cfg=`grep "$$line " BoardDeviceMap.cfg | grep -v "#" | cut -d'=' -f2- | sed 's/ //g'`; \
+ \
+ build_board=$$line; \
+ build_arch=`echo $$build_cfg | cut -d':' -f1`; \
+ build_mcu=`echo $$build_cfg | cut -d':' -f2`; \
+ \
+ if ( test -z "$$build_cfg" ); then \
+ echo "No matching information set for board $$build_board"; \
+ else \
+ echo "Found board configuration for $$build_board - $$build_arch, $$build_mcu"; \
+ \
+ printf "\t@echo Building dummy project for $$build_board...\n" >> BuildMakefile; \
+ printf "\t$(MAKE) -s -f makefile.test clean elf MCU=%s ARCH=%s BOARD=%s\n\n" $$build_mcu $$build_arch $$build_board >> BuildMakefile; \
+ fi; \
+ done < BoardList.txt
+
+ $(MAKE) -f BuildMakefile buildtest
+
+clean:
+ rm -f BuildMakefile
+ rm -f BoardList.txt
+ $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=at90usb1287
+ $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=atxmega128a1u
+ $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=uc3a0256
+
+%:
+
+.PHONY: all begin end makeboardlist testboards clean
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
diff --git a/BuildTests/BoardDriverTest/makefile.test b/BuildTests/BoardDriverTest/makefile.test
index 11d0372ef..82ff3ad0a 100644
--- a/BuildTests/BoardDriverTest/makefile.test
+++ b/BuildTests/BoardDriverTest/makefile.test
@@ -1,24 +1,24 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-MCU =
-ARCH =
-BOARD =
-F_CPU = $(F_USB)
-F_USB = 8000000
-OPTIMIZATION = 1
-TARGET = Test
-SRC = $(TARGET).c
-LUFA_PATH = ../../LUFA/
-CC_FLAGS = -Werror
-
-# Include LUFA build script makefiles
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+# --------------------------------------
+# LUFA Project Makefile.
+# --------------------------------------
+
+MCU =
+ARCH =
+BOARD =
+F_CPU = $(F_USB)
+F_USB = 8000000
+OPTIMIZATION = 1
+TARGET = Test
+SRC = $(TARGET).c
+LUFA_PATH = ../../LUFA/
+CC_FLAGS = -Werror
+
+# Include LUFA build script makefiles
include $(LUFA_PATH)/Build/lufa.build.in \ No newline at end of file
diff --git a/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg b/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
index b4eacfc37..614b6b564 100644
--- a/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
+++ b/BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
@@ -1,63 +1,63 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-#
-# =============================================================================
-# Bootloader configuration map script, processed with the "BootloaderTest"
-# makefile. This script file defines the targets for each LUFA bootloader,
-# which are then built as part of the build test to ensure that there are no
-# failures on all standard configurations. To add a new build target for a
-# bootloader to this script, use the format:
-#
-# BOOTLOADER = {ARCH} : {MCU} : {BOARD} : {FLASH SIZE KB} : {BOOT SIZE KB} :
-#
-# And re-run the makefile.
-# =============================================================================
-#
-#
-# ------------ CDC Bootloader -------------
-CDC = AVR8 : at90usb1287 : NONE : 128 : 8 :
-CDC = AVR8 : at90usb647 : NONE : 64 : 4 :
-CDC = AVR8 : at90usb1286 : NONE : 128 : 8 :
-CDC = AVR8 : at90usb646 : NONE : 64 : 4 :
-CDC = AVR8 : atmega32u6 : NONE : 32 : 4 :
-CDC = AVR8 : atmega32u4 : NONE : 32 : 4 :
-CDC = AVR8 : atmega16u4 : NONE : 16 : 4 :
-CDC = AVR8 : atmega32u2 : NONE : 32 : 4 :
-CDC = AVR8 : atmega16u2 : NONE : 16 : 4 :
-CDC = AVR8 : atmega8u2 : NONE : 8 : 4 :
-CDC = AVR8 : at90usb162 : NONE : 16 : 4 :
-CDC = AVR8 : at90usb82 : NONE : 8 : 4 :
-#
-# ------------ DFU Bootloader -------------
-DFU = AVR8 : at90usb1287 : NONE : 128 : 8 :
-DFU = AVR8 : at90usb647 : NONE : 64 : 4 :
-DFU = AVR8 : at90usb1286 : NONE : 128 : 8 :
-DFU = AVR8 : at90usb646 : NONE : 64 : 4 :
-DFU = AVR8 : atmega32u6 : NONE : 32 : 4 :
-DFU = AVR8 : atmega32u4 : NONE : 32 : 4 :
-DFU = AVR8 : atmega16u4 : NONE : 16 : 4 :
-DFU = AVR8 : atmega32u2 : NONE : 32 : 4 :
-DFU = AVR8 : atmega16u2 : NONE : 16 : 4 :
-DFU = AVR8 : atmega8u2 : NONE : 8 : 4 :
-DFU = AVR8 : at90usb162 : NONE : 16 : 4 :
-DFU = AVR8 : at90usb82 : NONE : 8 : 4 :
-#
-# ------------ HID Bootloader -------------
-HID = AVR8 : at90usb1287 : NONE : 128 : 4 :
-HID = AVR8 : at90usb647 : NONE : 64 : 4 :
-HID = AVR8 : at90usb1286 : NONE : 128 : 4 :
-HID = AVR8 : at90usb646 : NONE : 64 : 4 :
-HID = AVR8 : atmega32u6 : NONE : 32 : 4 :
-HID = AVR8 : atmega32u4 : NONE : 32 : 4 :
-HID = AVR8 : atmega16u4 : NONE : 16 : 4 :
-HID = AVR8 : atmega32u2 : NONE : 32 : 2 :
-HID = AVR8 : atmega16u2 : NONE : 16 : 2 :
-HID = AVR8 : atmega8u2 : NONE : 8 : 2 :
-HID = AVR8 : at90usb162 : NONE : 16 : 2 :
-HID = AVR8 : at90usb82 : NONE : 8 : 2 :
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+#
+# =============================================================================
+# Bootloader configuration map script, processed with the "BootloaderTest"
+# makefile. This script file defines the targets for each LUFA bootloader,
+# which are then built as part of the build test to ensure that there are no
+# failures on all standard configurations. To add a new build target for a
+# bootloader to this script, use the format:
+#
+# BOOTLOADER = {ARCH} : {MCU} : {BOARD} : {FLASH SIZE KB} : {BOOT SIZE KB} :
+#
+# And re-run the makefile.
+# =============================================================================
+#
+#
+# ------------ CDC Bootloader -------------
+CDC = AVR8 : at90usb1287 : NONE : 128 : 8 :
+CDC = AVR8 : at90usb647 : NONE : 64 : 4 :
+CDC = AVR8 : at90usb1286 : NONE : 128 : 8 :
+CDC = AVR8 : at90usb646 : NONE : 64 : 4 :
+CDC = AVR8 : atmega32u6 : NONE : 32 : 4 :
+CDC = AVR8 : atmega32u4 : NONE : 32 : 4 :
+CDC = AVR8 : atmega16u4 : NONE : 16 : 4 :
+CDC = AVR8 : atmega32u2 : NONE : 32 : 4 :
+CDC = AVR8 : atmega16u2 : NONE : 16 : 4 :
+CDC = AVR8 : atmega8u2 : NONE : 8 : 4 :
+CDC = AVR8 : at90usb162 : NONE : 16 : 4 :
+CDC = AVR8 : at90usb82 : NONE : 8 : 4 :
+#
+# ------------ DFU Bootloader -------------
+DFU = AVR8 : at90usb1287 : NONE : 128 : 8 :
+DFU = AVR8 : at90usb647 : NONE : 64 : 4 :
+DFU = AVR8 : at90usb1286 : NONE : 128 : 8 :
+DFU = AVR8 : at90usb646 : NONE : 64 : 4 :
+DFU = AVR8 : atmega32u6 : NONE : 32 : 4 :
+DFU = AVR8 : atmega32u4 : NONE : 32 : 4 :
+DFU = AVR8 : atmega16u4 : NONE : 16 : 4 :
+DFU = AVR8 : atmega32u2 : NONE : 32 : 4 :
+DFU = AVR8 : atmega16u2 : NONE : 16 : 4 :
+DFU = AVR8 : atmega8u2 : NONE : 8 : 4 :
+DFU = AVR8 : at90usb162 : NONE : 16 : 4 :
+DFU = AVR8 : at90usb82 : NONE : 8 : 4 :
+#
+# ------------ HID Bootloader -------------
+HID = AVR8 : at90usb1287 : NONE : 128 : 4 :
+HID = AVR8 : at90usb647 : NONE : 64 : 4 :
+HID = AVR8 : at90usb1286 : NONE : 128 : 4 :
+HID = AVR8 : at90usb646 : NONE : 64 : 4 :
+HID = AVR8 : atmega32u6 : NONE : 32 : 4 :
+HID = AVR8 : atmega32u4 : NONE : 32 : 4 :
+HID = AVR8 : atmega16u4 : NONE : 16 : 4 :
+HID = AVR8 : atmega32u2 : NONE : 32 : 2 :
+HID = AVR8 : atmega16u2 : NONE : 16 : 2 :
+HID = AVR8 : atmega8u2 : NONE : 8 : 2 :
+HID = AVR8 : at90usb162 : NONE : 16 : 2 :
+HID = AVR8 : at90usb82 : NONE : 8 : 2 :
# \ No newline at end of file
diff --git a/BuildTests/BootloaderTest/makefile b/BuildTests/BootloaderTest/makefile
index bc59bc46e..baee18e86 100644
--- a/BuildTests/BootloaderTest/makefile
+++ b/BuildTests/BootloaderTest/makefile
@@ -1,61 +1,61 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Makefile for the bootloader build test. This
-# test attempts to build all the bootloaders
-# with all supported device configurations.
-
-# Path to the LUFA library core
-LUFA_PATH = ../../LUFA/
-
-
-all: begin testbootloaders clean end
-
-begin:
- @echo Executing build test "BootloaderTest".
- @echo
-
-end:
- @echo Build test "BootloaderTest" complete.
- @echo
-
-testbootloaders:
- @echo "buildtest:" > BuildMakefile
-
- @while read line; \
- do \
- build_cfg=`echo $$line | grep -v "#" | sed 's/ //g'`; \
- \
- if ( test -n "$$build_cfg" ); then \
- build_bootloader=`echo $$build_cfg | cut -d'=' -f1`; \
- build_cfg=`echo $$build_cfg | cut -d'=' -f2-`; \
- \
- build_arch=`echo $$build_cfg | cut -d':' -f1`; \
- build_mcu=`echo $$build_cfg | cut -d':' -f2`; \
- build_board=`echo $$build_cfg | cut -d':' -f3`; \
- build_flashsize=`echo $$build_cfg | cut -d':' -f4`; \
- build_bootsize=`echo $$build_cfg | cut -d':' -f5`; \
- \
- printf "Found bootloader configuration for bootloader '%s' (FLASH: %3s KB | BOOT: %3s KB | MCU: %12s / %4s)\n" $$build_bootloader $$build_flashsize $$build_bootsize $$build_mcu $$build_arch; \
- \
- printf "\t@echo Building bootloader %s - %s - FLASH: %s KB, BOOT: %s KB\n" $$build_bootloader $$build_mcu $$build_flashsize $$build_bootsize >> BuildMakefile; \
- printf "\t$(MAKE) -s -C $(patsubst %/,%,$(LUFA_PATH))/../Bootloaders/%s/ clean elf ARCH=%s MCU=%s BOARD=%s FLASH_SIZE_KB=%s BOOT_SECTION_SIZE_KB=%s\n\n" $$build_bootloader $$build_arch $$build_mcu $$build_board $$build_flashsize $$build_bootsize >> BuildMakefile; \
- fi; \
- done < BootloaderDeviceMap.cfg
-
- $(MAKE) -f BuildMakefile buildtest
-
-clean:
- rm -f BuildMakefile
-
-%:
-
-.PHONY: all begin end testbootloaders clean
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Makefile for the bootloader build test. This
+# test attempts to build all the bootloaders
+# with all supported device configurations.
+
+# Path to the LUFA library core
+LUFA_PATH = ../../LUFA/
+
+
+all: begin testbootloaders clean end
+
+begin:
+ @echo Executing build test "BootloaderTest".
+ @echo
+
+end:
+ @echo Build test "BootloaderTest" complete.
+ @echo
+
+testbootloaders:
+ @echo "buildtest:" > BuildMakefile
+
+ @while read line; \
+ do \
+ build_cfg=`echo $$line | grep -v "#" | sed 's/ //g'`; \
+ \
+ if ( test -n "$$build_cfg" ); then \
+ build_bootloader=`echo $$build_cfg | cut -d'=' -f1`; \
+ build_cfg=`echo $$build_cfg | cut -d'=' -f2-`; \
+ \
+ build_arch=`echo $$build_cfg | cut -d':' -f1`; \
+ build_mcu=`echo $$build_cfg | cut -d':' -f2`; \
+ build_board=`echo $$build_cfg | cut -d':' -f3`; \
+ build_flashsize=`echo $$build_cfg | cut -d':' -f4`; \
+ build_bootsize=`echo $$build_cfg | cut -d':' -f5`; \
+ \
+ printf "Found bootloader configuration for bootloader '%s' (FLASH: %3s KB | BOOT: %3s KB | MCU: %12s / %4s)\n" $$build_bootloader $$build_flashsize $$build_bootsize $$build_mcu $$build_arch; \
+ \
+ printf "\t@echo Building bootloader %s - %s - FLASH: %s KB, BOOT: %s KB\n" $$build_bootloader $$build_mcu $$build_flashsize $$build_bootsize >> BuildMakefile; \
+ printf "\t$(MAKE) -s -C $(patsubst %/,%,$(LUFA_PATH))/../Bootloaders/%s/ clean elf ARCH=%s MCU=%s BOARD=%s FLASH_SIZE_KB=%s BOOT_SECTION_SIZE_KB=%s\n\n" $$build_bootloader $$build_arch $$build_mcu $$build_board $$build_flashsize $$build_bootsize >> BuildMakefile; \
+ fi; \
+ done < BootloaderDeviceMap.cfg
+
+ $(MAKE) -f BuildMakefile buildtest
+
+clean:
+ rm -f BuildMakefile
+
+%:
+
+.PHONY: all begin end testbootloaders clean
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
diff --git a/BuildTests/ModuleTest/Dummy.S b/BuildTests/ModuleTest/Dummy.S
index bc13b31eb..659d144cb 100644
--- a/BuildTests/ModuleTest/Dummy.S
+++ b/BuildTests/ModuleTest/Dummy.S
@@ -1,41 +1,41 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-.section .text
-
-
-# Mandatory entry point for successful compilation and link
-.global main
-main:
-
-
-# Mandatory callback needed for base compile of the USB driver
-.global CALLBACK_USB_GetDescriptor
-CALLBACK_USB_GetDescriptor:
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+.section .text
+
+
+# Mandatory entry point for successful compilation and link
+.global main
+main:
+
+
+# Mandatory callback needed for base compile of the USB driver
+.global CALLBACK_USB_GetDescriptor
+CALLBACK_USB_GetDescriptor:
diff --git a/BuildTests/ModuleTest/Modules.h b/BuildTests/ModuleTest/Modules.h
index 00f7b8913..9dd7c4638 100644
--- a/BuildTests/ModuleTest/Modules.h
+++ b/BuildTests/ModuleTest/Modules.h
@@ -1,58 +1,58 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-#include <LUFA/Common/Common.h>
-
-#include <LUFA/Drivers/USB/USB.h>
-#include <LUFA/Drivers/Misc/RingBuffer.h>
-#include <LUFA/Drivers/Misc/TerminalCodes.h>
-
-#if (ARCH == ARCH_AVR8)
- #if defined(TWCR)
- #include <LUFA/Drivers/Peripheral/TWI.h>
- #endif
-
- #if defined(ADC)
- #include <LUFA/Drivers/Peripheral/ADC.h>
- #endif
-
- #include <LUFA/Drivers/Peripheral/Serial.h>
- #include <LUFA/Drivers/Peripheral/SPI.h>
- #include <LUFA/Drivers/Peripheral/SerialSPI.h>
-#elif (ARCH == ARCH_XMEGA)
- #include <LUFA/Drivers/Peripheral/Serial.h>
- #include <LUFA/Drivers/Peripheral/SPI.h>
- #include <LUFA/Drivers/Peripheral/SerialSPI.h>
-
- #include <LUFA/Platform/XMEGA/ClockManagement.h>
-#elif (ARCH == ARCH_UC3)
- #include <LUFA/Platform/UC3/ClockManagement.h>
- #include <LUFA/Platform/UC3/InterruptManagement.h>
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+#include <LUFA/Common/Common.h>
+
+#include <LUFA/Drivers/USB/USB.h>
+#include <LUFA/Drivers/Misc/RingBuffer.h>
+#include <LUFA/Drivers/Misc/TerminalCodes.h>
+
+#if (ARCH == ARCH_AVR8)
+ #if defined(TWCR)
+ #include <LUFA/Drivers/Peripheral/TWI.h>
+ #endif
+
+ #if defined(ADC)
+ #include <LUFA/Drivers/Peripheral/ADC.h>
+ #endif
+
+ #include <LUFA/Drivers/Peripheral/Serial.h>
+ #include <LUFA/Drivers/Peripheral/SPI.h>
+ #include <LUFA/Drivers/Peripheral/SerialSPI.h>
+#elif (ARCH == ARCH_XMEGA)
+ #include <LUFA/Drivers/Peripheral/Serial.h>
+ #include <LUFA/Drivers/Peripheral/SPI.h>
+ #include <LUFA/Drivers/Peripheral/SerialSPI.h>
+
+ #include <LUFA/Platform/XMEGA/ClockManagement.h>
+#elif (ARCH == ARCH_UC3)
+ #include <LUFA/Platform/UC3/ClockManagement.h>
+ #include <LUFA/Platform/UC3/InterruptManagement.h>
#endif \ No newline at end of file
diff --git a/BuildTests/ModuleTest/Test_C.c b/BuildTests/ModuleTest/Test_C.c
index 6cbf8fac5..98c17c3fd 100644
--- a/BuildTests/ModuleTest/Test_C.c
+++ b/BuildTests/ModuleTest/Test_C.c
@@ -1,31 +1,31 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
#include "Modules.h" \ No newline at end of file
diff --git a/BuildTests/ModuleTest/Test_CPP.cpp b/BuildTests/ModuleTest/Test_CPP.cpp
index 6cbf8fac5..98c17c3fd 100644
--- a/BuildTests/ModuleTest/Test_CPP.cpp
+++ b/BuildTests/ModuleTest/Test_CPP.cpp
@@ -1,31 +1,31 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
#include "Modules.h" \ No newline at end of file
diff --git a/BuildTests/ModuleTest/makefile b/BuildTests/ModuleTest/makefile
index 93a49e8d9..8a20d0452 100644
--- a/BuildTests/ModuleTest/makefile
+++ b/BuildTests/ModuleTest/makefile
@@ -1,60 +1,60 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Makefile for the module build test. This test
-# attempts to build as many modules as possible
-# under all supported architectures, and include
-# all module headers in a simple C and C++
-# application.
-
-# Path to the LUFA library core
-LUFA_PATH = ../../LUFA/
-
-# List of device families per architecture, one device per architecture sub-family
-AVR8_FAMILIES = at90usb1287 at90usb1286 atmega16u4 atmega16u2 at90usb162
-XMEGA_FAMILIES = atxmega128a1u atxmega128a3u atxmega256a3bu atxmega128a4u atxmega128b1 atxmega128b3 atxmega128c3 atxmega32c4
-UC3_FAMILIES = uc3a0256 uc3a1256 uc3a3256 uc3a4256 uc3b0256 uc3b1256
-
-# List of all device families, with a family postfix
-DEVICE_FAMILIES = $(AVR8_FAMILIES:%=%.avr8) $(XMEGA_FAMILIES:%=%.xmega) $(UC3_FAMILIES:%=%.uc3)
-
-
-all: begin $(DEVICE_FAMILIES) clean end
-
-arch_avr8: begin $(AVR8_FAMILIES:%=%.avr8) end
-arch_xmega: begin $(XMEGA_FAMILIES:%=%.xmega) end
-arch_uc3: begin $(UC3_FAMILIES:%=%.uc3) end
-
-begin:
- @echo Executing build test "ModuleTest".
- @echo
-
-end:
- @echo Build test "ModuleTest" complete.
- @echo
-
-%.avr8:
- $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=$(@:%.avr8=%)
-
-%.xmega:
- $(MAKE) -s -f makefile.test clean elf ARCH=XMEGA MCU=$(@:%.xmega=%)
-
-%.uc3:
- $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=$(@:%.uc3=%)
-
-clean:
- $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=$(firstword $(AVR8_FAMILIES))
- $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=$(firstword $(XMEGA_FAMILIES))
- $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=$(firstword $(UC3_FAMILIES))
-
-%:
-
-.PHONY: all arch_avr8 arch_xmega arch_uc3 begin end
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Makefile for the module build test. This test
+# attempts to build as many modules as possible
+# under all supported architectures, and include
+# all module headers in a simple C and C++
+# application.
+
+# Path to the LUFA library core
+LUFA_PATH = ../../LUFA/
+
+# List of device families per architecture, one device per architecture sub-family
+AVR8_FAMILIES = at90usb1287 at90usb1286 atmega16u4 atmega16u2 at90usb162
+XMEGA_FAMILIES = atxmega128a1u atxmega128a3u atxmega256a3bu atxmega128a4u atxmega128b1 atxmega128b3 atxmega128c3 atxmega32c4
+UC3_FAMILIES = uc3a0256 uc3a1256 uc3a3256 uc3a4256 uc3b0256 uc3b1256
+
+# List of all device families, with a family postfix
+DEVICE_FAMILIES = $(AVR8_FAMILIES:%=%.avr8) $(XMEGA_FAMILIES:%=%.xmega) $(UC3_FAMILIES:%=%.uc3)
+
+
+all: begin $(DEVICE_FAMILIES) clean end
+
+arch_avr8: begin $(AVR8_FAMILIES:%=%.avr8) end
+arch_xmega: begin $(XMEGA_FAMILIES:%=%.xmega) end
+arch_uc3: begin $(UC3_FAMILIES:%=%.uc3) end
+
+begin:
+ @echo Executing build test "ModuleTest".
+ @echo
+
+end:
+ @echo Build test "ModuleTest" complete.
+ @echo
+
+%.avr8:
+ $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=$(@:%.avr8=%)
+
+%.xmega:
+ $(MAKE) -s -f makefile.test clean elf ARCH=XMEGA MCU=$(@:%.xmega=%)
+
+%.uc3:
+ $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=$(@:%.uc3=%)
+
+clean:
+ $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=$(firstword $(AVR8_FAMILIES))
+ $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=$(firstword $(XMEGA_FAMILIES))
+ $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=$(firstword $(UC3_FAMILIES))
+
+%:
+
+.PHONY: all arch_avr8 arch_xmega arch_uc3 begin end
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
diff --git a/BuildTests/ModuleTest/makefile.test b/BuildTests/ModuleTest/makefile.test
index f92ef9c33..4e7d6f900 100644
--- a/BuildTests/ModuleTest/makefile.test
+++ b/BuildTests/ModuleTest/makefile.test
@@ -1,65 +1,65 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-MCU =
-ARCH =
-BOARD = NONE
-F_CPU = $(F_USB)
-OPTIMIZATION = 1
-TARGET = Test
-SRC = $(TARGET)_C.c $(TARGET)_CPP.cpp Dummy.S $(LUFA_SRC_USB)
-LUFA_PATH = ../../LUFA/
-
-ifeq ($(ARCH), AVR8)
-F_USB = 8000000
-else ifeq ($(ARCH), XMEGA)
-F_USB = 48000000
-else ifeq ($(ARCH), UC3)
-F_USB = 48000000
-endif
-
-# Generic C/C++ compiler flags
-CC_FLAGS = -Wextra
-CC_FLAGS += -Werror
-CC_FLAGS += -Wformat=2
-CC_FLAGS += -Winit-self
-CC_FLAGS += -Wswitch-enum
-CC_FLAGS += -Wunused
-CC_FLAGS += -Wundef
-CC_FLAGS += -Wpointer-arith
-CC_FLAGS += -Wcast-align
-CC_FLAGS += -Wwrite-strings
-CC_FLAGS += -Wlogical-op
-CC_FLAGS += -Wmissing-declarations
-CC_FLAGS += -Wmissing-field-initializers
-CC_FLAGS += -Wmissing-format-attribute
-CC_FLAGS += -Woverlength-strings
-
-# Only enable rendundant declaration warnings for AVR8 target (FIXME)
-ifeq ($(ARCH), AVR8)
-CC_FLAGS += -Wredundant-decls
-endif
-
-# C compiler only flags
-C_FLAGS += -Wmissing-parameter-type
-C_FLAGS += -Wnested-externs
-
-# Potential additional warnings to enable in the future (FIXME)
-#CC_FLAGS += -Wswitch-default
-#CC_FLAGS += -Wc++-compat
-#CC_FLAGS += -Wcast-qual
-#CC_FLAGS += -Wconversion
-#CC_FLAGS += -Wjump-misses-init
-#CC_FLAGS += -pedantic
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.sources.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+# --------------------------------------
+# LUFA Project Makefile.
+# --------------------------------------
+
+MCU =
+ARCH =
+BOARD = NONE
+F_CPU = $(F_USB)
+OPTIMIZATION = 1
+TARGET = Test
+SRC = $(TARGET)_C.c $(TARGET)_CPP.cpp Dummy.S $(LUFA_SRC_USB)
+LUFA_PATH = ../../LUFA/
+
+ifeq ($(ARCH), AVR8)
+F_USB = 8000000
+else ifeq ($(ARCH), XMEGA)
+F_USB = 48000000
+else ifeq ($(ARCH), UC3)
+F_USB = 48000000
+endif
+
+# Generic C/C++ compiler flags
+CC_FLAGS = -Wextra
+CC_FLAGS += -Werror
+CC_FLAGS += -Wformat=2
+CC_FLAGS += -Winit-self
+CC_FLAGS += -Wswitch-enum
+CC_FLAGS += -Wunused
+CC_FLAGS += -Wundef
+CC_FLAGS += -Wpointer-arith
+CC_FLAGS += -Wcast-align
+CC_FLAGS += -Wwrite-strings
+CC_FLAGS += -Wlogical-op
+CC_FLAGS += -Wmissing-declarations
+CC_FLAGS += -Wmissing-field-initializers
+CC_FLAGS += -Wmissing-format-attribute
+CC_FLAGS += -Woverlength-strings
+
+# Only enable rendundant declaration warnings for AVR8 target (FIXME)
+ifeq ($(ARCH), AVR8)
+CC_FLAGS += -Wredundant-decls
+endif
+
+# C compiler only flags
+C_FLAGS += -Wmissing-parameter-type
+C_FLAGS += -Wnested-externs
+
+# Potential additional warnings to enable in the future (FIXME)
+#CC_FLAGS += -Wswitch-default
+#CC_FLAGS += -Wc++-compat
+#CC_FLAGS += -Wcast-qual
+#CC_FLAGS += -Wconversion
+#CC_FLAGS += -Wjump-misses-init
+#CC_FLAGS += -pedantic
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.sources.in
include $(LUFA_PATH)/Build/lufa.build.in \ No newline at end of file
diff --git a/BuildTests/SingleUSBModeTest/Dummy.S b/BuildTests/SingleUSBModeTest/Dummy.S
index 5ed1b4a24..0a1763587 100644
--- a/BuildTests/SingleUSBModeTest/Dummy.S
+++ b/BuildTests/SingleUSBModeTest/Dummy.S
@@ -1,42 +1,42 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-.section .text
-
-
-# Mandatory entry point for successful compilation and link
-.global main
-main:
- # Force code generation of the base USB stack
- call USB_Init
-
-# Mandatory callback needed for base compile of the USB driver
-.global CALLBACK_USB_GetDescriptor
-CALLBACK_USB_GetDescriptor:
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+.section .text
+
+
+# Mandatory entry point for successful compilation and link
+.global main
+main:
+ # Force code generation of the base USB stack
+ call USB_Init
+
+# Mandatory callback needed for base compile of the USB driver
+.global CALLBACK_USB_GetDescriptor
+CALLBACK_USB_GetDescriptor:
diff --git a/BuildTests/SingleUSBModeTest/Test.c b/BuildTests/SingleUSBModeTest/Test.c
index e361b251a..887344bb0 100644
--- a/BuildTests/SingleUSBModeTest/Test.c
+++ b/BuildTests/SingleUSBModeTest/Test.c
@@ -1,32 +1,32 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-#include <LUFA/Common/Common.h>
-#include <LUFA/Drivers/USB/USB.h>
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+#include <LUFA/Common/Common.h>
+#include <LUFA/Drivers/USB/USB.h>
diff --git a/BuildTests/SingleUSBModeTest/makefile b/BuildTests/SingleUSBModeTest/makefile
index 53bdbe0d5..6b5af1eb2 100644
--- a/BuildTests/SingleUSBModeTest/makefile
+++ b/BuildTests/SingleUSBModeTest/makefile
@@ -1,46 +1,46 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Makefile for the single USB mode build test.
-# This test attempts to build the USB module
-# under fixed device and fixed host modes under
-# all supported architectures
-
-# Path to the LUFA library core
-LUFA_PATH = ../../LUFA/
-
-all: begin compile clean end
-
-begin:
- @echo Executing build test "SingleUSBModeTest".
- @echo
-
-end:
- @echo Build test "SingleUSBModeTest" complete.
- @echo
-
-compile:
- $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=at90usb1287 CC_FLAGS='-D USB_DEVICE_ONLY'
- $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=at90usb1287 CC_FLAGS='-D USB_HOST_ONLY'
-
- $(MAKE) -s -f makefile.test clean elf ARCH=XMEGA MCU=atxmega128a1u CC_FLAGS='-D USB_DEVICE_ONLY'
-
- $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=uc3a0256 CC_FLAGS='-D USB_DEVICE_ONLY'
- $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=uc3a0256 CC_FLAGS='-D USB_HOST_ONLY'
-
-clean:
- $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=at90usb1287
- $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=atxmega128a1u
- $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=uc3a0256
-
-%:
-
-.PHONY: begin end compile clean
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Makefile for the single USB mode build test.
+# This test attempts to build the USB module
+# under fixed device and fixed host modes under
+# all supported architectures
+
+# Path to the LUFA library core
+LUFA_PATH = ../../LUFA/
+
+all: begin compile clean end
+
+begin:
+ @echo Executing build test "SingleUSBModeTest".
+ @echo
+
+end:
+ @echo Build test "SingleUSBModeTest" complete.
+ @echo
+
+compile:
+ $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=at90usb1287 CC_FLAGS='-D USB_DEVICE_ONLY'
+ $(MAKE) -s -f makefile.test clean elf ARCH=AVR8 MCU=at90usb1287 CC_FLAGS='-D USB_HOST_ONLY'
+
+ $(MAKE) -s -f makefile.test clean elf ARCH=XMEGA MCU=atxmega128a1u CC_FLAGS='-D USB_DEVICE_ONLY'
+
+ $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=uc3a0256 CC_FLAGS='-D USB_DEVICE_ONLY'
+ $(MAKE) -s -f makefile.test clean elf ARCH=UC3 MCU=uc3a0256 CC_FLAGS='-D USB_HOST_ONLY'
+
+clean:
+ $(MAKE) -s -f makefile.test clean ARCH=AVR8 MCU=at90usb1287
+ $(MAKE) -s -f makefile.test clean ARCH=XMEGA MCU=atxmega128a1u
+ $(MAKE) -s -f makefile.test clean ARCH=UC3 MCU=uc3a0256
+
+%:
+
+.PHONY: begin end compile clean
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
diff --git a/BuildTests/SingleUSBModeTest/makefile.test b/BuildTests/SingleUSBModeTest/makefile.test
index d8b9be5b4..461a4b612 100644
--- a/BuildTests/SingleUSBModeTest/makefile.test
+++ b/BuildTests/SingleUSBModeTest/makefile.test
@@ -1,34 +1,34 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-MCU =
-ARCH =
-BOARD = NONE
-F_CPU = $(F_USB)
-
-ifeq ($(ARCH), AVR8)
-F_USB = 8000000
-else ifeq ($(ARCH), XMEGA)
-F_USB = 48000000
-else ifeq ($(ARCH), UC3)
-F_USB = 48000000
-endif
-
-OPTIMIZATION = 1
-TARGET = Test
-SRC = Test.c Dummy.S $(LUFA_SRC_USB)
-LUFA_PATH = ../../LUFA/
-CC_FLAGS =
-# TODO: Add warnings and set warnings as errors
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.sources.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+# --------------------------------------
+# LUFA Project Makefile.
+# --------------------------------------
+
+MCU =
+ARCH =
+BOARD = NONE
+F_CPU = $(F_USB)
+
+ifeq ($(ARCH), AVR8)
+F_USB = 8000000
+else ifeq ($(ARCH), XMEGA)
+F_USB = 48000000
+else ifeq ($(ARCH), UC3)
+F_USB = 48000000
+endif
+
+OPTIMIZATION = 1
+TARGET = Test
+SRC = Test.c Dummy.S $(LUFA_SRC_USB)
+LUFA_PATH = ../../LUFA/
+CC_FLAGS =
+# TODO: Add warnings and set warnings as errors
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.sources.in
include $(LUFA_PATH)/Build/lufa.build.in \ No newline at end of file
diff --git a/BuildTests/StaticAnalysisTest/makefile b/BuildTests/StaticAnalysisTest/makefile
index d2151eed1..834199084 100644
--- a/BuildTests/StaticAnalysisTest/makefile
+++ b/BuildTests/StaticAnalysisTest/makefile
@@ -1,38 +1,38 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Static anlysis of the entire LUFA source tree, using the free cross-platform "cppcheck" tool.
-
-# Path to the LUFA library core
-LUFA_PATH = ../../LUFA/
-
-CPPCHECK_EXCLUDES = FATFs/ \
- PetiteFATFs/ \
- uip/
-CPPCHECK_INCLUDES = $(patsubst %/,%,$(LUFA_PATH))/CodeTemplates/ \
- $(patsubst %/,%,$(LUFA_PATH))/../Projects/AVRISP-MKII/
-CPPCHECK_PATH = $(patsubst %/,%,$(LUFA_PATH))/..
-
-all: begin cppcheck-config cppcheck end
-
-begin:
- @echo Executing build test "StaticAnalysisTest".
- @echo
-
-end:
- @echo Build test "StaticAnalysisTest" complete.
- @echo
-
-%:
-
-
-.PHONY: all begin end
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Static anlysis of the entire LUFA source tree, using the free cross-platform "cppcheck" tool.
+
+# Path to the LUFA library core
+LUFA_PATH = ../../LUFA/
+
+CPPCHECK_EXCLUDES = FATFs/ \
+ PetiteFATFs/ \
+ uip/
+CPPCHECK_INCLUDES = $(patsubst %/,%,$(LUFA_PATH))/CodeTemplates/ \
+ $(patsubst %/,%,$(LUFA_PATH))/../Projects/AVRISP-MKII/
+CPPCHECK_PATH = $(patsubst %/,%,$(LUFA_PATH))/..
+
+all: begin cppcheck-config cppcheck end
+
+begin:
+ @echo Executing build test "StaticAnalysisTest".
+ @echo
+
+end:
+ @echo Build test "StaticAnalysisTest" complete.
+ @echo
+
+%:
+
+
+.PHONY: all begin end
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
include $(LUFA_PATH)/Build/lufa.cppcheck.in \ No newline at end of file
diff --git a/BuildTests/makefile b/BuildTests/makefile
index 604b2e56f..e64fa3dd1 100644
--- a/BuildTests/makefile
+++ b/BuildTests/makefile
@@ -1,19 +1,19 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Makefile to build all the LUFA Build Tests. Build Tests are
-# used to verify the correctness of the LUFA library, and are
-# not intended to be modified or compiled by non-developers.
-
-all:
-%:
- $(MAKE) -C BoardDriverTest $@
- $(MAKE) -C BootloaderTest $@
- $(MAKE) -C ModuleTest $@
- $(MAKE) -C SingleUSBModeTest $@
- $(MAKE) -C StaticAnalysisTest $@
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Makefile to build all the LUFA Build Tests. Build Tests are
+# used to verify the correctness of the LUFA library, and are
+# not intended to be modified or compiled by non-developers.
+
+all:
+%:
+ $(MAKE) -C BoardDriverTest $@
+ $(MAKE) -C BootloaderTest $@
+ $(MAKE) -C ModuleTest $@
+ $(MAKE) -C SingleUSBModeTest $@
+ $(MAKE) -C StaticAnalysisTest $@
diff --git a/LUFA/Build/lufa.atprogram.in b/LUFA/Build/lufa.atprogram.in
index 48d1e5c1f..59fedcd43 100644
--- a/LUFA/Build/lufa.atprogram.in
+++ b/LUFA/Build/lufa.atprogram.in
@@ -1,89 +1,89 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += ATPROGRAM
-LUFA_BUILD_TARGETS += atprogram atprogram-ee
-LUFA_BUILD_MANDATORY_VARS += MCU TARGET
-LUFA_BUILD_OPTIONAL_VARS += ATPROGRAM_PROGRAMMER ATPROGRAM_INTERFACE ATPROGRAM_PORT
-
-# -----------------------------------------------------------------------------
-# LUFA ATPROGRAM Programmer Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to re-program a device using the Atmel atprogram
-# utility in AVR Studio 5.x and Atmel Studio 6.0 onwards.
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# atprogram - Program target FLASH with application using
-# atprogram
-# atprogram-ee - Program target EEPROM with application data
-# using atprogram
-#
-# MANDATORY PARAMETERS:
-#
-# MCU - Microcontroller device model name
-# TARGET - Application name
-#
-# OPTIONAL PARAMETERS:
-#
-# ATPROGRAM_PROGRAMMER - Name of programming hardware to use
-# ATPROGRAM_INTERFACE - Name of programming interface to use
-# ATPROGRAM_PORT - Name of communication port to use
-#
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-MCU ?= $(error Makefile MCU value not set)
-TARGET ?= $(error Makefile TARGET value not set)
-
-ifeq ($(MCU),)
- $(error Makefile MCU option cannot be blank)
-endif
-ifeq ($(TARGET),)
- $(error Makefile TARGET option cannot be blank)
-endif
-
-# Default values of optionally user-supplied variables
-ATPROGRAM_PROGRAMMER ?= jtagice3
-ATPROGRAM_INTERFACE ?= jtag
-ATPROGRAM_PORT ?=
-
-# Output Messages
-MSG_ATPROGRAM_CMD := ' [ATPRGRM] :'
-
-# Construct base atprogram command flags
-BASE_ATPROGRAM_FLAGS := --tool $(ATPROGRAM_PROGRAMMER) --interface $(ATPROGRAM_INTERFACE) --device $(MCU)
-ifneq ($(ATPROGRAM_PORT),)
- BASE_ATPROGRAM_FLAGS += --port $(ATPROGRAM_PORT)
-endif
-
-# Construct the flags to use for the various memory spaces
-ifeq ($(ARCH), AVR8)
- ATPROGRAM_FLASH_FLAGS := --chiperase --flash
- ATPROGRAM_EEPROM_FLAGS := --eeprom
-else ifeq ($(ARCH), XMEGA)
- ATPROGRAM_FLASH_FLAGS := --erase --flash
- ATPROGRAM_EEPROM_FLAGS := --eeprom
-else ifeq ($(ARCH), UC3)
- ATPROGRAM_FLASH_FLAGS := --erase
- ATPROGRAM_EEPROM_FLAGS := --eeprom
-else
- $(error Unsupported architecture "$(ARCH)")
-endif
-
-atprogram: $(TARGET).elf $(MAKEFILE_LIST)
- @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" FLASH using \"$(ATPROGRAM_PROGRAMMER)\"
- atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_FLASH_FLAGS) --file $<
-
-atprogram-ee: $(TARGET).elf $(MAKEFILE_LIST)
- @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" EEPROM using \"$(ATPROGRAM_PROGRAMMER)\"
- atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_EEPROM_FLAGS) --file $<
-
-# Phony build targets for this module
-.PHONY: atprogram atprogram-ee
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += ATPROGRAM
+LUFA_BUILD_TARGETS += atprogram atprogram-ee
+LUFA_BUILD_MANDATORY_VARS += MCU TARGET
+LUFA_BUILD_OPTIONAL_VARS += ATPROGRAM_PROGRAMMER ATPROGRAM_INTERFACE ATPROGRAM_PORT
+
+# -----------------------------------------------------------------------------
+# LUFA ATPROGRAM Programmer Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to re-program a device using the Atmel atprogram
+# utility in AVR Studio 5.x and Atmel Studio 6.0 onwards.
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# atprogram - Program target FLASH with application using
+# atprogram
+# atprogram-ee - Program target EEPROM with application data
+# using atprogram
+#
+# MANDATORY PARAMETERS:
+#
+# MCU - Microcontroller device model name
+# TARGET - Application name
+#
+# OPTIONAL PARAMETERS:
+#
+# ATPROGRAM_PROGRAMMER - Name of programming hardware to use
+# ATPROGRAM_INTERFACE - Name of programming interface to use
+# ATPROGRAM_PORT - Name of communication port to use
+#
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+MCU ?= $(error Makefile MCU value not set)
+TARGET ?= $(error Makefile TARGET value not set)
+
+ifeq ($(MCU),)
+ $(error Makefile MCU option cannot be blank)
+endif
+ifeq ($(TARGET),)
+ $(error Makefile TARGET option cannot be blank)
+endif
+
+# Default values of optionally user-supplied variables
+ATPROGRAM_PROGRAMMER ?= jtagice3
+ATPROGRAM_INTERFACE ?= jtag
+ATPROGRAM_PORT ?=
+
+# Output Messages
+MSG_ATPROGRAM_CMD := ' [ATPRGRM] :'
+
+# Construct base atprogram command flags
+BASE_ATPROGRAM_FLAGS := --tool $(ATPROGRAM_PROGRAMMER) --interface $(ATPROGRAM_INTERFACE) --device $(MCU)
+ifneq ($(ATPROGRAM_PORT),)
+ BASE_ATPROGRAM_FLAGS += --port $(ATPROGRAM_PORT)
+endif
+
+# Construct the flags to use for the various memory spaces
+ifeq ($(ARCH), AVR8)
+ ATPROGRAM_FLASH_FLAGS := --chiperase --flash
+ ATPROGRAM_EEPROM_FLAGS := --eeprom
+else ifeq ($(ARCH), XMEGA)
+ ATPROGRAM_FLASH_FLAGS := --erase --flash
+ ATPROGRAM_EEPROM_FLAGS := --eeprom
+else ifeq ($(ARCH), UC3)
+ ATPROGRAM_FLASH_FLAGS := --erase
+ ATPROGRAM_EEPROM_FLAGS := --eeprom
+else
+ $(error Unsupported architecture "$(ARCH)")
+endif
+
+atprogram: $(TARGET).elf $(MAKEFILE_LIST)
+ @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" FLASH using \"$(ATPROGRAM_PROGRAMMER)\"
+ atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_FLASH_FLAGS) --file $<
+
+atprogram-ee: $(TARGET).elf $(MAKEFILE_LIST)
+ @echo $(MSG_ATPROGRAM_CMD) Programming device \"$(MCU)\" EEPROM using \"$(ATPROGRAM_PROGRAMMER)\"
+ atprogram $(BASE_ATPROGRAM_FLAGS) program $(ATPROGRAM_EEPROM_FLAGS) --file $<
+
+# Phony build targets for this module
+.PHONY: atprogram atprogram-ee
diff --git a/LUFA/Build/lufa.avrdude.in b/LUFA/Build/lufa.avrdude.in
index e650ee4ae..1f0812b35 100644
--- a/LUFA/Build/lufa.avrdude.in
+++ b/LUFA/Build/lufa.avrdude.in
@@ -1,69 +1,69 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += AVRDUDE
-LUFA_BUILD_TARGETS += avrdude avrdude-ee
-LUFA_BUILD_MANDATORY_VARS += MCU TARGET
-LUFA_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS
-
-# -----------------------------------------------------------------------------
-# LUFA AVRDUDE Programmer Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to re-program a device using the open source
-# avr-dude utility.
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# avrdude - Program target FLASH with application using
-# avrdude
-# avrdude-ee - Program target EEPROM with application data
-# using avrdude
-#
-# MANDATORY PARAMETERS:
-#
-# MCU - Microcontroller device model name
-# TARGET - Application name
-#
-# OPTIONAL PARAMETERS:
-#
-# AVRDUDE_PROGRAMMER - Name of programming hardware to use
-# AVRDUDE_PORT - Name of communication port to use
-# AVRDUDE_FLAGS - Flags to pass to avr-dude
-#
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-MCU ?= $(error Makefile MCU value not set)
-TARGET ?= $(error Makefile TARGET value not set)
-
-ifeq ($(MCU),)
- $(error Makefile MCU option cannot be blank)
-endif
-ifeq ($(TARGET),)
- $(error Makefile TARGET option cannot be blank)
-endif
-
-# Default values of optionally user-supplied variables
-AVRDUDE_PROGRAMMER ?= jtagicemkii
-AVRDUDE_PORT ?= usb
-AVRDUDE_FLAGS ?=
-
-# Output Messages
-MSG_AVRDUDE_CMD := ' [AVRDUDE] :'
-
-avrdude: $(TARGET).hex $(MAKEFILE_LIST)
- @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH with settings \"$(AVRDUDE_FLASH_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"
- avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -U flash:w:$< $(AVRDUDE_FLAGS)
-
-avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST)
- @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" EEPROM with settings \"$(AVRDUDE_EEP_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"
- avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -U eeprom:w:$< $(AVRDUDE_FLAGS)
-
-# Phony build targets for this module
-.PHONY: avrdude avrdude-ee
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += AVRDUDE
+LUFA_BUILD_TARGETS += avrdude avrdude-ee
+LUFA_BUILD_MANDATORY_VARS += MCU TARGET
+LUFA_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS
+
+# -----------------------------------------------------------------------------
+# LUFA AVRDUDE Programmer Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to re-program a device using the open source
+# avr-dude utility.
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# avrdude - Program target FLASH with application using
+# avrdude
+# avrdude-ee - Program target EEPROM with application data
+# using avrdude
+#
+# MANDATORY PARAMETERS:
+#
+# MCU - Microcontroller device model name
+# TARGET - Application name
+#
+# OPTIONAL PARAMETERS:
+#
+# AVRDUDE_PROGRAMMER - Name of programming hardware to use
+# AVRDUDE_PORT - Name of communication port to use
+# AVRDUDE_FLAGS - Flags to pass to avr-dude
+#
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+MCU ?= $(error Makefile MCU value not set)
+TARGET ?= $(error Makefile TARGET value not set)
+
+ifeq ($(MCU),)
+ $(error Makefile MCU option cannot be blank)
+endif
+ifeq ($(TARGET),)
+ $(error Makefile TARGET option cannot be blank)
+endif
+
+# Default values of optionally user-supplied variables
+AVRDUDE_PROGRAMMER ?= jtagicemkii
+AVRDUDE_PORT ?= usb
+AVRDUDE_FLAGS ?=
+
+# Output Messages
+MSG_AVRDUDE_CMD := ' [AVRDUDE] :'
+
+avrdude: $(TARGET).hex $(MAKEFILE_LIST)
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH with settings \"$(AVRDUDE_FLASH_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"
+ avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -U flash:w:$< $(AVRDUDE_FLAGS)
+
+avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST)
+ @echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" EEPROM with settings \"$(AVRDUDE_EEP_FLAGS)\" using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"
+ avrdude -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -U eeprom:w:$< $(AVRDUDE_FLAGS)
+
+# Phony build targets for this module
+.PHONY: avrdude avrdude-ee
diff --git a/LUFA/Build/lufa.build.in b/LUFA/Build/lufa.build.in
index bfbd7d811..59b81d939 100644
--- a/LUFA/Build/lufa.build.in
+++ b/LUFA/Build/lufa.build.in
@@ -1,240 +1,240 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += BUILD
-LUFA_BUILD_TARGETS += size symbol-sizes all elf hex lss clean
-LUFA_BUILD_MANDATORY_VARS += TARGET ARCH MCU SRC F_USB LUFA_PATH
-LUFA_BUILD_OPTIONAL_VARS += BOARD OPTIMIZATION C_STANDARD CPP_STANDARD F_CPU C_FLAGS CPP_FLAGS ASM_FLAGS CC_FLAGS LD_FLAGS
-
-# -----------------------------------------------------------------------------
-# LUFA GCC Compiler Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to build a C, C++ and/or Assembly application
-# via the AVR-GCC compiler.
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# size - List built application size
-# symbol-sizes - Print application symbols from the binary ELF
-# file as a list sorted by size in bytes
-# all - Build application and list size
-# elf - Build application ELF debug object file
-# hex - Build application HEX object files
-# lss - Build application LSS assembly listing file
-# clean - Remove output files
-#
-# MANDATORY PARAMETERS:
-#
-# TARGET - Application name
-# ARCH - Device architecture name
-# MCU - Microcontroller device model name
-# SRC - List of input source files (*.c, *.cpp, *.S)
-# F_USB - Speed of the input clock of the USB controller
-# in Hz
-# LUFA_PATH - Path to the LUFA library core
-#
-# OPTIONAL PARAMETERS:
-#
-# BOARD - LUFA board hardware
-# OPTIMIZATION - Optimization level
-# C_STANDARD - C Language Standard to use
-# CPP_STANDARD - C++ Language Standard to use
-# F_CPU - Speed of the CPU, in Hz
-# C_FLAGS - Flags to pass to the C compiler only
-# CPP_FLAGS - Flags to pass to the C++ compiler only
-# ASM_FLAGS - Flags to pass to the assembler only
-# CC_FLAGS - Common flags to pass to the C/C++ compiler and
-# assembler
-# LD_FLAGS - Flags to pass to the linker
-#
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-MCU ?= $(error Makefile MCU value not set)
-TARGET ?= $(error Makefile TARGET value not set)
-ARCH ?= $(error Makefile ARCH value not set)
-SRC ?= $(error Makefile SRC value not set)
-F_USB ?= $(error Makefile F_USB value not set)
-LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
-
-ifeq ($(MCU),)
- $(error Makefile MCU option cannot be blank)
-endif
-ifeq ($(TARGET),)
- $(error Makefile TARGET option cannot be blank)
-endif
-ifeq ($(ARCH),)
- $(error Makefile ARCH option cannot be blank)
-endif
-ifeq ($(F_USB),)
- $(error Makefile F_USB option cannot be blank)
-endif
-
-# Default values of optionally user-supplied variables
-BOARD ?= NONE
-OPTIMIZATION ?= s
-F_CPU ?=
-C_STANDARD ?= gnu99
-CPP_STANDARD ?= gnu++98
-C_FLAGS ?=
-CPP_FLAGS ?=
-ASM_FLAGS ?=
-CC_FLAGS ?=
-
-# Determine the utility prefix to use for the selected architecture
-ifeq ($(ARCH), AVR8)
- CROSS := avr-
-else ifeq ($(ARCH), XMEGA)
- CROSS := avr-
-else ifeq ($(ARCH), UC3)
- CROSS := avr32-
-else
- $(error Unsupported architecture "$(ARCH)".)
-endif
-
-# Output Messages
-MSG_BUILD_BEGIN := Begin compilation of project \"$(TARGET)\"...
-MSG_BUILD_END := Finished building project \"$(TARGET)\".
-MSG_COMPILE_CMD := ' [CC] :'
-MSG_ASSEMBLE_CMD := ' [AS] :'
-MSG_NM_CMD := ' [NM] :'
-MSG_REMOVE_CMD := ' [RM] :'
-MSG_LINKER_CMD := ' [LNK] :'
-MSG_SIZE_CMD := ' [SIZE] :'
-MSG_OBJCPY_CMD := ' [OBJCPY] :'
-MSG_OBJDMP_CMD := ' [OBJDMP] :'
-
-# Convert input source file list to differentiate them by type
-C_SOURCE = $(filter %.c, $(SRC))
-CPP_SOURCE = $(filter %.cpp, $(SRC))
-ASM_SOURCE = $(filter %.S, $(SRC))
-
-# Create a list of unknown source file types, if any are found throw an error
-UNKNOWN_SOURCE = $(filter-out $(C_SOURCE) $(CPP_SOURCE) $(ASM_SOURCE), $(SRC))
-ifneq ($(UNKNOWN_SOURCE),)
- $(error Unknown input source formats: $(UNKNOWN_SOURCE))
-endif
-
-# Convert input source filenames into a list of required output object files
-OBJECT_FILES = $(filter %.o, $(C_SOURCE:%.c=%.o) $(CPP_SOURCE:%.cpp=%.o) $(ASM_SOURCE:%.S=%.o))
-DEPENDENCY_FILES = $(OBJECT_FILES:%.o=%.d)
-
-# Create a list of common flags to pass to the compiler/linker/assembler
-BASE_CC_FLAGS :=
-ifeq ($(ARCH), AVR8)
- BASE_CC_FLAGS += -mmcu=$(MCU) -gdwarf-2 -fshort-enums -fno-inline-small-functions -fpack-struct
-else ifeq ($(ARCH), XMEGA)
- BASE_CC_FLAGS += -mmcu=$(MCU) -gdwarf-2 -fshort-enums -fno-inline-small-functions -fpack-struct
-else ifeq ($(ARCH), UC3)
- BASE_CC_FLAGS += -mpart=$(MCU:at32%=%) -g3 -masm-addr-pseudos
-endif
-BASE_CC_FLAGS += -Wall -fno-strict-aliasing -funsigned-char -funsigned-bitfields -ffunction-sections
-BASE_CC_FLAGS += -I. -I$(patsubst %/,%,$(LUFA_PATH))/..
-BASE_CC_FLAGS += -DARCH=ARCH_$(ARCH) -DBOARD=BOARD_$(BOARD) -DF_USB=$(F_USB)UL
-ifneq ($(F_CPU),)
- BASE_CC_FLAGS += -DF_CPU=$(F_CPU)UL
-endif
-
-# Additional language specific compiler flags
-BASE_C_FLAGS := -x c -O$(OPTIMIZATION) -std=$(C_STANDARD) -Wstrict-prototypes
-BASE_CPP_FLAGS := -x c++ -O$(OPTIMIZATION) -std=$(CPP_STANDARD)
-BASE_ASM_FLAGS := -x assembler-with-cpp
-
-# Create a list of flags to pass to the linker
-BASE_LD_FLAGS := -lm -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections
-ifeq ($(ARCH), UC3)
- BASE_LD_FLAGS += --rodata-writable --direct-data
-else
- BASE_LD_FLAGS += -Wl,--relax
-endif
-
-# Determine flags to pass to the size utility based on its reported features
-SIZE_MCU_FLAG := $(shell $(CROSS)size --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
-SIZE_FORMAT_FLAG := $(shell $(CROSS)size --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
-
-
-begin:
- @echo ""
- @echo $(MSG_BUILD_BEGIN)
- @echo ""
-
-end:
- @echo ""
- @echo $(MSG_BUILD_END)
- @echo ""
-
-gcc_version:
- @$(CROSS)gcc --version
-
-check_source:
- @for f in $(SRC); do \
- if [ ! -f $$f ]; then \
- echo "Error: Source file not found: $$f"; \
- exit 1; \
- fi; \
- done
-
-size: $(TARGET).elf
- @echo $(MSG_SIZE_CMD) Determining size of \"$<\"
- @if test -f $(TARGET).elf; then \
- $(CROSS)size $(SIZE_MCU_FLAG) $(SIZE_FORMAT_FLAG) $< ; 2>/dev/null; \
- fi
-
-symbol-sizes: $(TARGET).elf
- @echo $(MSG_NM_CMD) Extracting \"$<\" symbols with decimal byte sizes
- avr-nm --size-sort --demangle --radix=d $<
-
-clean:
- @echo $(MSG_REMOVE_CMD) Removing object files of \"$(TARGET)\"
- rm -f $(OBJECT_FILES)
- @echo $(MSG_REMOVE_CMD) Removing dependency files of \"$(TARGET)\"
- rm -f $(DEPENDENCY_FILES)
- @echo $(MSG_REMOVE_CMD) Removing output files of \"$(TARGET)\"
- rm -f $(TARGET).elf $(TARGET).hex $(TARGET).eep $(TARGET).map $(TARGET).lss
-
-all: begin check_source gcc_version elf hex lss size end
-
-elf: $(TARGET).elf
-hex: $(TARGET).hex $(TARGET).eep
-lss: $(TARGET).lss
-
-%.o: %.c $(MAKEFILE_LIST)
- @echo $(MSG_COMPILE_CMD) Compiling C file \"$<\"
- $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_C_FLAGS) $(CC_FLAGS) $(C_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@
-
-%.o: %.cpp $(MAKEFILE_LIST)
- @echo $(MSG_COMPILE_CMD) Compiling C++ file \"$<\"
- $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_CPP_FLAGS) $(CC_FLAGS) $(CPP_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@
-
-%.o: %.S $(MAKEFILE_LIST)
- @echo $(MSG_ASSEMBLE_CMD) Assembling \"$<\"
- $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_ASM_FLAGS) $(CC_FLAGS) $(ASM_FLAGS) $< -o $@
-
-.PRECIOUS : $(OBJECT_FILES)
-%.elf: $(OBJECT_FILES)
- @echo $(MSG_LINKER_CMD) Linking object files into \"$@\"
- $(CROSS)gcc $(BASE_CC_FLAGS) $(BASE_LD_FLAGS) $(CC_FLAGS) $(LD_FLAGS) $^ -o $@
-
-%.hex: %.elf
- @echo $(MSG_OBJCPY_CMD) Extracting HEX file data from \"$<\"
- $(CROSS)objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@
-
-%.eep: %.elf
- @echo $(MSG_OBJCPY_CMD) Extracting EEP file data from \"$<\"
- $(CROSS)objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex $< $@ || exit 0
-
-%.lss: %.elf
- @echo $(MSG_OBJDMP_CMD) Extracting LSS file data from \"$<\"
- $(CROSS)objdump -h -S -z $< > $@
-
-# Include build dependency files
--include $(DEPENDENCY_FILES)
-
-# Phony build targets for this module
-.PHONY: begin end gcc_version check_source size symbol-sizes elf hex lss clean
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += BUILD
+LUFA_BUILD_TARGETS += size symbol-sizes all elf hex lss clean
+LUFA_BUILD_MANDATORY_VARS += TARGET ARCH MCU SRC F_USB LUFA_PATH
+LUFA_BUILD_OPTIONAL_VARS += BOARD OPTIMIZATION C_STANDARD CPP_STANDARD F_CPU C_FLAGS CPP_FLAGS ASM_FLAGS CC_FLAGS LD_FLAGS
+
+# -----------------------------------------------------------------------------
+# LUFA GCC Compiler Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to build a C, C++ and/or Assembly application
+# via the AVR-GCC compiler.
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# size - List built application size
+# symbol-sizes - Print application symbols from the binary ELF
+# file as a list sorted by size in bytes
+# all - Build application and list size
+# elf - Build application ELF debug object file
+# hex - Build application HEX object files
+# lss - Build application LSS assembly listing file
+# clean - Remove output files
+#
+# MANDATORY PARAMETERS:
+#
+# TARGET - Application name
+# ARCH - Device architecture name
+# MCU - Microcontroller device model name
+# SRC - List of input source files (*.c, *.cpp, *.S)
+# F_USB - Speed of the input clock of the USB controller
+# in Hz
+# LUFA_PATH - Path to the LUFA library core
+#
+# OPTIONAL PARAMETERS:
+#
+# BOARD - LUFA board hardware
+# OPTIMIZATION - Optimization level
+# C_STANDARD - C Language Standard to use
+# CPP_STANDARD - C++ Language Standard to use
+# F_CPU - Speed of the CPU, in Hz
+# C_FLAGS - Flags to pass to the C compiler only
+# CPP_FLAGS - Flags to pass to the C++ compiler only
+# ASM_FLAGS - Flags to pass to the assembler only
+# CC_FLAGS - Common flags to pass to the C/C++ compiler and
+# assembler
+# LD_FLAGS - Flags to pass to the linker
+#
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+MCU ?= $(error Makefile MCU value not set)
+TARGET ?= $(error Makefile TARGET value not set)
+ARCH ?= $(error Makefile ARCH value not set)
+SRC ?= $(error Makefile SRC value not set)
+F_USB ?= $(error Makefile F_USB value not set)
+LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
+
+ifeq ($(MCU),)
+ $(error Makefile MCU option cannot be blank)
+endif
+ifeq ($(TARGET),)
+ $(error Makefile TARGET option cannot be blank)
+endif
+ifeq ($(ARCH),)
+ $(error Makefile ARCH option cannot be blank)
+endif
+ifeq ($(F_USB),)
+ $(error Makefile F_USB option cannot be blank)
+endif
+
+# Default values of optionally user-supplied variables
+BOARD ?= NONE
+OPTIMIZATION ?= s
+F_CPU ?=
+C_STANDARD ?= gnu99
+CPP_STANDARD ?= gnu++98
+C_FLAGS ?=
+CPP_FLAGS ?=
+ASM_FLAGS ?=
+CC_FLAGS ?=
+
+# Determine the utility prefix to use for the selected architecture
+ifeq ($(ARCH), AVR8)
+ CROSS := avr-
+else ifeq ($(ARCH), XMEGA)
+ CROSS := avr-
+else ifeq ($(ARCH), UC3)
+ CROSS := avr32-
+else
+ $(error Unsupported architecture "$(ARCH)".)
+endif
+
+# Output Messages
+MSG_BUILD_BEGIN := Begin compilation of project \"$(TARGET)\"...
+MSG_BUILD_END := Finished building project \"$(TARGET)\".
+MSG_COMPILE_CMD := ' [CC] :'
+MSG_ASSEMBLE_CMD := ' [AS] :'
+MSG_NM_CMD := ' [NM] :'
+MSG_REMOVE_CMD := ' [RM] :'
+MSG_LINKER_CMD := ' [LNK] :'
+MSG_SIZE_CMD := ' [SIZE] :'
+MSG_OBJCPY_CMD := ' [OBJCPY] :'
+MSG_OBJDMP_CMD := ' [OBJDMP] :'
+
+# Convert input source file list to differentiate them by type
+C_SOURCE = $(filter %.c, $(SRC))
+CPP_SOURCE = $(filter %.cpp, $(SRC))
+ASM_SOURCE = $(filter %.S, $(SRC))
+
+# Create a list of unknown source file types, if any are found throw an error
+UNKNOWN_SOURCE = $(filter-out $(C_SOURCE) $(CPP_SOURCE) $(ASM_SOURCE), $(SRC))
+ifneq ($(UNKNOWN_SOURCE),)
+ $(error Unknown input source formats: $(UNKNOWN_SOURCE))
+endif
+
+# Convert input source filenames into a list of required output object files
+OBJECT_FILES = $(filter %.o, $(C_SOURCE:%.c=%.o) $(CPP_SOURCE:%.cpp=%.o) $(ASM_SOURCE:%.S=%.o))
+DEPENDENCY_FILES = $(OBJECT_FILES:%.o=%.d)
+
+# Create a list of common flags to pass to the compiler/linker/assembler
+BASE_CC_FLAGS :=
+ifeq ($(ARCH), AVR8)
+ BASE_CC_FLAGS += -mmcu=$(MCU) -gdwarf-2 -fshort-enums -fno-inline-small-functions -fpack-struct
+else ifeq ($(ARCH), XMEGA)
+ BASE_CC_FLAGS += -mmcu=$(MCU) -gdwarf-2 -fshort-enums -fno-inline-small-functions -fpack-struct
+else ifeq ($(ARCH), UC3)
+ BASE_CC_FLAGS += -mpart=$(MCU:at32%=%) -g3 -masm-addr-pseudos
+endif
+BASE_CC_FLAGS += -Wall -fno-strict-aliasing -funsigned-char -funsigned-bitfields -ffunction-sections
+BASE_CC_FLAGS += -I. -I$(patsubst %/,%,$(LUFA_PATH))/..
+BASE_CC_FLAGS += -DARCH=ARCH_$(ARCH) -DBOARD=BOARD_$(BOARD) -DF_USB=$(F_USB)UL
+ifneq ($(F_CPU),)
+ BASE_CC_FLAGS += -DF_CPU=$(F_CPU)UL
+endif
+
+# Additional language specific compiler flags
+BASE_C_FLAGS := -x c -O$(OPTIMIZATION) -std=$(C_STANDARD) -Wstrict-prototypes
+BASE_CPP_FLAGS := -x c++ -O$(OPTIMIZATION) -std=$(CPP_STANDARD)
+BASE_ASM_FLAGS := -x assembler-with-cpp
+
+# Create a list of flags to pass to the linker
+BASE_LD_FLAGS := -lm -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections
+ifeq ($(ARCH), UC3)
+ BASE_LD_FLAGS += --rodata-writable --direct-data
+else
+ BASE_LD_FLAGS += -Wl,--relax
+endif
+
+# Determine flags to pass to the size utility based on its reported features
+SIZE_MCU_FLAG := $(shell $(CROSS)size --help | grep -- --mcu > /dev/null && echo --mcu=$(MCU) )
+SIZE_FORMAT_FLAG := $(shell $(CROSS)size --help | grep -- --format=.*avr > /dev/null && echo --format=avr )
+
+
+begin:
+ @echo ""
+ @echo $(MSG_BUILD_BEGIN)
+ @echo ""
+
+end:
+ @echo ""
+ @echo $(MSG_BUILD_END)
+ @echo ""
+
+gcc_version:
+ @$(CROSS)gcc --version
+
+check_source:
+ @for f in $(SRC); do \
+ if [ ! -f $$f ]; then \
+ echo "Error: Source file not found: $$f"; \
+ exit 1; \
+ fi; \
+ done
+
+size: $(TARGET).elf
+ @echo $(MSG_SIZE_CMD) Determining size of \"$<\"
+ @if test -f $(TARGET).elf; then \
+ $(CROSS)size $(SIZE_MCU_FLAG) $(SIZE_FORMAT_FLAG) $< ; 2>/dev/null; \
+ fi
+
+symbol-sizes: $(TARGET).elf
+ @echo $(MSG_NM_CMD) Extracting \"$<\" symbols with decimal byte sizes
+ avr-nm --size-sort --demangle --radix=d $<
+
+clean:
+ @echo $(MSG_REMOVE_CMD) Removing object files of \"$(TARGET)\"
+ rm -f $(OBJECT_FILES)
+ @echo $(MSG_REMOVE_CMD) Removing dependency files of \"$(TARGET)\"
+ rm -f $(DEPENDENCY_FILES)
+ @echo $(MSG_REMOVE_CMD) Removing output files of \"$(TARGET)\"
+ rm -f $(TARGET).elf $(TARGET).hex $(TARGET).eep $(TARGET).map $(TARGET).lss
+
+all: begin check_source gcc_version elf hex lss size end
+
+elf: $(TARGET).elf
+hex: $(TARGET).hex $(TARGET).eep
+lss: $(TARGET).lss
+
+%.o: %.c $(MAKEFILE_LIST)
+ @echo $(MSG_COMPILE_CMD) Compiling C file \"$<\"
+ $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_C_FLAGS) $(CC_FLAGS) $(C_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@
+
+%.o: %.cpp $(MAKEFILE_LIST)
+ @echo $(MSG_COMPILE_CMD) Compiling C++ file \"$<\"
+ $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_CPP_FLAGS) $(CC_FLAGS) $(CPP_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@
+
+%.o: %.S $(MAKEFILE_LIST)
+ @echo $(MSG_ASSEMBLE_CMD) Assembling \"$<\"
+ $(CROSS)gcc -c $(BASE_CC_FLAGS) $(BASE_ASM_FLAGS) $(CC_FLAGS) $(ASM_FLAGS) $< -o $@
+
+.PRECIOUS : $(OBJECT_FILES)
+%.elf: $(OBJECT_FILES)
+ @echo $(MSG_LINKER_CMD) Linking object files into \"$@\"
+ $(CROSS)gcc $(BASE_CC_FLAGS) $(BASE_LD_FLAGS) $(CC_FLAGS) $(LD_FLAGS) $^ -o $@
+
+%.hex: %.elf
+ @echo $(MSG_OBJCPY_CMD) Extracting HEX file data from \"$<\"
+ $(CROSS)objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $< $@
+
+%.eep: %.elf
+ @echo $(MSG_OBJCPY_CMD) Extracting EEP file data from \"$<\"
+ $(CROSS)objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex $< $@ || exit 0
+
+%.lss: %.elf
+ @echo $(MSG_OBJDMP_CMD) Extracting LSS file data from \"$<\"
+ $(CROSS)objdump -h -S -z $< > $@
+
+# Include build dependency files
+-include $(DEPENDENCY_FILES)
+
+# Phony build targets for this module
+.PHONY: begin end gcc_version check_source size symbol-sizes elf hex lss clean
diff --git a/LUFA/Build/lufa.core.in b/LUFA/Build/lufa.core.in
index 722e92fd7..6c124d81f 100644
--- a/LUFA/Build/lufa.core.in
+++ b/LUFA/Build/lufa.core.in
@@ -1,109 +1,109 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += CORE
-LUFA_BUILD_TARGETS += help list_targets list_modules list_mandatory list_optional
-LUFA_BUILD_MANDATORY_VARS +=
-LUFA_BUILD_OPTIONAL_VARS +=
-
-# -----------------------------------------------------------------------------
-# LUFA Core Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of core build targets for the LUFA buildsystem
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# help - Build system help
-# list_targets - List all build targets
-# list_modules - List all build modules
-# list_mandatory - List all mandatory make variables required by
-# the included build modules of the application
-# list_optional - List all optional make variables required by
-# the included build modules of the application
-#
-# MANDATORY PARAMETERS:
-#
-# (None)
-#
-# OPTIONAL PARAMETERS:
-#
-# (None)
-#
-# -----------------------------------------------------------------------------
-
-# Build sorted and filtered lists of the included build module data
-SORTED_LUFA_BUILD_MODULES = $(sort $(LUFA_BUILD_MODULES))
-SORTED_LUFA_BUILD_TARGETS = $(sort $(LUFA_BUILD_TARGETS))
-SORTED_LUFA_MANDATORY_VARS = $(sort $(LUFA_BUILD_MANDATORY_VARS))
-SORTED_LUFA_OPTIONAL_VARS = $(filter-out $(SORTED_LUFA_MANDATORY_VARS), $(sort $(LUFA_BUILD_OPTIONAL_VARS)))
-
-help:
- @echo "==================================================================="
- @echo " LUFA Build System 2.0 "
- @echo " (C) Dean Camera, 2012 { dean @ fourwalledcubicle . com } "
- @echo "==================================================================="
- @echo "DESCRIPTION: "
- @echo " This build system is a set of makefile modules for (GNU) Make, to "
- @echo " provide a simple system for building LUFA powered applications. "
- @echo " Each makefile module can be included from within a user makefile, "
- @echo " to expose the build rules documented in the comments at the top of"
- @echo " each build module. "
- @echo " "
- @echo "USAGE: "
- @echo " To execute a rule, define all variables indicated in the desired "
- @echo " module as a required parameter before including the build module "
- @echo " in your project makefile. Parameters marked as optional will "
- @echo " assume a default value in the modules if not user-assigned. "
- @echo " "
- @echo " By default the target output shows both a friendly summary, as "
- @echo " well as the actual invoked command. To suppress the output of the "
- @echo " invoked commands and show only the friendly command output, run "
- @echo " make with the \"-s\" switch added before the target(s). "
- @echo "==================================================================="
- @echo " Currently used build system modules in this application: "
- @echo " "
- @printf " %b" "$(SORTED_LUFA_BUILD_MODULES:%= - %\n)"
- @echo " "
- @echo " "
- @echo " Currently available build targets in this application: "
- @echo " "
- @printf " %b" "$(SORTED_LUFA_BUILD_TARGETS:%= - %\n)"
- @echo " "
- @echo " "
- @echo " Mandatory variables required by the selected build Modules: "
- @echo " "
- @printf " %b" "$(SORTED_LUFA_MANDATORY_VARS:%= - %\n)"
- @echo " "
- @echo " "
- @echo " Optional variables required by the selected build Modules: "
- @echo " "
- @printf " %b" "$(SORTED_LUFA_OPTIONAL_VARS:%= - %\n)"
- @echo " "
- @echo "==================================================================="
- @echo " The LUFA BuildSystem 2.0 - Powered By Unicorns (tm) "
- @echo "==================================================================="
-
-list_modules:
- @echo Currently Used Build System Modules: $(SORTED_LUFA_BUILD_MODULES)
-
-list_targets:
- @echo Currently Available Build Targets: $(SORTED_LUFA_BUILD_TARGETS)
-
-list_mandatory:
- @echo Mandatory Variables for Included Modules: $(SORTED_LUFA_MANDATORY_VARS)
-
-list_optional:
- @echo Optional Variables for Included Modules: $(SORTED_LUFA_OPTIONAL_VARS)
-
-# Disable default in-built make rules (those that are needed are explicitly
-# defined, and doing so has performance benefits when recursively building)
-.SUFFIXES:
-
-# Phony build targets for this module
-.PHONY: help list_modules list_targets list_mandatory list_optional
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += CORE
+LUFA_BUILD_TARGETS += help list_targets list_modules list_mandatory list_optional
+LUFA_BUILD_MANDATORY_VARS +=
+LUFA_BUILD_OPTIONAL_VARS +=
+
+# -----------------------------------------------------------------------------
+# LUFA Core Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of core build targets for the LUFA buildsystem
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# help - Build system help
+# list_targets - List all build targets
+# list_modules - List all build modules
+# list_mandatory - List all mandatory make variables required by
+# the included build modules of the application
+# list_optional - List all optional make variables required by
+# the included build modules of the application
+#
+# MANDATORY PARAMETERS:
+#
+# (None)
+#
+# OPTIONAL PARAMETERS:
+#
+# (None)
+#
+# -----------------------------------------------------------------------------
+
+# Build sorted and filtered lists of the included build module data
+SORTED_LUFA_BUILD_MODULES = $(sort $(LUFA_BUILD_MODULES))
+SORTED_LUFA_BUILD_TARGETS = $(sort $(LUFA_BUILD_TARGETS))
+SORTED_LUFA_MANDATORY_VARS = $(sort $(LUFA_BUILD_MANDATORY_VARS))
+SORTED_LUFA_OPTIONAL_VARS = $(filter-out $(SORTED_LUFA_MANDATORY_VARS), $(sort $(LUFA_BUILD_OPTIONAL_VARS)))
+
+help:
+ @echo "==================================================================="
+ @echo " LUFA Build System 2.0 "
+ @echo " (C) Dean Camera, 2012 { dean @ fourwalledcubicle . com } "
+ @echo "==================================================================="
+ @echo "DESCRIPTION: "
+ @echo " This build system is a set of makefile modules for (GNU) Make, to "
+ @echo " provide a simple system for building LUFA powered applications. "
+ @echo " Each makefile module can be included from within a user makefile, "
+ @echo " to expose the build rules documented in the comments at the top of"
+ @echo " each build module. "
+ @echo " "
+ @echo "USAGE: "
+ @echo " To execute a rule, define all variables indicated in the desired "
+ @echo " module as a required parameter before including the build module "
+ @echo " in your project makefile. Parameters marked as optional will "
+ @echo " assume a default value in the modules if not user-assigned. "
+ @echo " "
+ @echo " By default the target output shows both a friendly summary, as "
+ @echo " well as the actual invoked command. To suppress the output of the "
+ @echo " invoked commands and show only the friendly command output, run "
+ @echo " make with the \"-s\" switch added before the target(s). "
+ @echo "==================================================================="
+ @echo " Currently used build system modules in this application: "
+ @echo " "
+ @printf " %b" "$(SORTED_LUFA_BUILD_MODULES:%= - %\n)"
+ @echo " "
+ @echo " "
+ @echo " Currently available build targets in this application: "
+ @echo " "
+ @printf " %b" "$(SORTED_LUFA_BUILD_TARGETS:%= - %\n)"
+ @echo " "
+ @echo " "
+ @echo " Mandatory variables required by the selected build Modules: "
+ @echo " "
+ @printf " %b" "$(SORTED_LUFA_MANDATORY_VARS:%= - %\n)"
+ @echo " "
+ @echo " "
+ @echo " Optional variables required by the selected build Modules: "
+ @echo " "
+ @printf " %b" "$(SORTED_LUFA_OPTIONAL_VARS:%= - %\n)"
+ @echo " "
+ @echo "==================================================================="
+ @echo " The LUFA BuildSystem 2.0 - Powered By Unicorns (tm) "
+ @echo "==================================================================="
+
+list_modules:
+ @echo Currently Used Build System Modules: $(SORTED_LUFA_BUILD_MODULES)
+
+list_targets:
+ @echo Currently Available Build Targets: $(SORTED_LUFA_BUILD_TARGETS)
+
+list_mandatory:
+ @echo Mandatory Variables for Included Modules: $(SORTED_LUFA_MANDATORY_VARS)
+
+list_optional:
+ @echo Optional Variables for Included Modules: $(SORTED_LUFA_OPTIONAL_VARS)
+
+# Disable default in-built make rules (those that are needed are explicitly
+# defined, and doing so has performance benefits when recursively building)
+.SUFFIXES:
+
+# Phony build targets for this module
+.PHONY: help list_modules list_targets list_mandatory list_optional
diff --git a/LUFA/Build/lufa.cppcheck.in b/LUFA/Build/lufa.cppcheck.in
index 35ec1e4aa..330ec1d49 100644
--- a/LUFA/Build/lufa.cppcheck.in
+++ b/LUFA/Build/lufa.cppcheck.in
@@ -1,88 +1,88 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += CPPCHECK
-LUFA_BUILD_TARGETS += cppcheck cppcheck-config
-LUFA_BUILD_MANDATORY_VARS +=
-LUFA_BUILD_OPTIONAL_VARS += CPPCHECK_PATH CPPCHECK_INCLUDES CPPCHECK_EXCLUDES CPPCHECK_MSG_TEMPLATE \
- CPPCHECK_ENABLE CPPCHECK_SUPPRESS CPPCHECK_FAIL_ON_WARNING CPPCHECK_QUIET \
- CPPCHECK_FLAGS
-
-# -----------------------------------------------------------------------------
-# LUFA CPPCheck Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to scan a project with the free "cppcheck" static
-# analysis tool, to check for code errors at runtime (see http://cppcheck.sourceforge.net).
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# cppcheck - Scan the project with CPPCheck
-# cppcheck-config - Use CPPCheck to look for missing include files
-#
-# MANDATORY PARAMETERS:
-#
-# (None)
-#
-# OPTIONAL PARAMETERS:
-#
-# CPPCHECK_PATH - Path of the files to statically analyze
-# CPPCHECK_INCLUDES - Extra include paths to search for missing
-# header files
-# CPPCHECK_EXCLUDES - Source file paths to exclude checking (can be
-# a path fragment if desired)
-# CPPCHECK_MSG_TEMPLATE - Template for cppcheck error and warning output
-# CPPCHECK_ENABLE - General cppcheck category checks to enable
-# CPPCHECK_SUPPRESS - Specific cppcheck warnings to disable by ID
-# CPPCHECK_FAIL_ON_WARNING - Set to Y to fail the build on cppcheck
-# warnings, N to continue even if warnings occur
-# CPPCHECK_QUIET - Enable cppcheck verbose or quiet output mode
-# CPPCHECK_FLAGS - Additional flags to pass to cppcheck
-#
-# -----------------------------------------------------------------------------
-
-# Default values of optionally user-supplied variables
-CPPCHECK_PATH ?= .
-CPPCHECK_INCLUDES ?=
-CPPCHECK_EXCLUDES ?=
-CPPCHECK_MSG_TEMPLATE ?= {file}:{line}: {severity} ({id}): {message}
-CPPCHECK_ENABLE ?= all
-CPPCHECK_SUPPRESS ?= variableScope missingInclude
-CPPCHECK_FAIL_ON_WARNING ?= Y
-CPPCHECK_QUIET ?= Y
-CPPCHECK_FLAGS ?=
-
-# Build a default argument list for cppcheck
-BASE_CPPCHECK_FLAGS := --template="$(CPPCHECK_MSG_TEMPLATE)" $(CPPCHECK_INCLUDES:%=-I%) $(CPPCHECK_EXCLUDES:%=-i%) --inline-suppr --force --std=c99
-
-# Sanity check parameters and construct additional command line arguments to cppcheck
-
-ifeq ($(CPPCHECK_FAIL_ON_WARNING), Y)
- BASE_CPPCHECK_FLAGS += --error-exitcode=1
-else ifneq ($(CPPCHECK_FAIL_ON_WARNING), N)
- $(error CPPCHECK_FAIL_ON_WARNING must be Y or N)
-endif
-ifeq ($(CPPCHECK_QUIET), Y)
- BASE_CPPCHECK_FLAGS += --quiet
-else ifneq ($(CPPCHECK_QUIET), N)
- $(error CPPCHECK_QUIET must be Y or N)
-endif
-
-# Output Messages
-MSG_CPPCHECK_CMD := ' [CPPCHECK]:'
-
-cppcheck-config:
- @echo $(MSG_CPPCHECK_CMD) Checking cppcheck configuration for path \"$(CPPCHECK_PATH)\"
- cppcheck $(BASE_CPPCHECK_FLAGS) --check-config $(CPPCHECK_FLAGS) $(CPPCHECK_PATH)
-
-cppcheck:
- @echo $(MSG_CPPCHECK_CMD) Performing cppcheck analysis on path \"$(CPPCHECK_PATH)\"
- cppcheck $(BASE_CPPCHECK_FLAGS) --enable=$(CPPCHECK_ENABLE) $(CPPCHECK_SUPPRESS:%=--suppress=%) $(CPPCHECK_FLAGS) $(CPPCHECK_PATH)
-
-# Phony build targets for this module
-.PHONY: cppcheck-config cppcheck
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += CPPCHECK
+LUFA_BUILD_TARGETS += cppcheck cppcheck-config
+LUFA_BUILD_MANDATORY_VARS +=
+LUFA_BUILD_OPTIONAL_VARS += CPPCHECK_PATH CPPCHECK_INCLUDES CPPCHECK_EXCLUDES CPPCHECK_MSG_TEMPLATE \
+ CPPCHECK_ENABLE CPPCHECK_SUPPRESS CPPCHECK_FAIL_ON_WARNING CPPCHECK_QUIET \
+ CPPCHECK_FLAGS
+
+# -----------------------------------------------------------------------------
+# LUFA CPPCheck Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to scan a project with the free "cppcheck" static
+# analysis tool, to check for code errors at runtime (see http://cppcheck.sourceforge.net).
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# cppcheck - Scan the project with CPPCheck
+# cppcheck-config - Use CPPCheck to look for missing include files
+#
+# MANDATORY PARAMETERS:
+#
+# (None)
+#
+# OPTIONAL PARAMETERS:
+#
+# CPPCHECK_PATH - Path of the files to statically analyze
+# CPPCHECK_INCLUDES - Extra include paths to search for missing
+# header files
+# CPPCHECK_EXCLUDES - Source file paths to exclude checking (can be
+# a path fragment if desired)
+# CPPCHECK_MSG_TEMPLATE - Template for cppcheck error and warning output
+# CPPCHECK_ENABLE - General cppcheck category checks to enable
+# CPPCHECK_SUPPRESS - Specific cppcheck warnings to disable by ID
+# CPPCHECK_FAIL_ON_WARNING - Set to Y to fail the build on cppcheck
+# warnings, N to continue even if warnings occur
+# CPPCHECK_QUIET - Enable cppcheck verbose or quiet output mode
+# CPPCHECK_FLAGS - Additional flags to pass to cppcheck
+#
+# -----------------------------------------------------------------------------
+
+# Default values of optionally user-supplied variables
+CPPCHECK_PATH ?= .
+CPPCHECK_INCLUDES ?=
+CPPCHECK_EXCLUDES ?=
+CPPCHECK_MSG_TEMPLATE ?= {file}:{line}: {severity} ({id}): {message}
+CPPCHECK_ENABLE ?= all
+CPPCHECK_SUPPRESS ?= variableScope missingInclude
+CPPCHECK_FAIL_ON_WARNING ?= Y
+CPPCHECK_QUIET ?= Y
+CPPCHECK_FLAGS ?=
+
+# Build a default argument list for cppcheck
+BASE_CPPCHECK_FLAGS := --template="$(CPPCHECK_MSG_TEMPLATE)" $(CPPCHECK_INCLUDES:%=-I%) $(CPPCHECK_EXCLUDES:%=-i%) --inline-suppr --force --std=c99
+
+# Sanity check parameters and construct additional command line arguments to cppcheck
+
+ifeq ($(CPPCHECK_FAIL_ON_WARNING), Y)
+ BASE_CPPCHECK_FLAGS += --error-exitcode=1
+else ifneq ($(CPPCHECK_FAIL_ON_WARNING), N)
+ $(error CPPCHECK_FAIL_ON_WARNING must be Y or N)
+endif
+ifeq ($(CPPCHECK_QUIET), Y)
+ BASE_CPPCHECK_FLAGS += --quiet
+else ifneq ($(CPPCHECK_QUIET), N)
+ $(error CPPCHECK_QUIET must be Y or N)
+endif
+
+# Output Messages
+MSG_CPPCHECK_CMD := ' [CPPCHECK]:'
+
+cppcheck-config:
+ @echo $(MSG_CPPCHECK_CMD) Checking cppcheck configuration for path \"$(CPPCHECK_PATH)\"
+ cppcheck $(BASE_CPPCHECK_FLAGS) --check-config $(CPPCHECK_FLAGS) $(CPPCHECK_PATH)
+
+cppcheck:
+ @echo $(MSG_CPPCHECK_CMD) Performing cppcheck analysis on path \"$(CPPCHECK_PATH)\"
+ cppcheck $(BASE_CPPCHECK_FLAGS) --enable=$(CPPCHECK_ENABLE) $(CPPCHECK_SUPPRESS:%=--suppress=%) $(CPPCHECK_FLAGS) $(CPPCHECK_PATH)
+
+# Phony build targets for this module
+.PHONY: cppcheck-config cppcheck
diff --git a/LUFA/Build/lufa.dfu.in b/LUFA/Build/lufa.dfu.in
index f57c20bcf..8122bfde3 100644
--- a/LUFA/Build/lufa.dfu.in
+++ b/LUFA/Build/lufa.dfu.in
@@ -1,83 +1,83 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += DFU
-LUFA_BUILD_TARGETS += flip flip-ee dfu dfu-ee
-LUFA_BUILD_MANDATORY_VARS += MCU TARGET
-LUFA_BUILD_OPTIONAL_VARS +=
-
-# -----------------------------------------------------------------------------
-# LUFA DFU Bootloader Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to re-program a device currently running a DFU
-# class bootloader with a project's FLASH and EEPROM files.
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# flip - Program FLASH into target via Atmel FLIP
-# flip-ee - Program EEPROM into target via Atmel FLIP
-# dfu - Program FLASH into target via dfu-programmer
-# dfu-ee - Program EEPROM into target via dfu-programmer
-#
-# MANDATORY PARAMETERS:
-#
-# MCU - Microcontroller device model name
-# TARGET - Application name
-#
-# OPTIONAL PARAMETERS:
-#
-# (None)
-#
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-MCU ?= $(error Makefile MCU value not set)
-TARGET ?= $(error Makefile TARGET value not set)
-
-ifeq ($(MCU),)
- $(error Makefile MCU option cannot be blank)
-endif
-ifeq ($(TARGET),)
- $(error Makefile TARGET option cannot be blank)
-endif
-
-# Output Messages
-MSG_COPY_CMD := ' [CP] :'
-MSG_REMOVE_CMD := ' [RM] :'
-MSG_DFU_CMD := ' [DFU] :'
-
-flip: $(TARGET).hex $(MAKEFILE_LIST)
- @echo $(MSG_DFU_CMD) Programming FLASH with batchisp using \"$<\"
- batchisp -hardware usb -device $(MCU) -operation erase f
- batchisp -hardware usb -device $(MCU) -operation loadbuffer $< program
- batchisp -hardware usb -device $(MCU) -operation start reset 0
-
-flip-ee: $(TARGET).eep $(MAKEFILE_LIST)
- @echo $(MSG_DFU_CMD) Copying EEP file to temporary file \"$<.hex\"
- cp $< $<.hex
- @echo $(MSG_DFU_CMD) Programming EEPROM with batchisp using \"$<.hex\"
- batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
- batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $<.hex program
- batchisp -hardware usb -device $(MCU) -operation start reset 0
- @echo $(MSG_DFU_CMD) Removing temporary file \"$<.hex\"
- rm $<.hex
-
-dfu: $(TARGET).hex $(MAKEFILE_LIST)
- @echo $(MSG_DFU_CMD) Programming FLASH with dfu-programmer using \"$<\"
- dfu-programmer $(MCU) erase
- dfu-programmer $(MCU) flash $<
- dfu-programmer $(MCU) reset
-
-dfu-ee: $(TARGET).eep $(MAKEFILE_LIST)
- @echo $(MSG_DFU_CMD) Programming EEPROM with dfu-programmer using \"$<\"
- dfu-programmer $(MCU) eeprom-flash $<
- dfu-programmer $(MCU) reset
-
-# Phony build targets for this module
-.PHONY: flip flip-ee dfu dfu-ee
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += DFU
+LUFA_BUILD_TARGETS += flip flip-ee dfu dfu-ee
+LUFA_BUILD_MANDATORY_VARS += MCU TARGET
+LUFA_BUILD_OPTIONAL_VARS +=
+
+# -----------------------------------------------------------------------------
+# LUFA DFU Bootloader Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to re-program a device currently running a DFU
+# class bootloader with a project's FLASH and EEPROM files.
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# flip - Program FLASH into target via Atmel FLIP
+# flip-ee - Program EEPROM into target via Atmel FLIP
+# dfu - Program FLASH into target via dfu-programmer
+# dfu-ee - Program EEPROM into target via dfu-programmer
+#
+# MANDATORY PARAMETERS:
+#
+# MCU - Microcontroller device model name
+# TARGET - Application name
+#
+# OPTIONAL PARAMETERS:
+#
+# (None)
+#
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+MCU ?= $(error Makefile MCU value not set)
+TARGET ?= $(error Makefile TARGET value not set)
+
+ifeq ($(MCU),)
+ $(error Makefile MCU option cannot be blank)
+endif
+ifeq ($(TARGET),)
+ $(error Makefile TARGET option cannot be blank)
+endif
+
+# Output Messages
+MSG_COPY_CMD := ' [CP] :'
+MSG_REMOVE_CMD := ' [RM] :'
+MSG_DFU_CMD := ' [DFU] :'
+
+flip: $(TARGET).hex $(MAKEFILE_LIST)
+ @echo $(MSG_DFU_CMD) Programming FLASH with batchisp using \"$<\"
+ batchisp -hardware usb -device $(MCU) -operation erase f
+ batchisp -hardware usb -device $(MCU) -operation loadbuffer $< program
+ batchisp -hardware usb -device $(MCU) -operation start reset 0
+
+flip-ee: $(TARGET).eep $(MAKEFILE_LIST)
+ @echo $(MSG_DFU_CMD) Copying EEP file to temporary file \"$<.hex\"
+ cp $< $<.hex
+ @echo $(MSG_DFU_CMD) Programming EEPROM with batchisp using \"$<.hex\"
+ batchisp -hardware usb -device $(MCU) -operation memory EEPROM erase
+ batchisp -hardware usb -device $(MCU) -operation memory EEPROM loadbuffer $<.hex program
+ batchisp -hardware usb -device $(MCU) -operation start reset 0
+ @echo $(MSG_DFU_CMD) Removing temporary file \"$<.hex\"
+ rm $<.hex
+
+dfu: $(TARGET).hex $(MAKEFILE_LIST)
+ @echo $(MSG_DFU_CMD) Programming FLASH with dfu-programmer using \"$<\"
+ dfu-programmer $(MCU) erase
+ dfu-programmer $(MCU) flash $<
+ dfu-programmer $(MCU) reset
+
+dfu-ee: $(TARGET).eep $(MAKEFILE_LIST)
+ @echo $(MSG_DFU_CMD) Programming EEPROM with dfu-programmer using \"$<\"
+ dfu-programmer $(MCU) eeprom-flash $<
+ dfu-programmer $(MCU) reset
+
+# Phony build targets for this module
+.PHONY: flip flip-ee dfu dfu-ee
diff --git a/LUFA/Build/lufa.doxygen.in b/LUFA/Build/lufa.doxygen.in
index f4a5db705..3fb950bc3 100644
--- a/LUFA/Build/lufa.doxygen.in
+++ b/LUFA/Build/lufa.doxygen.in
@@ -1,64 +1,64 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += DOXYGEN
-LUFA_BUILD_TARGETS += doxygen
-LUFA_BUILD_MANDATORY_VARS += LUFA_PATH
-LUFA_BUILD_OPTIONAL_VARS += DOXYGEN_CONF DOXYGEN_FAIL_ON_WARNING DOXYGEN_OVERRIDE_PARAMS
-
-# -----------------------------------------------------------------------------
-# LUFA Doxygen Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of targets to automatically build Doxygen documentation for
-# a project (see www.doxygen.org).
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# doxygen - Build Doxygen Documentation
-#
-# MANDATORY PARAMETERS:
-#
-# LUFA_PATH - Path to the LUFA library core
-#
-# OPTIONAL PARAMETERS:
-#
-# DOXYGEN_CONF - Doxygen configuration filename
-# DOXYGEN_FAIL_ON_WARNING - Set to Y to fail the build on Doxygen warnings,
-# N to continue even if warnings occur
-# DOXYGEN_OVERRIDE_PARAMS - Parameters to override in the doxygen
-# configuration file
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
-
-# Default values of optionally user-supplied variables
-DOXYGEN_CONF ?= Doxygen.conf
-DOXYGEN_FAIL_ON_WARNING ?= Y
-DOXYGEN_OVERRIDE_PARAMS ?= QUIET=YES HTML_STYLESHEET=$(patsubst %/,%,$(LUFA_PATH))/DoxygenPages/Style/Style.css
-
-# Output Messages
-MSG_DOXYGEN_CMD := ' [DOXYGEN] :'
-
-# Determine Doxygen invocation command
-BASE_DOXYGEN_CMD = ( cat Doxygen.conf $(DOXYGEN_OVERRIDE_PARAMS:%=; echo "%") ) | doxygen -
-ifeq ($(DOXYGEN_FAIL_ON_WARNING), Y)
- DOXYGEN_CMD = if ( $(BASE_DOXYGEN_CMD) 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then exit 1; fi;
-else ifeq ($(DOXYGEN_FAIL_ON_WARNING), N)
- DOXYGEN_CMD = $(BASE_DOXYGEN_CMD)
-else
- $(error DOXYGEN_FAIL_ON_WARNING must be Y or N.)
-endif
-
-doxygen:
- @echo $(MSG_DOXYGEN_CMD) Configuration file \"$(DOXYGEN_CONF)\" with parameters \"$(DOXYGEN_OVERRIDE_PARAMS)\"
- $(DOXYGEN_CMD)
-
-# Phony build targets for this module
-.PHONY: doxygen
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += DOXYGEN
+LUFA_BUILD_TARGETS += doxygen
+LUFA_BUILD_MANDATORY_VARS += LUFA_PATH
+LUFA_BUILD_OPTIONAL_VARS += DOXYGEN_CONF DOXYGEN_FAIL_ON_WARNING DOXYGEN_OVERRIDE_PARAMS
+
+# -----------------------------------------------------------------------------
+# LUFA Doxygen Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of targets to automatically build Doxygen documentation for
+# a project (see www.doxygen.org).
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# doxygen - Build Doxygen Documentation
+#
+# MANDATORY PARAMETERS:
+#
+# LUFA_PATH - Path to the LUFA library core
+#
+# OPTIONAL PARAMETERS:
+#
+# DOXYGEN_CONF - Doxygen configuration filename
+# DOXYGEN_FAIL_ON_WARNING - Set to Y to fail the build on Doxygen warnings,
+# N to continue even if warnings occur
+# DOXYGEN_OVERRIDE_PARAMS - Parameters to override in the doxygen
+# configuration file
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
+
+# Default values of optionally user-supplied variables
+DOXYGEN_CONF ?= Doxygen.conf
+DOXYGEN_FAIL_ON_WARNING ?= Y
+DOXYGEN_OVERRIDE_PARAMS ?= QUIET=YES HTML_STYLESHEET=$(patsubst %/,%,$(LUFA_PATH))/DoxygenPages/Style/Style.css
+
+# Output Messages
+MSG_DOXYGEN_CMD := ' [DOXYGEN] :'
+
+# Determine Doxygen invocation command
+BASE_DOXYGEN_CMD = ( cat Doxygen.conf $(DOXYGEN_OVERRIDE_PARAMS:%=; echo "%") ) | doxygen -
+ifeq ($(DOXYGEN_FAIL_ON_WARNING), Y)
+ DOXYGEN_CMD = if ( $(BASE_DOXYGEN_CMD) 2>&1 | grep -v "warning: ignoring unsupported tag" ;); then exit 1; fi;
+else ifeq ($(DOXYGEN_FAIL_ON_WARNING), N)
+ DOXYGEN_CMD = $(BASE_DOXYGEN_CMD)
+else
+ $(error DOXYGEN_FAIL_ON_WARNING must be Y or N.)
+endif
+
+doxygen:
+ @echo $(MSG_DOXYGEN_CMD) Configuration file \"$(DOXYGEN_CONF)\" with parameters \"$(DOXYGEN_OVERRIDE_PARAMS)\"
+ $(DOXYGEN_CMD)
+
+# Phony build targets for this module
+.PHONY: doxygen
diff --git a/LUFA/Build/lufa.sources.in b/LUFA/Build/lufa.sources.in
index 9df85c2ae..6d28056cc 100644
--- a/LUFA/Build/lufa.sources.in
+++ b/LUFA/Build/lufa.sources.in
@@ -1,95 +1,95 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-LUFA_BUILD_MODULES += SOURCES
-LUFA_BUILD_TARGETS +=
-LUFA_BUILD_MANDATORY_VARS += LUFA_PATH ARCH
-LUFA_BUILD_OPTIONAL_VARS +=
-
-# -----------------------------------------------------------------------------
-# LUFA Sources Buildsystem Makefile Module.
-# -----------------------------------------------------------------------------
-# DESCRIPTION:
-# Provides a set of makefile variables for the various LUFA module sources.
-# Once included, the sources required to use a given LUFA module will become
-# available using the makefile variable names listed in the LUFA project
-# documentation.
-# -----------------------------------------------------------------------------
-# TARGETS:
-#
-# (None)
-#
-# MANDATORY PARAMETERS:
-#
-# LUFA_PATH - Path to the LUFA library core
-# ARCH - Device architecture name
-#
-# OPTIONAL PARAMETERS:
-#
-# (None)
-#
-# -----------------------------------------------------------------------------
-
-# Sanity-check values of mandatory user-supplied variables
-ARCH ?= $(error Makefile ARCH value not set)
-LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
-
-ifeq ($(ARCH),)
- $(error Makefile ARCH option cannot be blank)
-endif
-
-# Allow LUFA_ROOT_PATH to be overridden elsewhere to support legacy LUFA makefiles
-LUFA_ROOT_PATH ?= $(patsubst %/,%,$(LUFA_PATH))
-
-# Construct LUFA module source variables
-LUFA_SRC_USB = $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Device_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Endpoint_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Host_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Pipe_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBController_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBInterrupt_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/EndpointStream_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/PipeStream_$(ARCH).c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/ConfigDescriptor.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/DeviceStandardReq.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/Events.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/HostStandardReq.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Core/USBTask.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Common/HIDParser.c
-LUFA_SRC_USBCLASS = $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/AudioClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDCClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/HIDClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MassStorageClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MIDIClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/RNDISClassDevice.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AudioClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/CDCClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/HIDClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MassStorageClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MIDIClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/PrinterClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/RNDISClassHost.c \
- $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/StillImageClassHost.c
-LUFA_SRC_TEMPERATURE = $(LUFA_ROOT_PATH)/Drivers/Board/Temperature.c
-LUFA_SRC_SERIAL = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/Serial_$(ARCH).c
-LUFA_SRC_TWI = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/TWI_$(ARCH).c
-
-ifeq ($(ARCH), UC3)
- LUFA_SRC_PLATFORM = $(LUFA_PATH)/Platform/UC3/Exception.S $(LUFA_PATH)/Platform/UC3/InterruptManagement.c
-else
- LUFA_SRC_PLATFORM =
-endif
-
-# Build a list of all available module sources
-LUFA_SRC_ALL_FILES = $(LUFA_SRC_USB) \
- $(LUFA_SRC_USBCLASS) \
- $(LUFA_SRC_TEMPERATURE) \
- $(LUFA_SRC_SERIAL) \
- $(LUFA_SRC_TWI) \
- $(LUFA_SRC_PLATFORM)
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+LUFA_BUILD_MODULES += SOURCES
+LUFA_BUILD_TARGETS +=
+LUFA_BUILD_MANDATORY_VARS += LUFA_PATH ARCH
+LUFA_BUILD_OPTIONAL_VARS +=
+
+# -----------------------------------------------------------------------------
+# LUFA Sources Buildsystem Makefile Module.
+# -----------------------------------------------------------------------------
+# DESCRIPTION:
+# Provides a set of makefile variables for the various LUFA module sources.
+# Once included, the sources required to use a given LUFA module will become
+# available using the makefile variable names listed in the LUFA project
+# documentation.
+# -----------------------------------------------------------------------------
+# TARGETS:
+#
+# (None)
+#
+# MANDATORY PARAMETERS:
+#
+# LUFA_PATH - Path to the LUFA library core
+# ARCH - Device architecture name
+#
+# OPTIONAL PARAMETERS:
+#
+# (None)
+#
+# -----------------------------------------------------------------------------
+
+# Sanity-check values of mandatory user-supplied variables
+ARCH ?= $(error Makefile ARCH value not set)
+LUFA_PATH ?= $(error Makefile LUFA_PATH value not set)
+
+ifeq ($(ARCH),)
+ $(error Makefile ARCH option cannot be blank)
+endif
+
+# Allow LUFA_ROOT_PATH to be overridden elsewhere to support legacy LUFA makefiles
+LUFA_ROOT_PATH ?= $(patsubst %/,%,$(LUFA_PATH))
+
+# Construct LUFA module source variables
+LUFA_SRC_USB = $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Device_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Endpoint_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Host_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/Pipe_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBController_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/USBInterrupt_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/EndpointStream_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/$(ARCH)/PipeStream_$(ARCH).c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/ConfigDescriptor.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/DeviceStandardReq.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/Events.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/HostStandardReq.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Core/USBTask.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Common/HIDParser.c
+LUFA_SRC_USBCLASS = $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/AudioClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/CDCClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/HIDClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MassStorageClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/MIDIClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/RNDISClassDevice.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/AudioClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/CDCClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/HIDClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MassStorageClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/MIDIClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/PrinterClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/RNDISClassHost.c \
+ $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/StillImageClassHost.c
+LUFA_SRC_TEMPERATURE = $(LUFA_ROOT_PATH)/Drivers/Board/Temperature.c
+LUFA_SRC_SERIAL = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/Serial_$(ARCH).c
+LUFA_SRC_TWI = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/TWI_$(ARCH).c
+
+ifeq ($(ARCH), UC3)
+ LUFA_SRC_PLATFORM = $(LUFA_PATH)/Platform/UC3/Exception.S $(LUFA_PATH)/Platform/UC3/InterruptManagement.c
+else
+ LUFA_SRC_PLATFORM =
+endif
+
+# Build a list of all available module sources
+LUFA_SRC_ALL_FILES = $(LUFA_SRC_USB) \
+ $(LUFA_SRC_USBCLASS) \
+ $(LUFA_SRC_TEMPERATURE) \
+ $(LUFA_SRC_SERIAL) \
+ $(LUFA_SRC_TWI) \
+ $(LUFA_SRC_PLATFORM)
diff --git a/LUFA/CodeTemplates/makefile_template b/LUFA/CodeTemplates/makefile_template
index 25a41dd15..fd53e3706 100644
--- a/LUFA/CodeTemplates/makefile_template
+++ b/LUFA/CodeTemplates/makefile_template
@@ -1,35 +1,35 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-MCU = at90usb1287
-ARCH = AVR8
-BOARD = USBKEY
-F_CPU = 8000000
-F_USB = $(F_CPU)
-OPTIMIZATION = s
-TARGET = Target
-SRC = $(TARGET).c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) $(LUFA_SRC_PLATFORM)
-LUFA_PATH = ../../LUFA/
-CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/
-LD_FLAGS =
-
-# Default target
-all:
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
-include $(LUFA_PATH)/Build/lufa.sources.in
-include $(LUFA_PATH)/Build/lufa.build.in
-include $(LUFA_PATH)/Build/lufa.cppcheck.in
-include $(LUFA_PATH)/Build/lufa.doxygen.in
-include $(LUFA_PATH)/Build/lufa.dfu.in
-include $(LUFA_PATH)/Build/lufa.avrdude.in
-include $(LUFA_PATH)/Build/lufa.atprogram.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+# --------------------------------------
+# LUFA Project Makefile.
+# --------------------------------------
+
+MCU = at90usb1287
+ARCH = AVR8
+BOARD = USBKEY
+F_CPU = 8000000
+F_USB = $(F_CPU)
+OPTIMIZATION = s
+TARGET = Target
+SRC = $(TARGET).c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) $(LUFA_SRC_PLATFORM)
+LUFA_PATH = ../../LUFA/
+CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/
+LD_FLAGS =
+
+# Default target
+all:
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
+include $(LUFA_PATH)/Build/lufa.sources.in
+include $(LUFA_PATH)/Build/lufa.build.in
+include $(LUFA_PATH)/Build/lufa.cppcheck.in
+include $(LUFA_PATH)/Build/lufa.doxygen.in
+include $(LUFA_PATH)/Build/lufa.dfu.in
+include $(LUFA_PATH)/Build/lufa.avrdude.in
+include $(LUFA_PATH)/Build/lufa.atprogram.in
diff --git a/LUFA/DoxygenPages/ExportingLibrary.txt b/LUFA/DoxygenPages/ExportingLibrary.txt
index 0f45c2324..1cd124235 100644
--- a/LUFA/DoxygenPages/ExportingLibrary.txt
+++ b/LUFA/DoxygenPages/ExportingLibrary.txt
@@ -1,106 +1,106 @@
-/** \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_ExportingLibrary Exporting the Library for IDE Use
- *
- * While LUFA was designed to allow for easy compilation in a makefile driven environment,
- * it is possible to export the library into a form suitable for drop-in use inside of an
- * IDE.
- *
- * \section Sec_LibraryExport Exporting the Library
- * An export of the library is at its most basic, a direct copy of the main "LUFA" source folder from the
- * root download folder; this contains the library core which can be re-used within external projects.
- * However, as many IDEs attempt to automatically compile all included source files, it is neccesary to
- * exclude some directories and files from the library core export to allow for easier integration into
- * an IDE project.
- *
- * \subsection SSec_ManualExport Manual Export
- * To manually export the library core, copy over the main LUFA library folder from the LUFA root directory,
- * renaming as desired. Within the library core folder, the following directories should be removed or
- * excluded from your IDE import:
- * - Documentation/
- * - DoxygenPages/
- * - CodeTemplates/
- *
- * If required, files from the CodeTemplates/ subdirectory may be copied to your IDE project as needed.
- *
- * The resulting copy of the library may then be imported into your chosen IDE according to the instructions
- * shown in \ref Sec_LibraryImport.
- *
- * \subsection SSec_AutomaticExport Automatic Export
- * If desired, the steps indicated in \ref SSec_ManualExport may be automatically performed, by running the
- * command <b><code>make export_tar</code></b> from the command line. This will generate two .tar files in the
- * current directory, named <code>LUFA_XXXXXX.tar</code> and <code>LUFA_XXXXXX_Code_Templates.tar</code> (where "XXXXXX" is
- * the version of the library being exported). The first archive contains the exported LUFA core with the
- * non-required files removed, while the second contains an archived copy of the code template files for the
- * current LUFA version.
- *
- * The resulting archived copy of the library may then be extracted to your chosen IDE project source directory
- * and imported according to the instructions shown in \ref Sec_LibraryImport.
- *
- * \section Sec_LibraryImport Importing the Library
- * An exported copy of the library may be imported wholesale into an IDE project, if the instructions detailed
- * in \ref Sec_LibraryExport are followed.
- *
- * Specific instructions for importing an exported version of LUFA into various IDEs are listed below.
- *
- * \subsection SSec_AS56_Import Importing into AVRStudio 5/Atmel Studio 6
- * To import LUFA into a new or existing project, the following steps must be followed.
- *
- * \subsubsection SSSec_AS56_Import_Step1 Copy over the exported library
- * Copy over the exported library archive created via the steps listed in \ref Sec_LibraryExport to your AS5/AS6
- * project directory.
- *
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png
- *
- * \subsubsection SSSec_AS56_Import_Step2 Extract exported library
- * Extract out the contents of the archive to a new folder. This may be any name you wish, however keep in mind
- * that this name will need to be referenced within your user application under most circumstances. It is
- * suggested that this folder be named "LUFA", or "LUFA" followed by the version string for easy reference.
- *
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png
- *
- * \subsubsection SSSec_AS56_Import_Step3 Add the library files
- * Open your AVRStudio 5/Atmel Studio 6 project. From the "Solution Explorer" pane, click the "Show All Files"
- * button on the toolbar to display ghosted icons of files and folders located in the project source directory
- * that are not currently added to the project.
- *
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png
- *
- * Right-click the ghosted version of the extracted LUFA export folder in the Solution Explorer pane, and
- * choose the "Add to Project" option from the context menu. This will add the entire LUFA source tree to the
- * current project.
- *
- * \subsubsection SSSec_AS56_Import_Step4 Open Project Toolchain Properties
- * In the Solution Explorer pane, click the project node, and press the "Properties" button in the toolbar to
- * open the Project Properties window. This window allows you to configure the various project global compiler,
- * assembler and linker options.
- *
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png
- *
- * Click the "Toolchain" tab on the left side of the Project Properties window.
- *
- * \subsubsection SSSec_AS56_Import_Step5 Configure Project Toolchain Properties
- *
- * In the GNU C Compiler section, open the "Symbols" page. Click the "Add Item" button to the top-right of the
- * "Defined Symbols" section to add new symbols.
- *
- * At a minimum, you will need to define the following symbols (for more information on these symbols, see
- * \ref Page_ConfiguringApps):
- * - ARCH
- * - F_CPU
- * - F_USB
- * - BOARD
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png
- *
- * Next, open the GNU C Compiler section's "Optimization" page. Ensure that the option to prepare functions for
- * garbage collection is enabled.
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png
- *
- * Finally, in the GNU C Linker section, open the "Optimization" page. Ensure that the option to garbage collect
- * unused sections is selected.
- * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png
- */
+/** \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_ExportingLibrary Exporting the Library for IDE Use
+ *
+ * While LUFA was designed to allow for easy compilation in a makefile driven environment,
+ * it is possible to export the library into a form suitable for drop-in use inside of an
+ * IDE.
+ *
+ * \section Sec_LibraryExport Exporting the Library
+ * An export of the library is at its most basic, a direct copy of the main "LUFA" source folder from the
+ * root download folder; this contains the library core which can be re-used within external projects.
+ * However, as many IDEs attempt to automatically compile all included source files, it is neccesary to
+ * exclude some directories and files from the library core export to allow for easier integration into
+ * an IDE project.
+ *
+ * \subsection SSec_ManualExport Manual Export
+ * To manually export the library core, copy over the main LUFA library folder from the LUFA root directory,
+ * renaming as desired. Within the library core folder, the following directories should be removed or
+ * excluded from your IDE import:
+ * - Documentation/
+ * - DoxygenPages/
+ * - CodeTemplates/
+ *
+ * If required, files from the CodeTemplates/ subdirectory may be copied to your IDE project as needed.
+ *
+ * The resulting copy of the library may then be imported into your chosen IDE according to the instructions
+ * shown in \ref Sec_LibraryImport.
+ *
+ * \subsection SSec_AutomaticExport Automatic Export
+ * If desired, the steps indicated in \ref SSec_ManualExport may be automatically performed, by running the
+ * command <b><code>make export_tar</code></b> from the command line. This will generate two .tar files in the
+ * current directory, named <code>LUFA_XXXXXX.tar</code> and <code>LUFA_XXXXXX_Code_Templates.tar</code> (where "XXXXXX" is
+ * the version of the library being exported). The first archive contains the exported LUFA core with the
+ * non-required files removed, while the second contains an archived copy of the code template files for the
+ * current LUFA version.
+ *
+ * The resulting archived copy of the library may then be extracted to your chosen IDE project source directory
+ * and imported according to the instructions shown in \ref Sec_LibraryImport.
+ *
+ * \section Sec_LibraryImport Importing the Library
+ * An exported copy of the library may be imported wholesale into an IDE project, if the instructions detailed
+ * in \ref Sec_LibraryExport are followed.
+ *
+ * Specific instructions for importing an exported version of LUFA into various IDEs are listed below.
+ *
+ * \subsection SSec_AS56_Import Importing into AVRStudio 5/Atmel Studio 6
+ * To import LUFA into a new or existing project, the following steps must be followed.
+ *
+ * \subsubsection SSSec_AS56_Import_Step1 Copy over the exported library
+ * Copy over the exported library archive created via the steps listed in \ref Sec_LibraryExport to your AS5/AS6
+ * project directory.
+ *
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step1.png
+ *
+ * \subsubsection SSSec_AS56_Import_Step2 Extract exported library
+ * Extract out the contents of the archive to a new folder. This may be any name you wish, however keep in mind
+ * that this name will need to be referenced within your user application under most circumstances. It is
+ * suggested that this folder be named "LUFA", or "LUFA" followed by the version string for easy reference.
+ *
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step2.png
+ *
+ * \subsubsection SSSec_AS56_Import_Step3 Add the library files
+ * Open your AVRStudio 5/Atmel Studio 6 project. From the "Solution Explorer" pane, click the "Show All Files"
+ * button on the toolbar to display ghosted icons of files and folders located in the project source directory
+ * that are not currently added to the project.
+ *
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step3.png
+ *
+ * Right-click the ghosted version of the extracted LUFA export folder in the Solution Explorer pane, and
+ * choose the "Add to Project" option from the context menu. This will add the entire LUFA source tree to the
+ * current project.
+ *
+ * \subsubsection SSSec_AS56_Import_Step4 Open Project Toolchain Properties
+ * In the Solution Explorer pane, click the project node, and press the "Properties" button in the toolbar to
+ * open the Project Properties window. This window allows you to configure the various project global compiler,
+ * assembler and linker options.
+ *
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step4.png
+ *
+ * Click the "Toolchain" tab on the left side of the Project Properties window.
+ *
+ * \subsubsection SSSec_AS56_Import_Step5 Configure Project Toolchain Properties
+ *
+ * In the GNU C Compiler section, open the "Symbols" page. Click the "Add Item" button to the top-right of the
+ * "Defined Symbols" section to add new symbols.
+ *
+ * At a minimum, you will need to define the following symbols (for more information on these symbols, see
+ * \ref Page_ConfiguringApps):
+ * - ARCH
+ * - F_CPU
+ * - F_USB
+ * - BOARD
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_1.png
+ *
+ * Next, open the GNU C Compiler section's "Optimization" page. Ensure that the option to prepare functions for
+ * garbage collection is enabled.
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_2.png
+ *
+ * Finally, in the GNU C Linker section, open the "Optimization" page. Ensure that the option to garbage collect
+ * unused sections is selected.
+ * \image html Images/AS5_AS6_Import/AS5_AS6_Import_Step5_3.png
+ */
diff --git a/LUFA/DoxygenPages/KnownIssues.txt b/LUFA/DoxygenPages/KnownIssues.txt
index 5ce7d6c14..0b191b7c3 100644
--- a/LUFA/DoxygenPages/KnownIssues.txt
+++ b/LUFA/DoxygenPages/KnownIssues.txt
@@ -1,42 +1,42 @@
-/** \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_KnownIssues Known Issues
- * The following are known issues present in each official LUFA release. This list should contain all known
- * 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
- * - AVR8 Architecture
- * - No known issues.
- * - XMEGA Architecture
- * - 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
- * relating to the USB controller.
- * - UC3 Architecture
- * - No demos, bootloaders or projects have been ported for the UC3 devices in the current release,
- * although the architecture is supported in the LUFA core library.
- * - 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
- * streams are not available on the UC3 architecture, due to a lack of suitable library support.
- * - Architecture Independant
- * - 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 current application makefiles do not work if the output directory is not the same directory
- * as the makefile itself.
- * - The LUFA library is not watchdog aware, and thus timeouts are possible if short periods are used
- * and a lengthy USB operation is initiated.
- * - Build System
- * - No known issues.
- */
-
+/** \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_KnownIssues Known Issues
+ * The following are known issues present in each official LUFA release. This list should contain all known
+ * 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
+ * - AVR8 Architecture
+ * - No known issues.
+ * - XMEGA Architecture
+ * - 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
+ * relating to the USB controller.
+ * - UC3 Architecture
+ * - No demos, bootloaders or projects have been ported for the UC3 devices in the current release,
+ * although the architecture is supported in the LUFA core library.
+ * - 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
+ * streams are not available on the UC3 architecture, due to a lack of suitable library support.
+ * - Architecture Independant
+ * - 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 current application makefiles do not work if the output directory is not the same directory
+ * as the makefile itself.
+ * - The LUFA library is not watchdog aware, and thus timeouts are possible if short periods are used
+ * and a lengthy USB operation is initiated.
+ * - Build System
+ * - No known issues.
+ */
+
diff --git a/LUFA/DoxygenPages/Style/Style.css b/LUFA/DoxygenPages/Style/Style.css
index b64f9de83..b69cac7a5 100644
--- a/LUFA/DoxygenPages/Style/Style.css
+++ b/LUFA/DoxygenPages/Style/Style.css
@@ -1,1122 +1,1122 @@
-@media print
- {
- #top
- {
- display:none;
- }
-
- #side-nav
- {
- display:none;
- }
-
- #nav-path
- {
- display:none;
- }
-
- body
- {
- overflow:visible;
- }
-
- h1,h2,h3,h4,h5,h6
- {
- page-break-after:avoid;
- }
-
- .summary
- {
- display:none;
- }
-
- .memitem
- {
- page-break-inside:avoid;
- }
-
- #doc-content
- {
- display:inline;
- height:auto !important;
- margin-left:0 !important;
- overflow:inherit;
- width:auto !important;
- }
-
- .fragment
- {
- background-color: #FFFFFF !important;
- }
-}
-
-body,table,div,p,dl
-{
- font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
- font-size:13px;
- line-height:1.3;
-}
-
-div.contents p
-{
- padding-left:12px;
-}
-
-div.contents table.memberdecls,.paramname
-{
- font-family:Consolas, Monaco, courier, sans-serif;
- font-size:105%;
- padding-right:20px;
-}
-
-.title
-{
- font-size:150%;
- font-weight:bold;
- margin:10px 2px;
-}
-
-h1
-{
- font-size:25px;
- margin-bottom:10px;
-}
-
-h2
-{
- color:#42657B;
- font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
- font-size:17px;
-}
-
-h3
-{
- font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
- font-size:15px;
-}
-
-h4
-{
- font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
- font-size:13px;
-}
-
-dt
-{
- font-weight:bold;
-}
-
-div.multicol
-{
- -moz-column-count:3px;
- -moz-column-gap:1em;
- -webkit-column-count:3px;
- -webkit-column-gap:1em;
-}
-
-p.startli,p.startdd,p.starttd
-{
- margin-top:2px;
-}
-
-p.endli
-{
- margin-bottom:0;
-}
-
-p.enddd
-{
- margin-bottom:4px;
-}
-
-p.endtd
-{
- margin-bottom:2px;
-}
-
-caption
-{
- font-weight:bold;
-}
-
-span.legend
-{
- font-size:70%;
- text-align:center;
-}
-
-h3.version
-{
- font-size:90%;
- text-align:center;
-}
-
-div.qindex,div.navtab
-{
- background-color:#EAEFF7;
- border:1px solid #9EB3DC;
- text-align:center;
-}
-
-div.qindex,div.navpath
-{
- line-height:140%;
- width:100%;
-}
-
-div.navtab
-{
- margin-right:15px;
-}
-
-a
-{
- color:#355594;
- font-weight:normal;
- text-decoration:none;
-}
-
-.contents a:visited
-{
- color:#3D62AB;
-}
-
-a:hover
-{
- text-decoration:underline;
-}
-
-a.qindex
-{
- font-weight:bold;
-}
-
-a.qindexHL
-{
- background-color:#97ADD9;
- border:1px double #7F9BD1;
- color:#ffffff;
- font-weight:bold;
-}
-
-.contents a.qindexHL:visited
-{
- color:#ffffff;
-}
-
-a.el
-{
- font-weight:bold;
-}
-
-a.code,a.code:visited
-{
- color:#4665A2;
-}
-
-a.codeRef,a.codeRef:visited
-{
- color:#4665A2;
-}
-
-dl.el
-{
- margin-left:-1cm;
-}
-
-pre.fragment {
- border: 1px solid #C4CFE5;
- background-color: #FBFCFD;
- padding: 4px 6px;
- margin: 4px 8px 4px 2px;
- overflow: auto;
- word-wrap: break-word;
- font-size: 9pt;
- line-height: 125%;
- font-family: monospace, fixed;
- font-size: 105%;
-}
-
-div.fragment {
- padding: 4px;
- margin: 4px;
- background-color: #FBFCFD;
- border: 1px solid #C4CFE5;
-}
-
-div.line {
- font-family: monospace, fixed;
- font-size: 13px;
- line-height: 1.0;
- text-wrap: unrestricted;
- white-space: -moz-pre-wrap; /* Moz */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- white-space: pre-wrap; /* CSS3 */
- word-wrap: break-word; /* IE 5.5+ */
- text-indent: -53px;
- padding-left: 53px;
- padding-bottom: 0px;
- margin: 0px;
-}
-
-span.lineno {
- padding-right: 4px;
- text-align: right;
- border-right: 2px solid #0F0;
- background-color: #E8E8E8;
- white-space: pre;
-}
-span.lineno a {
- background-color: #D8D8D8;
-}
-
-span.lineno a:hover {
- background-color: #C8C8C8;
-}
-
-div.ah
-{
- -moz-border-radius:.5em;
- -moz-box-shadow:rgba(0, 0, 0, 0.15) 2px 2px 2px;
- -webkit-border-radius:.5em;
- -webkit-box-shadow:2px 2px 3px #999;
- background-color:black;
- background-image:0;
- border:solid thin #333;
- border-radius:0.5em;
- box-shadow:2px 2px 3px #999;
- color:#ffffff;
- font-weight:bold;
- margin-bottom:3px;
- margin-top:3px;
- padding:0.2em;
-}
-
-div.groupHeader
-{
- font-weight:bold;
- margin-left:16px;
- margin-top:12px;
-}
-
-div.groupText
-{
- font-style:italic;
- margin-left:16px;
-}
-
-body
-{
- background-color:white;
- color:black;
- margin:0;
-}
-
-div.contents
-{
- margin-left:8px;
- margin-right:8px;
- margin-top:10px;
-}
-
-td.indexkey
-{
- background-color:#EAEFF7;
- border:1px solid #C1CEE8;
- font-weight:bold;
- margin:2px 0;
- padding:2px 10px;
- vertical-align:top;
- white-space:nowrap;
-}
-
-td.indexvalue
-{
- background-color:#EAEFF7;
- border:1px solid #C1CEE8;
- margin:2px 0;
- padding:2px 10px;
-}
-
-tr.memlist
-{
- background-color:#EDF1F8;
-}
-
-p.formulaDsp
-{
- text-align:center;
-}
-
-img.formulaInl
-{
- vertical-align:middle;
-}
-
-div.center
-{
- margin-bottom:0;
- margin-top:0;
- padding:0;
- text-align:center;
-}
-
-div.center img
-{
- border:0;
-}
-
-address.footer
-{
- padding-right:12px;
- text-align:right;
-}
-
-img.footer
-{
- border:0;
- vertical-align:middle;
-}
-
-span.keyword
-{
- color:#008000;
-}
-
-span.keywordtype
-{
- color:#604020;
-}
-
-span.keywordflow
-{
- color:#e08000;
-}
-
-span.comment
-{
- color:#008000;
-}
-
-span.preprocessor
-{
- color:#806020;
-}
-
-span.stringliteral
-{
- color:#002080;
-}
-
-span.charliteral
-{
- color:#008080;
-}
-
-span.vhdldigit
-{
- color:#ff00ff;
-}
-
-span.vhdlchar
-{
- color:#000000;
-}
-
-span.vhdlkeyword
-{
- color:#700070;
-}
-
-span.vhdllogic
-{
- color:#ff0000;
-}
-
-blockquote
-{
- background-color:#F6F8FC;
- border-left:2px solid #97ADD9;
- margin:0 24px 0 4px;
- padding:0 12px 0 16px;
-}
-
-td.tiny
-{
- font-size:75%;
-}
-
-.dirtab
-{
- border:1px solid #9EB3DC;
- border-collapse:collapse;
- padding:4px;
-}
-
-th.dirtab
-{
- background:#EAEFF7;
- font-weight:bold;
-}
-
-hr
-{
- border:none;
- border-top:1px solid #4067B4;
- height:0;
-}
-
-hr.footer
-{
- height:1px;
-}
-
-table.memberdecls
-{
- border-spacing:0;
- padding:0;
-}
-
-.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams
-{
- background-color:#F9FAFC;
- border:none;
- margin:4px;
- padding:1px 0 0 8px;
-}
-
-.mdescLeft,.mdescRight
-{
- color:#555;
- padding:0 8px 4px;
-}
-
-.memItemLeft,.memItemRight,.memTemplParams
-{
- border-top:1px solid #C1CEE8;
-}
-
-.memItemLeft,.memTemplItemLeft
-{
- white-space:nowrap;
-}
-
-.memItemRight
-{
- width:100%;
-}
-
-.memTemplParams
-{
- color:#3D62AB;
- white-space:nowrap;
-}
-
-.memtemplate
-{
- color:#3D62AB;
- font-size:80%;
- font-weight:normal;
- margin-left:9px;
-}
-
-.memnav
-{
- background-color:#EAEFF7;
- border:1px solid #9EB3DC;
- margin:2px 15px 2px 2px;
- padding:2px;
- text-align:center;
-}
-
-.mempage
-{
- width:100%;
-}
-
-.memitem
-{
- margin-bottom:10px;
- margin-right:5px;
- padding:0;
-}
-
-.memname
-{
- font-weight:bold;
- margin-left:6px;
- white-space:nowrap;
-}
-
-.memproto,dl.reflist dt
-{
- -moz-border-radius-topleft:8px;
- -moz-border-radius-topright:8px;
- -moz-box-shadow:rgba(0, 0, 0, 0.15) 5px 5px 5px;
- -webkit-border-top-left-radius:8px;
- -webkit-border-top-right-radius:8px;
- -webkit-box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
- background-color:#E1E7F4;
- background-image:url('nav_f.png');
- background-repeat:repeat-x;
- border-left:1px solid #A3B7DE;
- border-right:1px solid #A3B7DE;
- border-top:1px solid #A3B7DE;
- border-top-left-radius:8px;
- border-top-right-radius:8px;
- box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
- color:#20335A;
- font-weight:bold;
- padding:6px 0;
- text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);
-}
-
-.memdoc,dl.reflist dd
-{
- -moz-border-radius-bottomleft:8px;
- -moz-border-radius-bottomright:8px;
- -moz-box-shadow:rgba(0, 0, 0, 0.15) 5px 5px 5px;
- -webkit-border-bottom-left-radius:8px;
- -webkit-border-bottom-right-radius:8px;
- -webkit-box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
- background-color:#FBFCFD;
- background-image:0 color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F6F8FC), to(#EDF1F8));
- border-bottom:1px solid #A3B7DE;
- border-bottom-left-radius:8px;
- border-bottom-right-radius:8px;
- border-left:1px solid #A3B7DE;
- border-right:1px solid #A3B7DE;
- border-top-width:0;
- box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
- padding:2px 5px;
-}
-
-dl.reflist dt
-{
- padding:5px;
-}
-
-dl.reflist dd
-{
- margin:0 0 10px;
- padding:5px;
-}
-
-.paramkey
-{
- text-align:right;
-}
-
-.paramtype
-{
- white-space:nowrap;
-}
-
-.paramname
-{
- color:#602020;
- white-space:nowrap;
-}
-
-.paramname em
-{
- font-style:normal;
-}
-
-.params,.retval,.exception,.tparams
-{
- border-spacing:6px 2px;
-}
-
-.params .paramname,.retval .paramname
-{
- font-weight:bold;
- vertical-align:top;
-}
-
-.params .paramtype
-{
- font-style:italic;
- vertical-align:top;
-}
-
-.params .paramdir
-{
- font-family:"courier new",courier,monospace;
- vertical-align:top;
-}
-
-.ftvtree
-{
- font-family:sans-serif;
- margin:0;
-}
-
-.directory
-{
- font-size:9pt;
- font-weight:bold;
- margin:5px;
-}
-
-.directory h3
-{
- font-size:11pt;
- margin:1em 0 0;
-}
-
-.directory > h3
-{
- margin-top:0;
-}
-
-.directory p
-{
- margin:0;
- white-space:nowrap;
-}
-
-.directory div
-{
- display:none;
- margin:0;
-}
-
-.directory img
-{
- vertical-align:-30%;
-}
-
-.directory-alt
-{
- font-size:100%;
- font-weight:bold;
-}
-
-.directory-alt h3
-{
- font-size:11pt;
- margin:1em 0 0;
-}
-
-.directory-alt > h3
-{
- margin-top:0;
-}
-
-.directory-alt p
-{
- margin:0;
- white-space:nowrap;
-}
-
-.directory-alt div
-{
- display:none;
- margin:0;
-}
-
-.directory-alt img
-{
- vertical-align:-30%;
-}
-
-div.dynheader
-{
- margin-top:8px;
-}
-
-address
-{
- color:#253B67;
- font-style:normal;
-}
-
-table.doxtable
-{
- border-collapse:collapse;
- margin-bottom:4px;
- margin-top:4px;
-}
-
-table.doxtable td,table.doxtable th
-{
- border:1px solid #273F6D;
- padding:3px 7px 2px;
-}
-
-table.doxtable th
-{
- background-color:#304D86;
- color:#FFFFFF;
- font-size:110%;
- padding-bottom:4px;
- padding-top:5px;
-}
-
-table.fieldtable
-{
- -moz-border-radius:4px;
- -moz-box-shadow:rgba(0, 0, 0, 0.15) 2px 2px 2px;
- -webkit-border-radius:4px;
- -webkit-box-shadow:2px 2px 2px rgba(0, 0, 0, 0.15);
- border:1px solid #A3B7DE;
- border-radius:4px;
- border-spacing:0;
- box-shadow:2px 2px 2px rgba(0, 0, 0, 0.15);
- margin-bottom:10px;
- width:100%;
-}
-
-.fieldtable td,.fieldtable th
-{
- padding:3px 7px 2px;
-}
-
-.fieldtable td.fieldtype,.fieldtable td.fieldname
-{
- border-bottom:1px solid #A3B7DE;
- border-right:1px solid #A3B7DE;
- vertical-align:top;
- white-space:nowrap;
-}
-
-.fieldtable td.fielddoc
-{
- border-bottom:1px solid #A3B7DE;
- width:100%;
-}
-
-.fieldtable tr:last-child td
-{
- border-bottom:none;
-}
-
-.fieldtable th
-{
- -moz-border-radius-topleft:4px;
- -moz-border-radius-topright:4px;
- -webkit-border-top-left-radius:4px;
- -webkit-border-top-right-radius:4px;
- background-color:#E1E7F4;
- background-image:url('nav_f.png');
- background-repeat:repeat-x;
- border-bottom:1px solid #A3B7DE;
- border-top-left-radius:4px;
- border-top-right-radius:4px;
- color:#20335A;
- font-size:90%;
- padding-bottom:4px;
- padding-top:5px;
- text-align:left;
-}
-
-.tabsearch
-{
- background-image:url('tab_b.png');
- font-size:13px;
- height:36px;
- left:10px;
- overflow:hidden;
- top:0;
- z-index:101;
-}
-
-.navpath ul
-{
- background-image:url('tab_b.png');
- background-repeat:repeat-x;
- border:solid 1px #BFCCE8;
- color:#839ED2;
- font-size:11px;
- height:30px;
- line-height:30px;
- margin:0;
- overflow:hidden;
- padding:0;
-}
-
-.navpath li
-{
- background-image:url('bc_s.png');
- background-position:right;
- background-repeat:no-repeat;
- color:#2F4B83;
- float:left;
- list-style-type:none;
- padding-left:10px;
- padding-right:15px;
-}
-
-.navpath li.navelem a
-{
- display:block;
- height:32px;
- outline:none;
- text-decoration:none;
-}
-
-.navpath li.navelem a:hover
-{
- color:#6081C5;
-}
-
-.navpath li.footer
-{
- background-image:none;
- background-position:right;
- background-repeat:no-repeat;
- color:#2F4B83;
- float:right;
- font-size:8pt;
- list-style-type:none;
- padding-left:10px;
- padding-right:15px;
-}
-
-div.summary
-{
- float:right;
- font-size:8pt;
- padding-right:5px;
- text-align:right;
- width:50%;
-}
-
-div.summary a
-{
- white-space:nowrap;
-}
-
-div.ingroups
-{
- font-size:8pt;
- margin-left:5px;
- padding-left:5px;
- text-align:left;
- width:50%;
-}
-
-div.ingroups a
-{
- white-space:nowrap;
-}
-
-div.header
-{
- background-color:#F9FAFC;
- background-image:url('nav_h.png');
- background-repeat:repeat-x;
- border-bottom:1px solid #C1CEE8;
- margin:0;
-}
-
-div.headertitle
-{
- padding:5px 5px 5px 7px;
-}
-
-dl
-{
- padding:0 0 0 10px;
-}
-
-dl.section
-{
- border-left:4px solid;
- padding:0 0 0 6px;
-}
-
-dl.note
-{
- border-color:#D0C000;
-}
-
-dl.warning,dl.attention
-{
- border-color:#FF0000;
-}
-
-dl.pre,dl.post,dl.invariant
-{
- border-color:#00D000;
-}
-
-dl.deprecated
-{
- border-color:#505050;
-}
-
-dl.todo
-{
- border-color:#00C0E0;
-}
-
-dl.test
-{
- border-color:#3030E0;
-}
-
-dl.bug
-{
- border-color:#C08050;
-}
-
-dl.section dd
-{
- margin-bottom:6px;
-}
-
-#projectlogo
-{
- border-collapse:separate;
- text-align:center;
- vertical-align:bottom;
- padding-left: 20px;
-}
-
-#projectlogo img
-{
- border:0 none;
-}
-
-#projectname
-{
- font:280% Arial, sans-serif;
- margin:0;
- padding-left:20px;
-}
-
-#projectbrief
-{
- font:120% Tahoma, Arial, sans-serif;
- margin:0;
- padding:0;
-}
-
-#projectnumber:before
-{
- content:"Version ";
-}
-
-#projectnumber
-{
- font:50% Tahoma, Arial, sans-serif;
- margin:0;
- padding:0;
-}
-
-#titlearea
-{
- margin:0;
- padding:0;
- width:100%;
- background-color:#E1E7F4;
- background-image:url('nav_f.png');
- background-repeat:repeat-x;
- color:#20335A;
- font-weight:bold;
- text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);
-}
-
-.image
-{
- text-align:center;
-}
-
-.dotgraph
-{
- text-align:center;
-}
-
-.mscgraph
-{
- text-align:center;
-}
-
-.caption
-{
- font-weight:bold;
-}
-
-div.zoom
-{
- border:1px solid #8AA3D4;
-}
-
-dl.citelist
-{
- margin-bottom:50px;
-}
-
-dl.citelist dt
-{
- color:#2C477C;
- float:left;
- font-weight:bold;
- margin-right:10px;
- padding:5px;
-}
-
-dl.citelist dd
-{
- margin:2px 0;
- padding:5px 0;
-}
-
-div.toc
-{
- background-color:#F4F6FB;
- border:1px solid #D6DFF0;
- border-radius:7px 7px 7px 7px;
- float:right;
- height:auto;
- margin:0 20px 10px 10px;
- padding:14px 25px;
- width:200px;
-}
-
-div.toc li
-{
- background:url("bdwn.png") no-repeat scroll 0 5px transparent;
- font:10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
- margin-top:5px;
- padding-left:10px;
- padding-top:2px;
-}
-
-div.toc h3
-{
- border-bottom:0 none;
- color:#3D62AB;
- font:bold 12px/1.2 Arial,FreeSans,sans-serif;
- margin:0;
-}
-
-div.toc ul
-{
- border:medium none;
- list-style:none outside none;
- padding:0;
-}
-
-div.toc li.level1
-{
- margin-left:0;
-}
-
-div.toc li.level2
-{
- margin-left:15px;
-}
-
-div.toc li.level3
-{
- margin-left:30px;
-}
-
-div.toc li.level4
-{
- margin-left:45px;
-}
+@media print
+ {
+ #top
+ {
+ display:none;
+ }
+
+ #side-nav
+ {
+ display:none;
+ }
+
+ #nav-path
+ {
+ display:none;
+ }
+
+ body
+ {
+ overflow:visible;
+ }
+
+ h1,h2,h3,h4,h5,h6
+ {
+ page-break-after:avoid;
+ }
+
+ .summary
+ {
+ display:none;
+ }
+
+ .memitem
+ {
+ page-break-inside:avoid;
+ }
+
+ #doc-content
+ {
+ display:inline;
+ height:auto !important;
+ margin-left:0 !important;
+ overflow:inherit;
+ width:auto !important;
+ }
+
+ .fragment
+ {
+ background-color: #FFFFFF !important;
+ }
+}
+
+body,table,div,p,dl
+{
+ font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size:13px;
+ line-height:1.3;
+}
+
+div.contents p
+{
+ padding-left:12px;
+}
+
+div.contents table.memberdecls,.paramname
+{
+ font-family:Consolas, Monaco, courier, sans-serif;
+ font-size:105%;
+ padding-right:20px;
+}
+
+.title
+{
+ font-size:150%;
+ font-weight:bold;
+ margin:10px 2px;
+}
+
+h1
+{
+ font-size:25px;
+ margin-bottom:10px;
+}
+
+h2
+{
+ color:#42657B;
+ font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size:17px;
+}
+
+h3
+{
+ font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size:15px;
+}
+
+h4
+{
+ font-family:Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size:13px;
+}
+
+dt
+{
+ font-weight:bold;
+}
+
+div.multicol
+{
+ -moz-column-count:3px;
+ -moz-column-gap:1em;
+ -webkit-column-count:3px;
+ -webkit-column-gap:1em;
+}
+
+p.startli,p.startdd,p.starttd
+{
+ margin-top:2px;
+}
+
+p.endli
+{
+ margin-bottom:0;
+}
+
+p.enddd
+{
+ margin-bottom:4px;
+}
+
+p.endtd
+{
+ margin-bottom:2px;
+}
+
+caption
+{
+ font-weight:bold;
+}
+
+span.legend
+{
+ font-size:70%;
+ text-align:center;
+}
+
+h3.version
+{
+ font-size:90%;
+ text-align:center;
+}
+
+div.qindex,div.navtab
+{
+ background-color:#EAEFF7;
+ border:1px solid #9EB3DC;
+ text-align:center;
+}
+
+div.qindex,div.navpath
+{
+ line-height:140%;
+ width:100%;
+}
+
+div.navtab
+{
+ margin-right:15px;
+}
+
+a
+{
+ color:#355594;
+ font-weight:normal;
+ text-decoration:none;
+}
+
+.contents a:visited
+{
+ color:#3D62AB;
+}
+
+a:hover
+{
+ text-decoration:underline;
+}
+
+a.qindex
+{
+ font-weight:bold;
+}
+
+a.qindexHL
+{
+ background-color:#97ADD9;
+ border:1px double #7F9BD1;
+ color:#ffffff;
+ font-weight:bold;
+}
+
+.contents a.qindexHL:visited
+{
+ color:#ffffff;
+}
+
+a.el
+{
+ font-weight:bold;
+}
+
+a.code,a.code:visited
+{
+ color:#4665A2;
+}
+
+a.codeRef,a.codeRef:visited
+{
+ color:#4665A2;
+}
+
+dl.el
+{
+ margin-left:-1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+}
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah
+{
+ -moz-border-radius:.5em;
+ -moz-box-shadow:rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-border-radius:.5em;
+ -webkit-box-shadow:2px 2px 3px #999;
+ background-color:black;
+ background-image:0;
+ border:solid thin #333;
+ border-radius:0.5em;
+ box-shadow:2px 2px 3px #999;
+ color:#ffffff;
+ font-weight:bold;
+ margin-bottom:3px;
+ margin-top:3px;
+ padding:0.2em;
+}
+
+div.groupHeader
+{
+ font-weight:bold;
+ margin-left:16px;
+ margin-top:12px;
+}
+
+div.groupText
+{
+ font-style:italic;
+ margin-left:16px;
+}
+
+body
+{
+ background-color:white;
+ color:black;
+ margin:0;
+}
+
+div.contents
+{
+ margin-left:8px;
+ margin-right:8px;
+ margin-top:10px;
+}
+
+td.indexkey
+{
+ background-color:#EAEFF7;
+ border:1px solid #C1CEE8;
+ font-weight:bold;
+ margin:2px 0;
+ padding:2px 10px;
+ vertical-align:top;
+ white-space:nowrap;
+}
+
+td.indexvalue
+{
+ background-color:#EAEFF7;
+ border:1px solid #C1CEE8;
+ margin:2px 0;
+ padding:2px 10px;
+}
+
+tr.memlist
+{
+ background-color:#EDF1F8;
+}
+
+p.formulaDsp
+{
+ text-align:center;
+}
+
+img.formulaInl
+{
+ vertical-align:middle;
+}
+
+div.center
+{
+ margin-bottom:0;
+ margin-top:0;
+ padding:0;
+ text-align:center;
+}
+
+div.center img
+{
+ border:0;
+}
+
+address.footer
+{
+ padding-right:12px;
+ text-align:right;
+}
+
+img.footer
+{
+ border:0;
+ vertical-align:middle;
+}
+
+span.keyword
+{
+ color:#008000;
+}
+
+span.keywordtype
+{
+ color:#604020;
+}
+
+span.keywordflow
+{
+ color:#e08000;
+}
+
+span.comment
+{
+ color:#008000;
+}
+
+span.preprocessor
+{
+ color:#806020;
+}
+
+span.stringliteral
+{
+ color:#002080;
+}
+
+span.charliteral
+{
+ color:#008080;
+}
+
+span.vhdldigit
+{
+ color:#ff00ff;
+}
+
+span.vhdlchar
+{
+ color:#000000;
+}
+
+span.vhdlkeyword
+{
+ color:#700070;
+}
+
+span.vhdllogic
+{
+ color:#ff0000;
+}
+
+blockquote
+{
+ background-color:#F6F8FC;
+ border-left:2px solid #97ADD9;
+ margin:0 24px 0 4px;
+ padding:0 12px 0 16px;
+}
+
+td.tiny
+{
+ font-size:75%;
+}
+
+.dirtab
+{
+ border:1px solid #9EB3DC;
+ border-collapse:collapse;
+ padding:4px;
+}
+
+th.dirtab
+{
+ background:#EAEFF7;
+ font-weight:bold;
+}
+
+hr
+{
+ border:none;
+ border-top:1px solid #4067B4;
+ height:0;
+}
+
+hr.footer
+{
+ height:1px;
+}
+
+table.memberdecls
+{
+ border-spacing:0;
+ padding:0;
+}
+
+.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams
+{
+ background-color:#F9FAFC;
+ border:none;
+ margin:4px;
+ padding:1px 0 0 8px;
+}
+
+.mdescLeft,.mdescRight
+{
+ color:#555;
+ padding:0 8px 4px;
+}
+
+.memItemLeft,.memItemRight,.memTemplParams
+{
+ border-top:1px solid #C1CEE8;
+}
+
+.memItemLeft,.memTemplItemLeft
+{
+ white-space:nowrap;
+}
+
+.memItemRight
+{
+ width:100%;
+}
+
+.memTemplParams
+{
+ color:#3D62AB;
+ white-space:nowrap;
+}
+
+.memtemplate
+{
+ color:#3D62AB;
+ font-size:80%;
+ font-weight:normal;
+ margin-left:9px;
+}
+
+.memnav
+{
+ background-color:#EAEFF7;
+ border:1px solid #9EB3DC;
+ margin:2px 15px 2px 2px;
+ padding:2px;
+ text-align:center;
+}
+
+.mempage
+{
+ width:100%;
+}
+
+.memitem
+{
+ margin-bottom:10px;
+ margin-right:5px;
+ padding:0;
+}
+
+.memname
+{
+ font-weight:bold;
+ margin-left:6px;
+ white-space:nowrap;
+}
+
+.memproto,dl.reflist dt
+{
+ -moz-border-radius-topleft:8px;
+ -moz-border-radius-topright:8px;
+ -moz-box-shadow:rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -webkit-border-top-left-radius:8px;
+ -webkit-border-top-right-radius:8px;
+ -webkit-box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
+ background-color:#E1E7F4;
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ border-left:1px solid #A3B7DE;
+ border-right:1px solid #A3B7DE;
+ border-top:1px solid #A3B7DE;
+ border-top-left-radius:8px;
+ border-top-right-radius:8px;
+ box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
+ color:#20335A;
+ font-weight:bold;
+ padding:6px 0;
+ text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);
+}
+
+.memdoc,dl.reflist dd
+{
+ -moz-border-radius-bottomleft:8px;
+ -moz-border-radius-bottomright:8px;
+ -moz-box-shadow:rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -webkit-border-bottom-left-radius:8px;
+ -webkit-border-bottom-right-radius:8px;
+ -webkit-box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
+ background-color:#FBFCFD;
+ background-image:0 color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F6F8FC), to(#EDF1F8));
+ border-bottom:1px solid #A3B7DE;
+ border-bottom-left-radius:8px;
+ border-bottom-right-radius:8px;
+ border-left:1px solid #A3B7DE;
+ border-right:1px solid #A3B7DE;
+ border-top-width:0;
+ box-shadow:5px 5px 5px rgba(0, 0, 0, 0.15);
+ padding:2px 5px;
+}
+
+dl.reflist dt
+{
+ padding:5px;
+}
+
+dl.reflist dd
+{
+ margin:0 0 10px;
+ padding:5px;
+}
+
+.paramkey
+{
+ text-align:right;
+}
+
+.paramtype
+{
+ white-space:nowrap;
+}
+
+.paramname
+{
+ color:#602020;
+ white-space:nowrap;
+}
+
+.paramname em
+{
+ font-style:normal;
+}
+
+.params,.retval,.exception,.tparams
+{
+ border-spacing:6px 2px;
+}
+
+.params .paramname,.retval .paramname
+{
+ font-weight:bold;
+ vertical-align:top;
+}
+
+.params .paramtype
+{
+ font-style:italic;
+ vertical-align:top;
+}
+
+.params .paramdir
+{
+ font-family:"courier new",courier,monospace;
+ vertical-align:top;
+}
+
+.ftvtree
+{
+ font-family:sans-serif;
+ margin:0;
+}
+
+.directory
+{
+ font-size:9pt;
+ font-weight:bold;
+ margin:5px;
+}
+
+.directory h3
+{
+ font-size:11pt;
+ margin:1em 0 0;
+}
+
+.directory > h3
+{
+ margin-top:0;
+}
+
+.directory p
+{
+ margin:0;
+ white-space:nowrap;
+}
+
+.directory div
+{
+ display:none;
+ margin:0;
+}
+
+.directory img
+{
+ vertical-align:-30%;
+}
+
+.directory-alt
+{
+ font-size:100%;
+ font-weight:bold;
+}
+
+.directory-alt h3
+{
+ font-size:11pt;
+ margin:1em 0 0;
+}
+
+.directory-alt > h3
+{
+ margin-top:0;
+}
+
+.directory-alt p
+{
+ margin:0;
+ white-space:nowrap;
+}
+
+.directory-alt div
+{
+ display:none;
+ margin:0;
+}
+
+.directory-alt img
+{
+ vertical-align:-30%;
+}
+
+div.dynheader
+{
+ margin-top:8px;
+}
+
+address
+{
+ color:#253B67;
+ font-style:normal;
+}
+
+table.doxtable
+{
+ border-collapse:collapse;
+ margin-bottom:4px;
+ margin-top:4px;
+}
+
+table.doxtable td,table.doxtable th
+{
+ border:1px solid #273F6D;
+ padding:3px 7px 2px;
+}
+
+table.doxtable th
+{
+ background-color:#304D86;
+ color:#FFFFFF;
+ font-size:110%;
+ padding-bottom:4px;
+ padding-top:5px;
+}
+
+table.fieldtable
+{
+ -moz-border-radius:4px;
+ -moz-box-shadow:rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-border-radius:4px;
+ -webkit-box-shadow:2px 2px 2px rgba(0, 0, 0, 0.15);
+ border:1px solid #A3B7DE;
+ border-radius:4px;
+ border-spacing:0;
+ box-shadow:2px 2px 2px rgba(0, 0, 0, 0.15);
+ margin-bottom:10px;
+ width:100%;
+}
+
+.fieldtable td,.fieldtable th
+{
+ padding:3px 7px 2px;
+}
+
+.fieldtable td.fieldtype,.fieldtable td.fieldname
+{
+ border-bottom:1px solid #A3B7DE;
+ border-right:1px solid #A3B7DE;
+ vertical-align:top;
+ white-space:nowrap;
+}
+
+.fieldtable td.fielddoc
+{
+ border-bottom:1px solid #A3B7DE;
+ width:100%;
+}
+
+.fieldtable tr:last-child td
+{
+ border-bottom:none;
+}
+
+.fieldtable th
+{
+ -moz-border-radius-topleft:4px;
+ -moz-border-radius-topright:4px;
+ -webkit-border-top-left-radius:4px;
+ -webkit-border-top-right-radius:4px;
+ background-color:#E1E7F4;
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ border-bottom:1px solid #A3B7DE;
+ border-top-left-radius:4px;
+ border-top-right-radius:4px;
+ color:#20335A;
+ font-size:90%;
+ padding-bottom:4px;
+ padding-top:5px;
+ text-align:left;
+}
+
+.tabsearch
+{
+ background-image:url('tab_b.png');
+ font-size:13px;
+ height:36px;
+ left:10px;
+ overflow:hidden;
+ top:0;
+ z-index:101;
+}
+
+.navpath ul
+{
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ border:solid 1px #BFCCE8;
+ color:#839ED2;
+ font-size:11px;
+ height:30px;
+ line-height:30px;
+ margin:0;
+ overflow:hidden;
+ padding:0;
+}
+
+.navpath li
+{
+ background-image:url('bc_s.png');
+ background-position:right;
+ background-repeat:no-repeat;
+ color:#2F4B83;
+ float:left;
+ list-style-type:none;
+ padding-left:10px;
+ padding-right:15px;
+}
+
+.navpath li.navelem a
+{
+ display:block;
+ height:32px;
+ outline:none;
+ text-decoration:none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6081C5;
+}
+
+.navpath li.footer
+{
+ background-image:none;
+ background-position:right;
+ background-repeat:no-repeat;
+ color:#2F4B83;
+ float:right;
+ font-size:8pt;
+ list-style-type:none;
+ padding-left:10px;
+ padding-right:15px;
+}
+
+div.summary
+{
+ float:right;
+ font-size:8pt;
+ padding-right:5px;
+ text-align:right;
+ width:50%;
+}
+
+div.summary a
+{
+ white-space:nowrap;
+}
+
+div.ingroups
+{
+ font-size:8pt;
+ margin-left:5px;
+ padding-left:5px;
+ text-align:left;
+ width:50%;
+}
+
+div.ingroups a
+{
+ white-space:nowrap;
+}
+
+div.header
+{
+ background-color:#F9FAFC;
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ border-bottom:1px solid #C1CEE8;
+ margin:0;
+}
+
+div.headertitle
+{
+ padding:5px 5px 5px 7px;
+}
+
+dl
+{
+ padding:0 0 0 10px;
+}
+
+dl.section
+{
+ border-left:4px solid;
+ padding:0 0 0 6px;
+}
+
+dl.note
+{
+ border-color:#D0C000;
+}
+
+dl.warning,dl.attention
+{
+ border-color:#FF0000;
+}
+
+dl.pre,dl.post,dl.invariant
+{
+ border-color:#00D000;
+}
+
+dl.deprecated
+{
+ border-color:#505050;
+}
+
+dl.todo
+{
+ border-color:#00C0E0;
+}
+
+dl.test
+{
+ border-color:#3030E0;
+}
+
+dl.bug
+{
+ border-color:#C08050;
+}
+
+dl.section dd
+{
+ margin-bottom:6px;
+}
+
+#projectlogo
+{
+ border-collapse:separate;
+ text-align:center;
+ vertical-align:bottom;
+ padding-left: 20px;
+}
+
+#projectlogo img
+{
+ border:0 none;
+}
+
+#projectname
+{
+ font:280% Arial, sans-serif;
+ margin:0;
+ padding-left:20px;
+}
+
+#projectbrief
+{
+ font:120% Tahoma, Arial, sans-serif;
+ margin:0;
+ padding:0;
+}
+
+#projectnumber:before
+{
+ content:"Version ";
+}
+
+#projectnumber
+{
+ font:50% Tahoma, Arial, sans-serif;
+ margin:0;
+ padding:0;
+}
+
+#titlearea
+{
+ margin:0;
+ padding:0;
+ width:100%;
+ background-color:#E1E7F4;
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ color:#20335A;
+ font-weight:bold;
+ text-shadow:0 1px 1px rgba(255, 255, 255, 0.9);
+}
+
+.image
+{
+ text-align:center;
+}
+
+.dotgraph
+{
+ text-align:center;
+}
+
+.mscgraph
+{
+ text-align:center;
+}
+
+.caption
+{
+ font-weight:bold;
+}
+
+div.zoom
+{
+ border:1px solid #8AA3D4;
+}
+
+dl.citelist
+{
+ margin-bottom:50px;
+}
+
+dl.citelist dt
+{
+ color:#2C477C;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd
+{
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc
+{
+ background-color:#F4F6FB;
+ border:1px solid #D6DFF0;
+ border-radius:7px 7px 7px 7px;
+ float:right;
+ height:auto;
+ margin:0 20px 10px 10px;
+ padding:14px 25px;
+ width:200px;
+}
+
+div.toc li
+{
+ background:url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font:10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top:5px;
+ padding-left:10px;
+ padding-top:2px;
+}
+
+div.toc h3
+{
+ border-bottom:0 none;
+ color:#3D62AB;
+ font:bold 12px/1.2 Arial,FreeSans,sans-serif;
+ margin:0;
+}
+
+div.toc ul
+{
+ border:medium none;
+ list-style:none outside none;
+ padding:0;
+}
+
+div.toc li.level1
+{
+ margin-left:0;
+}
+
+div.toc li.level2
+{
+ margin-left:15px;
+}
+
+div.toc li.level3
+{
+ margin-left:30px;
+}
+
+div.toc li.level4
+{
+ margin-left:45px;
+}
diff --git a/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h b/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h
index 89516dca0..bafedcca3 100644
--- a/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h
@@ -1,161 +1,161 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-/** \file
- * \brief Board specific LED driver header for the Bitwizard Big-Multio.
- * \copydetails Group_LEDs_BIGMULTIO
- *
- * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
- * dispatch header located in LUFA/Drivers/Board/LEDs.h.
- */
-
-/** \ingroup Group_LEDs
- * \defgroup Group_LEDs_BIGMULTIO BIGMULTIO
- * \brief Board specific LED driver header for the Bitwizard Big-Multio.
- *
- * Board specific LED driver header for the Bitwizard Big-Multio (http://www.bitwizard.nl/wiki/index.php/Usbbigmultio).
- *
- * <table>
- * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
- * <tr><td>LEDS_LED1</td><td>Unknown</td><td>LED0</td><td>High</td><td>PORTF.6</td></tr>
- * <tr><td>LEDS_LED2</td><td>Unknown</td><td>LED1</td><td>High</td><td>PORTF.7</td></tr>
- * <tr><td>LEDS_LED3</td><td>Unknown</td><td>LED2</td><td>High</td><td>PORTE.2</td></tr>
- * </table>
- *
- * @{
- */
-
-#ifndef __LEDS_BIGMULTIO_H__
-#define __LEDS_BIGMULTIO_H__
-
- /* Includes: */
- #include "../../../../Common/Common.h"
-
- /* Enable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- extern "C" {
- #endif
-
- /* Preprocessor Checks: */
- #if !defined(__INCLUDE_FROM_LEDS_H)
- #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
- #endif
-
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define LEDS_PORTF_LEDS (LEDS_LED1 | LEDS_LED2)
- #define LEDS_PORTE_LEDS LEDS_LED3
- #endif
-
- /* Public Interface - May be used in end-application: */
- /* Macros: */
- /** LED mask for the first LED on the board. */
- #define LEDS_LED1 (1 << 6)
-
- /** LED mask for the second LED on the board. */
- #define LEDS_LED2 (1 << 7)
-
- /** LED mask for the second LED on the board. */
- #define LEDS_LED3 (1 << 2)
-
- /** LED mask for all the LEDs on the board. */
- #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
-
- /** LED mask for none of the board LEDs. */
- #define LEDS_NO_LEDS 0
-
- /* Inline Functions: */
- #if !defined(__DOXYGEN__)
- static inline void LEDs_Init(void)
- {
- DDRF |= LEDS_PORTF_LEDS;
- DDRE |= LEDS_PORTE_LEDS;
-
- PORTF &= ~LEDS_PORTF_LEDS;
- PORTE &= ~LEDS_PORTE_LEDS;
- }
-
- static inline void LEDs_Disable(void)
- {
- DDRF |= LEDS_PORTF_LEDS;
- DDRE |= LEDS_PORTE_LEDS;
-
- PORTF &= ~LEDS_PORTF_LEDS;
- PORTE &= ~LEDS_PORTE_LEDS;
- }
-
- static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
- {
- PORTF |= (LEDMask & LEDS_PORTF_LEDS);
- PORTE |= (LEDMask & LEDS_PORTE_LEDS);
- }
-
- static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
- {
- PORTF &= ~(LEDMask & LEDS_PORTF_LEDS);
- PORTE &= ~(LEDMask & LEDS_PORTE_LEDS);
- }
-
- static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
- {
- PORTF = (PORTF & ~LEDS_PORTF_LEDS) | (LEDMask & LEDS_PORTF_LEDS);
- PORTE = (PORTE & ~LEDS_PORTE_LEDS) | (LEDMask & LEDS_PORTE_LEDS);
- }
-
- static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
- const uint8_t ActiveMask)
- {
- PORTF = (PORTF & ~(LEDMask & LEDS_PORTF_LEDS)) | (ActiveMask & LEDS_PORTF_LEDS);
- PORTE = (PORTE & ~(LEDMask & LEDS_PORTE_LEDS)) | (ActiveMask & LEDS_PORTE_LEDS);
- }
-
- static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
- {
- PINF = (LEDMask & LEDS_PORTF_LEDS);
- PINE = (LEDMask & LEDS_PORTE_LEDS);
- }
-
- static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
- static inline uint8_t LEDs_GetLEDs(void)
- {
- return ((PORTF & LEDS_PORTF_LEDS) | (PORTE & LEDS_PORTE_LEDS));
- }
- #endif
-
- /* Disable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- }
- #endif
-
-#endif
-
-/** @} */
-
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+/** \file
+ * \brief Board specific LED driver header for the Bitwizard Big-Multio.
+ * \copydetails Group_LEDs_BIGMULTIO
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_BIGMULTIO BIGMULTIO
+ * \brief Board specific LED driver header for the Bitwizard Big-Multio.
+ *
+ * Board specific LED driver header for the Bitwizard Big-Multio (http://www.bitwizard.nl/wiki/index.php/Usbbigmultio).
+ *
+ * <table>
+ * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
+ * <tr><td>LEDS_LED1</td><td>Unknown</td><td>LED0</td><td>High</td><td>PORTF.6</td></tr>
+ * <tr><td>LEDS_LED2</td><td>Unknown</td><td>LED1</td><td>High</td><td>PORTF.7</td></tr>
+ * <tr><td>LEDS_LED3</td><td>Unknown</td><td>LED2</td><td>High</td><td>PORTE.2</td></tr>
+ * </table>
+ *
+ * @{
+ */
+
+#ifndef __LEDS_BIGMULTIO_H__
+#define __LEDS_BIGMULTIO_H__
+
+ /* Includes: */
+ #include "../../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_LEDS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define LEDS_PORTF_LEDS (LEDS_LED1 | LEDS_LED2)
+ #define LEDS_PORTE_LEDS LEDS_LED3
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** LED mask for the first LED on the board. */
+ #define LEDS_LED1 (1 << 6)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED2 (1 << 7)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED3 (1 << 2)
+
+ /** LED mask for all the LEDs on the board. */
+ #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
+
+ /** LED mask for none of the board LEDs. */
+ #define LEDS_NO_LEDS 0
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void LEDs_Init(void)
+ {
+ DDRF |= LEDS_PORTF_LEDS;
+ DDRE |= LEDS_PORTE_LEDS;
+
+ PORTF &= ~LEDS_PORTF_LEDS;
+ PORTE &= ~LEDS_PORTE_LEDS;
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ DDRF |= LEDS_PORTF_LEDS;
+ DDRE |= LEDS_PORTE_LEDS;
+
+ PORTF &= ~LEDS_PORTF_LEDS;
+ PORTE &= ~LEDS_PORTE_LEDS;
+ }
+
+ static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
+ {
+ PORTF |= (LEDMask & LEDS_PORTF_LEDS);
+ PORTE |= (LEDMask & LEDS_PORTE_LEDS);
+ }
+
+ static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
+ {
+ PORTF &= ~(LEDMask & LEDS_PORTF_LEDS);
+ PORTE &= ~(LEDMask & LEDS_PORTE_LEDS);
+ }
+
+ static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
+ {
+ PORTF = (PORTF & ~LEDS_PORTF_LEDS) | (LEDMask & LEDS_PORTF_LEDS);
+ PORTE = (PORTE & ~LEDS_PORTE_LEDS) | (LEDMask & LEDS_PORTE_LEDS);
+ }
+
+ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
+ const uint8_t ActiveMask)
+ {
+ PORTF = (PORTF & ~(LEDMask & LEDS_PORTF_LEDS)) | (ActiveMask & LEDS_PORTF_LEDS);
+ PORTE = (PORTE & ~(LEDMask & LEDS_PORTE_LEDS)) | (ActiveMask & LEDS_PORTE_LEDS);
+ }
+
+ static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
+ {
+ PINF = (LEDMask & LEDS_PORTF_LEDS);
+ PINE = (LEDMask & LEDS_PORTE_LEDS);
+ }
+
+ static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t LEDs_GetLEDs(void)
+ {
+ return ((PORTF & LEDS_PORTF_LEDS) | (PORTE & LEDS_PORTE_LEDS));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h b/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h
index 64f68a53d..14809df28 100644
--- a/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h
@@ -1,161 +1,161 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-/** \file
- * \brief Board specific LED driver header for the Bitwizard Multio.
- * \copydetails Group_LEDs_MULTIO
- *
- * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
- * dispatch header located in LUFA/Drivers/Board/LEDs.h.
- */
-
-/** \ingroup Group_LEDs
- * \defgroup Group_LEDs_MULTIO MULTIO
- * \brief Board specific LED driver header for the Bitwizard Multio.
- *
- * Board specific LED driver header for the Bitwizard Multio (http://www.bitwizard.nl/wiki/index.php/USB-multio).
- *
- * <table>
- * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
- * <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.0</td></tr>
- * <tr><td>LEDS_LED2</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTC.2</td></tr>
- * <tr><td>LEDS_LED3</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.7</td></tr>
- * </table>
- *
- * @{
- */
-
-#ifndef __LEDS_MULTIO_H__
-#define __LEDS_MULTIO_H__
-
- /* Includes: */
- #include "../../../../Common/Common.h"
-
- /* Enable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- extern "C" {
- #endif
-
- /* Preprocessor Checks: */
- #if !defined(__INCLUDE_FROM_LEDS_H)
- #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
- #endif
-
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- #define LEDS_PORTD_LEDS (LEDS_LED1 | LEDS_LED3)
- #define LEDS_PORTC_LEDS LEDS_LED2
- #endif
-
- /* Public Interface - May be used in end-application: */
- /* Macros: */
- /** LED mask for the first LED on the board. */
- #define LEDS_LED1 (1 << 0)
-
- /** LED mask for the second LED on the board. */
- #define LEDS_LED2 (1 << 2)
-
- /** LED mask for the second LED on the board. */
- #define LEDS_LED3 (1 << 7)
-
- /** LED mask for all the LEDs on the board. */
- #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
-
- /** LED mask for none of the board LEDs. */
- #define LEDS_NO_LEDS 0
-
- /* Inline Functions: */
- #if !defined(__DOXYGEN__)
- static inline void LEDs_Init(void)
- {
- DDRD |= LEDS_PORTD_LEDS;
- DDRC |= LEDS_PORTC_LEDS;
-
- PORTD &= ~LEDS_PORTD_LEDS;
- PORTC &= ~LEDS_PORTC_LEDS;
- }
-
- static inline void LEDs_Disable(void)
- {
- DDRD |= LEDS_PORTD_LEDS;
- DDRC |= LEDS_PORTC_LEDS;
-
- PORTD &= ~LEDS_PORTD_LEDS;
- PORTC &= ~LEDS_PORTC_LEDS;
- }
-
- static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
- {
- PORTD |= (LEDMask & LEDS_PORTD_LEDS);
- PORTC |= (LEDMask & LEDS_PORTC_LEDS);
- }
-
- static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
- {
- PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
- PORTC &= ~(LEDMask & LEDS_PORTC_LEDS);
- }
-
- static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
- {
- PORTD = (PORTD & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS);
- PORTC = (PORTC & ~LEDS_PORTC_LEDS) | (LEDMask & LEDS_PORTC_LEDS);
- }
-
- static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
- const uint8_t ActiveMask)
- {
- PORTD = (PORTD & ~(LEDMask & LEDS_PORTD_LEDS)) | (ActiveMask & LEDS_PORTD_LEDS);
- PORTC = (PORTC & ~(LEDMask & LEDS_PORTC_LEDS)) | (ActiveMask & LEDS_PORTC_LEDS);
- }
-
- static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
- {
- PIND = (LEDMask & LEDS_PORTD_LEDS);
- PINC = (LEDMask & LEDS_PORTC_LEDS);
- }
-
- static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
- static inline uint8_t LEDs_GetLEDs(void)
- {
- return ((PORTD & LEDS_PORTD_LEDS) | (PORTC & LEDS_PORTC_LEDS));
- }
- #endif
-
- /* Disable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- }
- #endif
-
-#endif
-
-/** @} */
-
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+/** \file
+ * \brief Board specific LED driver header for the Bitwizard Multio.
+ * \copydetails Group_LEDs_MULTIO
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_MULTIO MULTIO
+ * \brief Board specific LED driver header for the Bitwizard Multio.
+ *
+ * Board specific LED driver header for the Bitwizard Multio (http://www.bitwizard.nl/wiki/index.php/USB-multio).
+ *
+ * <table>
+ * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr>
+ * <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.0</td></tr>
+ * <tr><td>LEDS_LED2</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTC.2</td></tr>
+ * <tr><td>LEDS_LED3</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORTD.7</td></tr>
+ * </table>
+ *
+ * @{
+ */
+
+#ifndef __LEDS_MULTIO_H__
+#define __LEDS_MULTIO_H__
+
+ /* Includes: */
+ #include "../../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_LEDS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define LEDS_PORTD_LEDS (LEDS_LED1 | LEDS_LED3)
+ #define LEDS_PORTC_LEDS LEDS_LED2
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** LED mask for the first LED on the board. */
+ #define LEDS_LED1 (1 << 0)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED2 (1 << 2)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED3 (1 << 7)
+
+ /** LED mask for all the LEDs on the board. */
+ #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
+
+ /** LED mask for none of the board LEDs. */
+ #define LEDS_NO_LEDS 0
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void LEDs_Init(void)
+ {
+ DDRD |= LEDS_PORTD_LEDS;
+ DDRC |= LEDS_PORTC_LEDS;
+
+ PORTD &= ~LEDS_PORTD_LEDS;
+ PORTC &= ~LEDS_PORTC_LEDS;
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ DDRD |= LEDS_PORTD_LEDS;
+ DDRC |= LEDS_PORTC_LEDS;
+
+ PORTD &= ~LEDS_PORTD_LEDS;
+ PORTC &= ~LEDS_PORTC_LEDS;
+ }
+
+ static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
+ {
+ PORTD |= (LEDMask & LEDS_PORTD_LEDS);
+ PORTC |= (LEDMask & LEDS_PORTC_LEDS);
+ }
+
+ static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
+ {
+ PORTD &= ~(LEDMask & LEDS_PORTD_LEDS);
+ PORTC &= ~(LEDMask & LEDS_PORTC_LEDS);
+ }
+
+ static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
+ {
+ PORTD = (PORTD & ~LEDS_PORTD_LEDS) | (LEDMask & LEDS_PORTD_LEDS);
+ PORTC = (PORTC & ~LEDS_PORTC_LEDS) | (LEDMask & LEDS_PORTC_LEDS);
+ }
+
+ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
+ const uint8_t ActiveMask)
+ {
+ PORTD = (PORTD & ~(LEDMask & LEDS_PORTD_LEDS)) | (ActiveMask & LEDS_PORTD_LEDS);
+ PORTC = (PORTC & ~(LEDMask & LEDS_PORTC_LEDS)) | (ActiveMask & LEDS_PORTC_LEDS);
+ }
+
+ static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
+ {
+ PIND = (LEDMask & LEDS_PORTD_LEDS);
+ PINC = (LEDMask & LEDS_PORTC_LEDS);
+ }
+
+ static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t LEDs_GetLEDs(void)
+ {
+ return ((PORTD & LEDS_PORTD_LEDS) | (PORTC & LEDS_PORTC_LEDS));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
index e71a7bd32..3d80a33f9 100644
--- a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
@@ -1,221 +1,221 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, 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.
-*/
-
-#include "../../../../Common/Common.h"
-#if (ARCH == ARCH_AVR8)
-
-#define __INCLUDE_FROM_USB_DRIVER
-#include "../USBMode.h"
-
-#if defined(USB_CAN_BE_HOST)
-
-#include "PipeStream_AVR8.h"
-
-uint8_t Pipe_Discard_Stream(uint16_t Length,
- uint16_t* const BytesProcessed)
-{
- uint8_t ErrorCode;
- uint16_t BytesInTransfer = 0;
-
- Pipe_SetPipeToken(PIPE_TOKEN_IN);
-
- if ((ErrorCode = Pipe_WaitUntilReady()))
- return ErrorCode;
-
- if (BytesProcessed != NULL)
- Length -= *BytesProcessed;
-
- while (Length)
- {
- if (!(Pipe_IsReadWriteAllowed()))
- {
- Pipe_ClearIN();
-
- if (BytesProcessed != NULL)
- {
- *BytesProcessed += BytesInTransfer;
- return PIPE_RWSTREAM_IncompleteTransfer;
- }
-
- if ((ErrorCode = Pipe_WaitUntilReady()))
- return ErrorCode;
- }
- else
- {
- Pipe_Discard_8();
-
- Length--;
- BytesInTransfer++;
- }
- }
-
- return PIPE_RWSTREAM_NoError;
-}
-
-uint8_t Pipe_Null_Stream(uint16_t Length,
- uint16_t* const BytesProcessed)
-{
- uint8_t ErrorCode;
- uint16_t BytesInTransfer = 0;
-
- Pipe_SetPipeToken(PIPE_TOKEN_OUT);
-
- if ((ErrorCode = Pipe_WaitUntilReady()))
- return ErrorCode;
-
- if (BytesProcessed != NULL)
- Length -= *BytesProcessed;
-
- while (Length)
- {
- if (!(Pipe_IsReadWriteAllowed()))
- {
- Pipe_ClearOUT();
-
- if (BytesProcessed != NULL)
- {
- *BytesProcessed += BytesInTransfer;
- return PIPE_RWSTREAM_IncompleteTransfer;
- }
-
- USB_USBTask();
-
- if ((ErrorCode = Pipe_WaitUntilReady()))
- return ErrorCode;
- }
- else
- {
- Pipe_Write_8(0);
-
- Length--;
- BytesInTransfer++;
- }
- }
-
- return PIPE_RWSTREAM_NoError;
-}
-
-/* The following abuses the C preprocessor in order to copy-paste common code with slight alterations,
- * so that the code needs to be written once. It is a crude form of templating to reduce code maintenance. */
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_Stream_LE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) 0
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(*BufferPtr)
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_Stream_BE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(*BufferPtr)
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Read_Stream_LE
-#define TEMPLATE_BUFFER_TYPE void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_IN
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
-#define TEMPLATE_BUFFER_OFFSET(Length) 0
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *BufferPtr = Pipe_Read_8()
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Read_Stream_BE
-#define TEMPLATE_BUFFER_TYPE void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_IN
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
-#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *BufferPtr = Pipe_Read_8()
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_PStream_LE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) 0
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(pgm_read_byte(BufferPtr))
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_PStream_BE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(pgm_read_byte(BufferPtr))
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_EStream_LE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) 0
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(eeprom_read_byte(BufferPtr))
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Write_EStream_BE
-#define TEMPLATE_BUFFER_TYPE const void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
-#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(eeprom_read_byte(BufferPtr))
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Read_EStream_LE
-#define TEMPLATE_BUFFER_TYPE void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_IN
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
-#define TEMPLATE_BUFFER_OFFSET(Length) 0
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_8())
-#include "Template/Template_Pipe_RW.c"
-
-#define TEMPLATE_FUNC_NAME Pipe_Read_EStream_BE
-#define TEMPLATE_BUFFER_TYPE void*
-#define TEMPLATE_TOKEN PIPE_TOKEN_IN
-#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
-#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
-#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
-#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_8())
-#include "Template/Template_Pipe_RW.c"
-
-#endif
-
-#endif
-
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, 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.
+*/
+
+#include "../../../../Common/Common.h"
+#if (ARCH == ARCH_AVR8)
+
+#define __INCLUDE_FROM_USB_DRIVER
+#include "../USBMode.h"
+
+#if defined(USB_CAN_BE_HOST)
+
+#include "PipeStream_AVR8.h"
+
+uint8_t Pipe_Discard_Stream(uint16_t Length,
+ uint16_t* const BytesProcessed)
+{
+ uint8_t ErrorCode;
+ uint16_t BytesInTransfer = 0;
+
+ Pipe_SetPipeToken(PIPE_TOKEN_IN);
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+
+ if (BytesProcessed != NULL)
+ Length -= *BytesProcessed;
+
+ while (Length)
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearIN();
+
+ if (BytesProcessed != NULL)
+ {
+ *BytesProcessed += BytesInTransfer;
+ return PIPE_RWSTREAM_IncompleteTransfer;
+ }
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+ else
+ {
+ Pipe_Discard_8();
+
+ Length--;
+ BytesInTransfer++;
+ }
+ }
+
+ return PIPE_RWSTREAM_NoError;
+}
+
+uint8_t Pipe_Null_Stream(uint16_t Length,
+ uint16_t* const BytesProcessed)
+{
+ uint8_t ErrorCode;
+ uint16_t BytesInTransfer = 0;
+
+ Pipe_SetPipeToken(PIPE_TOKEN_OUT);
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+
+ if (BytesProcessed != NULL)
+ Length -= *BytesProcessed;
+
+ while (Length)
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearOUT();
+
+ if (BytesProcessed != NULL)
+ {
+ *BytesProcessed += BytesInTransfer;
+ return PIPE_RWSTREAM_IncompleteTransfer;
+ }
+
+ USB_USBTask();
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+ else
+ {
+ Pipe_Write_8(0);
+
+ Length--;
+ BytesInTransfer++;
+ }
+ }
+
+ return PIPE_RWSTREAM_NoError;
+}
+
+/* The following abuses the C preprocessor in order to copy-paste common code with slight alterations,
+ * so that the code needs to be written once. It is a crude form of templating to reduce code maintenance. */
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_Stream_LE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) 0
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(*BufferPtr)
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_Stream_BE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(*BufferPtr)
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Read_Stream_LE
+#define TEMPLATE_BUFFER_TYPE void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_IN
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
+#define TEMPLATE_BUFFER_OFFSET(Length) 0
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *BufferPtr = Pipe_Read_8()
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Read_Stream_BE
+#define TEMPLATE_BUFFER_TYPE void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_IN
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
+#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) *BufferPtr = Pipe_Read_8()
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_PStream_LE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) 0
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(pgm_read_byte(BufferPtr))
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_PStream_BE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(pgm_read_byte(BufferPtr))
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_EStream_LE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) 0
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(eeprom_read_byte(BufferPtr))
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Write_EStream_BE
+#define TEMPLATE_BUFFER_TYPE const void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_OUT
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearOUT()
+#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) Pipe_Write_8(eeprom_read_byte(BufferPtr))
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Read_EStream_LE
+#define TEMPLATE_BUFFER_TYPE void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_IN
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
+#define TEMPLATE_BUFFER_OFFSET(Length) 0
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream += Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_8())
+#include "Template/Template_Pipe_RW.c"
+
+#define TEMPLATE_FUNC_NAME Pipe_Read_EStream_BE
+#define TEMPLATE_BUFFER_TYPE void*
+#define TEMPLATE_TOKEN PIPE_TOKEN_IN
+#define TEMPLATE_CLEAR_PIPE() Pipe_ClearIN()
+#define TEMPLATE_BUFFER_OFFSET(Length) (Length - 1)
+#define TEMPLATE_BUFFER_MOVE(BufferPtr, Amount) DataStream -= Amount
+#define TEMPLATE_TRANSFER_BYTE(BufferPtr) eeprom_update_byte(BufferPtr, Pipe_Read_8())
+#include "Template/Template_Pipe_RW.c"
+
+#endif
+
+#endif
+
diff --git a/Maintenance/AS4Template.aps b/Maintenance/AS4Template.aps
index 414a0d5f8..d18aac75d 100644
--- a/Maintenance/AS4Template.aps
+++ b/Maintenance/AS4Template.aps
@@ -1 +1 @@
-<AVRStudio><MANAGEMENT><ProjectName>%TARGET%</ProjectName><Created>%CREATED%</Created><LastEdit>%CREATED%</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>%CREATED%</Created><Version>4</Version><Build>4, 18, 0, 685</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>%TARGET%.elf</ObjectFile><EntryFile></EntryFile></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET></CURRENT_TARGET><CURRENT_PART></CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM></COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES>%FILE_LIST%</FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>makefile</EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>BootloaderCDC.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files>%GCC_FILE_LIST%</Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
+<AVRStudio><MANAGEMENT><ProjectName>%TARGET%</ProjectName><Created>%CREATED%</Created><LastEdit>%CREATED%</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>%CREATED%</Created><Version>4</Version><Build>4, 18, 0, 685</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>%TARGET%.elf</ObjectFile><EntryFile></EntryFile></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET></CURRENT_TARGET><CURRENT_PART></CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM></COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES>%FILE_LIST%</FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>makefile</EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>BootloaderCDC.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files>%GCC_FILE_LIST%</Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
diff --git a/Maintenance/makefile b/Maintenance/makefile
index d9d195193..3f542721a 100644
--- a/Maintenance/makefile
+++ b/Maintenance/makefile
@@ -1,91 +1,91 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-
-# Maintenance scripts not required by general LUFA users, used for project development purposes.
-
-
-# Path to the root of the LUFA tree
-LUFA_ROOT = ../
-
-all:
-
-# Update all Doxygen configuration files to the latest Doxygen version - force Markdown support to be disabled
-upgrade-doxygen:
- @echo Upgrading Doxygen.conf files...
- @for doxygen_conf in `find $(LUFA_ROOT) -name Doxygen.conf`; do \
- doxygen -u $$doxygen_conf; \
- sed "s/MARKDOWN_SUPPORT *= *YES/MARKDOWN_SUPPORT = NO/1" $$doxygen_conf > $$doxygen_conf.new; \
- sed "s/DISABLE_INDEX *= *NO/DISABLE_INDEX = YES/1" $$doxygen_conf.new > $$doxygen_conf.new2; \
- mv -u $$doxygen_conf.new2 $$doxygen_conf; \
- rm $$doxygen_conf.new; \
- done;
- @echo Doxygen configuration update complete.
-
-# Generate AVR Studio 4 project files for each project from a template
-make-as4-projects:
- @echo Creating AVR Studio 4 project files for Demos...
- @for project_makefile in `find $(LUFA_ROOT)/Demos $(LUFA_ROOT)/Projects $(LUFA_ROOT)/Bootloaders -name makefile*`; do \
- target_name=`grep "TARGET *=" $$project_makefile | cut -d'=' -f2 | sed 's/ //g'`; \
- target_folder=`dirname $$project_makefile`; \
- as4_date=`date "+%-e-%b-%Y %-H:%-M:%-S"`; \
- \
- if ( test -n "$$target_name" ); then \
- echo Creating AS4 project for project $$target_name; \
- \
- source_files="<OTHERFILE>`basename $$project_makefile`<\/OTHERFILE>"; \
- gcc_source_files=""; \
- for c_source_file in `find $$target_folder -name *.c`; do \
- source_filename=`basename $$c_source_file`; \
- \
- source_files="$$source_files<SOURCEFILE>$$source_filename<\/SOURCEFILE>"; \
- gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
- done; \
- for c_header_file in `find $$target_folder -name *.h`; do \
- source_filename=`basename $$c_header_file`; \
- \
- source_files="$$source_files<HEADERFILE>$$source_filename<\/HEADERFILE>"; \
- gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
- done; \
- for assembly_file in `find $$target_folder -name *.S`; do \
- source_filename=`basename $$assembly_file`; \
- \
- source_files="$$source_files<OTHERFILE>$$source_filename<\/OTHERFILE>"; \
- gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
- done; \
- \
- sed "s/%TARGET%/$$target_name/g" AS4Template.aps > $$target_folder/$$target_name.aps.new; \
- sed "s/%CREATED%/$$as4_date/g" $$target_folder/$$target_name.aps.new > $$target_folder/$$target_name.aps.new2; \
- sed "s/%FILE_LIST%/$$source_files/g" $$target_folder/$$target_name.aps.new2 > $$target_folder/$$target_name.aps.new3; \
- sed "s/%GCC_FILE_LIST%/$$gcc_source_files/g" $$target_folder/$$target_name.aps.new3 > $$target_folder/$$target_name.aps.new4; \
- mv $$target_folder/$$target_name.aps.new4 $$target_folder/$$target_name.aps; \
- rm $$target_folder/$$target_name.aps.new $$target_folder/$$target_name.aps.new2 $$target_folder/$$target_name.aps.new3; \
- fi; \
- done;
- @echo AVR Studio 4 project generation complete.
-
-# Check the working branch documentation, ensure no placeholder values
-check-documentation-placeholders:
- @echo Checking for release suitability...
- @if ( grep "XXXXXX" $(LUFA_ROOT)/LUFA/DoxygenPages/*.txt > /dev/null ;); then \
- echo " ERROR: Doxygen documentation has not been updated for release!"; \
- exit 1; \
- fi;
- @if ( grep "000000" $(LUFA_ROOT)/LUFA/Version.h > /dev/null ;); then \
- echo " ERROR: Version header has not been updated for release!"; \
- exit 1; \
- fi;
- @echo Done.
-
-# Validate the working branch - compile all documentation, demos/projects/examples and run build tests
-validate-branch:
- make -C $(LUFA_ROOT) doxygen
- make -C $(LUFA_ROOT) all
- make -C $(LUFA_ROOT)/BuildTests all
-
-# Validate the working branch for general release, check for placeholder documentation then build and test everything
-validate-release: check-documentation-placeholders validate-branch
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+
+# Maintenance scripts not required by general LUFA users, used for project development purposes.
+
+
+# Path to the root of the LUFA tree
+LUFA_ROOT = ../
+
+all:
+
+# Update all Doxygen configuration files to the latest Doxygen version - force Markdown support to be disabled
+upgrade-doxygen:
+ @echo Upgrading Doxygen.conf files...
+ @for doxygen_conf in `find $(LUFA_ROOT) -name Doxygen.conf`; do \
+ doxygen -u $$doxygen_conf; \
+ sed "s/MARKDOWN_SUPPORT *= *YES/MARKDOWN_SUPPORT = NO/1" $$doxygen_conf > $$doxygen_conf.new; \
+ sed "s/DISABLE_INDEX *= *NO/DISABLE_INDEX = YES/1" $$doxygen_conf.new > $$doxygen_conf.new2; \
+ mv -u $$doxygen_conf.new2 $$doxygen_conf; \
+ rm $$doxygen_conf.new; \
+ done;
+ @echo Doxygen configuration update complete.
+
+# Generate AVR Studio 4 project files for each project from a template
+make-as4-projects:
+ @echo Creating AVR Studio 4 project files for Demos...
+ @for project_makefile in `find $(LUFA_ROOT)/Demos $(LUFA_ROOT)/Projects $(LUFA_ROOT)/Bootloaders -name makefile*`; do \
+ target_name=`grep "TARGET *=" $$project_makefile | cut -d'=' -f2 | sed 's/ //g'`; \
+ target_folder=`dirname $$project_makefile`; \
+ as4_date=`date "+%-e-%b-%Y %-H:%-M:%-S"`; \
+ \
+ if ( test -n "$$target_name" ); then \
+ echo Creating AS4 project for project $$target_name; \
+ \
+ source_files="<OTHERFILE>`basename $$project_makefile`<\/OTHERFILE>"; \
+ gcc_source_files=""; \
+ for c_source_file in `find $$target_folder -name *.c`; do \
+ source_filename=`basename $$c_source_file`; \
+ \
+ source_files="$$source_files<SOURCEFILE>$$source_filename<\/SOURCEFILE>"; \
+ gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
+ done; \
+ for c_header_file in `find $$target_folder -name *.h`; do \
+ source_filename=`basename $$c_header_file`; \
+ \
+ source_files="$$source_files<HEADERFILE>$$source_filename<\/HEADERFILE>"; \
+ gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
+ done; \
+ for assembly_file in `find $$target_folder -name *.S`; do \
+ source_filename=`basename $$assembly_file`; \
+ \
+ source_files="$$source_files<OTHERFILE>$$source_filename<\/OTHERFILE>"; \
+ gcc_source_files="$$gcc_source_files<Name>$$source_filename<\/Name>"; \
+ done; \
+ \
+ sed "s/%TARGET%/$$target_name/g" AS4Template.aps > $$target_folder/$$target_name.aps.new; \
+ sed "s/%CREATED%/$$as4_date/g" $$target_folder/$$target_name.aps.new > $$target_folder/$$target_name.aps.new2; \
+ sed "s/%FILE_LIST%/$$source_files/g" $$target_folder/$$target_name.aps.new2 > $$target_folder/$$target_name.aps.new3; \
+ sed "s/%GCC_FILE_LIST%/$$gcc_source_files/g" $$target_folder/$$target_name.aps.new3 > $$target_folder/$$target_name.aps.new4; \
+ mv $$target_folder/$$target_name.aps.new4 $$target_folder/$$target_name.aps; \
+ rm $$target_folder/$$target_name.aps.new $$target_folder/$$target_name.aps.new2 $$target_folder/$$target_name.aps.new3; \
+ fi; \
+ done;
+ @echo AVR Studio 4 project generation complete.
+
+# Check the working branch documentation, ensure no placeholder values
+check-documentation-placeholders:
+ @echo Checking for release suitability...
+ @if ( grep "XXXXXX" $(LUFA_ROOT)/LUFA/DoxygenPages/*.txt > /dev/null ;); then \
+ echo " ERROR: Doxygen documentation has not been updated for release!"; \
+ exit 1; \
+ fi;
+ @if ( grep "000000" $(LUFA_ROOT)/LUFA/Version.h > /dev/null ;); then \
+ echo " ERROR: Version header has not been updated for release!"; \
+ exit 1; \
+ fi;
+ @echo Done.
+
+# Validate the working branch - compile all documentation, demos/projects/examples and run build tests
+validate-branch:
+ make -C $(LUFA_ROOT) doxygen
+ make -C $(LUFA_ROOT) all
+ make -C $(LUFA_ROOT)/BuildTests all
+
+# Validate the working branch for general release, check for placeholder documentation then build and test everything
+validate-release: check-documentation-placeholders validate-branch
diff --git a/Projects/SerialToLCD/SerialToLCD.txt b/Projects/SerialToLCD/SerialToLCD.txt
index 8058ee52d..cb30b6bc2 100644
--- a/Projects/SerialToLCD/SerialToLCD.txt
+++ b/Projects/SerialToLCD/SerialToLCD.txt
@@ -1,97 +1,97 @@
-/** \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 Simon Foster's USB Serial to HD44780 LCD Project
- *
- * \section Sec_Compat Project Compatibility:
- *
- * The following list indicates what microcontrollers are compatible with this project.
- *
- * \li AT90USB162
- *
- * \section Sec_Info USB Information:
- *
- * The following table gives a rundown of the USB utilization of this project.
- *
- * <table>
- * <tr>
- * <td><b>USB Mode:</b></td>
- * <td>Device</td>
- * </tr>
- * <tr>
- * <td><b>USB Class:</b></td>
- * <td>Communications Device Class (CDC)</td>
- * </tr>
- * <tr>
- * <td><b>USB Subclass:</b></td>
- * <td>Abstract Control Model (ACM)</td>
- * </tr>
- * <tr>
- * <td><b>Relevant Standards:</b></td>
- * <td>USBIF CDC Class Standard</td>
- * </tr>
- * <tr>
- * <td><b>Supported USB Speeds:</b></td>
- * <td>Full Speed Mode</td>
- * </tr>
- * </table>
- *
- * \section Sec_Description Project Description:
- *
- * Firmware for a USB Virtual Serial to HD44780 LCD controller project, by Simon Foster. This
- * project connects a standard HD7780 compatible LCD controller to a PC via a virtual serial
- * link, so that data supplied by the host can be written to the display. This project is
- * designed to use the Minimum USB AVR board, however it can be modified to suit other hardware
- * if desired.
- *
- * LCD Datasheet: http://www.sparkfun.com/datasheets/LCD/HD44780.pdf \n
- * More Information: http://en.wikipedia.org/wiki/HD44780_Character_LCD \n
- *
- * Below are the connections between the AVR Minimus board and LCD.
- *
- * <table>
- * <tr>
- * <td><b>AVR Pin:</b></td>
- * <td><b>HD44780 LCD Pin:</b></td>
- * </tr>
- * <tr>
- * <td>VCC</td>
- * <td>VCC</td>
- * </tr>
- * <tr>
- * <td>GND</td>
- * <td>GND</td>
- * </tr>
- * <tr>
- * <td>PD0</td>
- * <td>DB4</td>
- * </tr>
- * <tr>
- * <td>PD1</td>
- * <td>DB5</td>
- * </tr>
- * <tr>
- * <td>PD2</td>
- * <td>DB6</td>
- * </tr>
- * <tr>
- * <td>PD3</td>
- * <td>DB7</td>
- * </tr>
- * <tr>
- * <td>PD4</td>
- * <td>/RS</td>
- * </tr>
- * <tr>
- * <td>GND</td>
- * <td>/RW</td>
- * </tr>
- * <tr>
- * <td>PD7</td>
- * <td>/E</td>
- * </tr>
- * </table>
- */
+/** \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 Simon Foster's USB Serial to HD44780 LCD Project
+ *
+ * \section Sec_Compat Project Compatibility:
+ *
+ * The following list indicates what microcontrollers are compatible with this project.
+ *
+ * \li AT90USB162
+ *
+ * \section Sec_Info USB Information:
+ *
+ * The following table gives a rundown of the USB utilization of this project.
+ *
+ * <table>
+ * <tr>
+ * <td><b>USB Mode:</b></td>
+ * <td>Device</td>
+ * </tr>
+ * <tr>
+ * <td><b>USB Class:</b></td>
+ * <td>Communications Device Class (CDC)</td>
+ * </tr>
+ * <tr>
+ * <td><b>USB Subclass:</b></td>
+ * <td>Abstract Control Model (ACM)</td>
+ * </tr>
+ * <tr>
+ * <td><b>Relevant Standards:</b></td>
+ * <td>USBIF CDC Class Standard</td>
+ * </tr>
+ * <tr>
+ * <td><b>Supported USB Speeds:</b></td>
+ * <td>Full Speed Mode</td>
+ * </tr>
+ * </table>
+ *
+ * \section Sec_Description Project Description:
+ *
+ * Firmware for a USB Virtual Serial to HD44780 LCD controller project, by Simon Foster. This
+ * project connects a standard HD7780 compatible LCD controller to a PC via a virtual serial
+ * link, so that data supplied by the host can be written to the display. This project is
+ * designed to use the Minimum USB AVR board, however it can be modified to suit other hardware
+ * if desired.
+ *
+ * LCD Datasheet: http://www.sparkfun.com/datasheets/LCD/HD44780.pdf \n
+ * More Information: http://en.wikipedia.org/wiki/HD44780_Character_LCD \n
+ *
+ * Below are the connections between the AVR Minimus board and LCD.
+ *
+ * <table>
+ * <tr>
+ * <td><b>AVR Pin:</b></td>
+ * <td><b>HD44780 LCD Pin:</b></td>
+ * </tr>
+ * <tr>
+ * <td>VCC</td>
+ * <td>VCC</td>
+ * </tr>
+ * <tr>
+ * <td>GND</td>
+ * <td>GND</td>
+ * </tr>
+ * <tr>
+ * <td>PD0</td>
+ * <td>DB4</td>
+ * </tr>
+ * <tr>
+ * <td>PD1</td>
+ * <td>DB5</td>
+ * </tr>
+ * <tr>
+ * <td>PD2</td>
+ * <td>DB6</td>
+ * </tr>
+ * <tr>
+ * <td>PD3</td>
+ * <td>DB7</td>
+ * </tr>
+ * <tr>
+ * <td>PD4</td>
+ * <td>/RS</td>
+ * </tr>
+ * <tr>
+ * <td>GND</td>
+ * <td>/RW</td>
+ * </tr>
+ * <tr>
+ * <td>PD7</td>
+ * <td>/E</td>
+ * </tr>
+ * </table>
+ */
diff --git a/Projects/SerialToLCD/makefile b/Projects/SerialToLCD/makefile
index 4c1fdef61..2c74f5fbc 100644
--- a/Projects/SerialToLCD/makefile
+++ b/Projects/SerialToLCD/makefile
@@ -1,35 +1,35 @@
-#
-# LUFA Library
-# Copyright (C) Dean Camera, 2012.
-#
-# dean [at] fourwalledcubicle [dot] com
-# www.lufa-lib.org
-#
-# --------------------------------------
-# LUFA Project Makefile.
-# --------------------------------------
-
-MCU = at90usb162
-ARCH = AVR8
-BOARD = MINIMUS
-F_CPU = 16000000
-F_USB = $(F_CPU)
-OPTIMIZATION = s
-TARGET = SerialToLCD
-SRC = $(TARGET).c Descriptors.c Lib/HD44780.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
-LUFA_PATH = ../../LUFA/
-CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/
-LD_FLAGS =
-
-# Default target
-all:
-
-# Include LUFA build script makefiles
-include $(LUFA_PATH)/Build/lufa.core.in
-include $(LUFA_PATH)/Build/lufa.sources.in
-include $(LUFA_PATH)/Build/lufa.build.in
-include $(LUFA_PATH)/Build/lufa.cppcheck.in
-include $(LUFA_PATH)/Build/lufa.doxygen.in
-include $(LUFA_PATH)/Build/lufa.dfu.in
-include $(LUFA_PATH)/Build/lufa.avrdude.in
-include $(LUFA_PATH)/Build/lufa.atprogram.in
+#
+# LUFA Library
+# Copyright (C) Dean Camera, 2012.
+#
+# dean [at] fourwalledcubicle [dot] com
+# www.lufa-lib.org
+#
+# --------------------------------------
+# LUFA Project Makefile.
+# --------------------------------------
+
+MCU = at90usb162
+ARCH = AVR8
+BOARD = MINIMUS
+F_CPU = 16000000
+F_USB = $(F_CPU)
+OPTIMIZATION = s
+TARGET = SerialToLCD
+SRC = $(TARGET).c Descriptors.c Lib/HD44780.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS)
+LUFA_PATH = ../../LUFA/
+CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/
+LD_FLAGS =
+
+# Default target
+all:
+
+# Include LUFA build script makefiles
+include $(LUFA_PATH)/Build/lufa.core.in
+include $(LUFA_PATH)/Build/lufa.sources.in
+include $(LUFA_PATH)/Build/lufa.build.in
+include $(LUFA_PATH)/Build/lufa.cppcheck.in
+include $(LUFA_PATH)/Build/lufa.doxygen.in
+include $(LUFA_PATH)/Build/lufa.dfu.in
+include $(LUFA_PATH)/Build/lufa.avrdude.in
+include $(LUFA_PATH)/Build/lufa.atprogram.in