Update SVN line endings property on newer source files to native.
authorDean Camera <dean@fourwalledcubicle.com>
Thu, 7 Jun 2012 20:49:47 +0000 (20:49 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Thu, 7 Jun 2012 20:49:47 +0000 (20:49 +0000)
36 files changed:
BuildTests/BoardDriverTest/BoardDeviceMap.cfg
BuildTests/BoardDriverTest/makefile
BuildTests/BoardDriverTest/makefile.test
BuildTests/BootloaderTest/BootloaderDeviceMap.cfg
BuildTests/BootloaderTest/makefile
BuildTests/ModuleTest/Dummy.S
BuildTests/ModuleTest/Modules.h
BuildTests/ModuleTest/Test_C.c
BuildTests/ModuleTest/Test_CPP.cpp
BuildTests/ModuleTest/makefile
BuildTests/ModuleTest/makefile.test
BuildTests/SingleUSBModeTest/Dummy.S
BuildTests/SingleUSBModeTest/Test.c
BuildTests/SingleUSBModeTest/makefile
BuildTests/SingleUSBModeTest/makefile.test
BuildTests/StaticAnalysisTest/makefile
BuildTests/makefile
LUFA/Build/lufa.atprogram.in
LUFA/Build/lufa.avrdude.in
LUFA/Build/lufa.build.in
LUFA/Build/lufa.core.in
LUFA/Build/lufa.cppcheck.in
LUFA/Build/lufa.dfu.in
LUFA/Build/lufa.doxygen.in
LUFA/Build/lufa.sources.in
LUFA/CodeTemplates/makefile_template
LUFA/DoxygenPages/ExportingLibrary.txt
LUFA/DoxygenPages/KnownIssues.txt
LUFA/DoxygenPages/Style/Style.css
LUFA/Drivers/Board/AVR8/BIGMULTIO/LEDs.h
LUFA/Drivers/Board/AVR8/MULTIO/LEDs.h
LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
Maintenance/AS4Template.aps
Maintenance/makefile
Projects/SerialToLCD/SerialToLCD.txt
Projects/SerialToLCD/makefile

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