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