diff options
Diffstat (limited to 'BuildTests/ModuleTest')
-rw-r--r-- | BuildTests/ModuleTest/Dummy.S | 41 | ||||
-rw-r--r-- | BuildTests/ModuleTest/Modules.h | 56 | ||||
-rw-r--r-- | BuildTests/ModuleTest/Test_C.c | 31 | ||||
-rw-r--r-- | BuildTests/ModuleTest/Test_CPP.cpp | 31 | ||||
-rw-r--r-- | BuildTests/ModuleTest/makefile | 67 | ||||
-rw-r--r-- | BuildTests/ModuleTest/makefile.test | 94 |
6 files changed, 320 insertions, 0 deletions
diff --git a/BuildTests/ModuleTest/Dummy.S b/BuildTests/ModuleTest/Dummy.S new file mode 100644 index 0000000000..b44cf4c256 --- /dev/null +++ b/BuildTests/ModuleTest/Dummy.S @@ -0,0 +1,41 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 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 disclaims 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 new file mode 100644 index 0000000000..686183245d --- /dev/null +++ b/BuildTests/ModuleTest/Modules.h @@ -0,0 +1,56 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 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 disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#include <LUFA/Common/Common.h> + +#include <LUFA/Platform/Platform.h> + +#include <LUFA/Drivers/USB/USB.h> +#include <LUFA/Drivers/Misc/RingBuffer.h> +#include <LUFA/Drivers/Misc/TerminalCodes.h> + +#if (ARCH == ARCH_AVR8) + #if defined(ADC) + #include <LUFA/Drivers/Peripheral/ADC.h> + #endif + + #include <LUFA/Drivers/Peripheral/Serial.h> + #include <LUFA/Drivers/Peripheral/SerialSPI.h> + #include <LUFA/Drivers/Peripheral/SPI.h> + + #if defined(TWCR) + #include <LUFA/Drivers/Peripheral/TWI.h> + #endif +#elif (ARCH == ARCH_XMEGA) + #include <LUFA/Drivers/Peripheral/Serial.h> + #include <LUFA/Drivers/Peripheral/SerialSPI.h> + #include <LUFA/Drivers/Peripheral/SPI.h> + #include <LUFA/Drivers/Peripheral/TWI.h> +#endif diff --git a/BuildTests/ModuleTest/Test_C.c b/BuildTests/ModuleTest/Test_C.c new file mode 100644 index 0000000000..3c3f5a2ab7 --- /dev/null +++ b/BuildTests/ModuleTest/Test_C.c @@ -0,0 +1,31 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 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 disclaims 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" diff --git a/BuildTests/ModuleTest/Test_CPP.cpp b/BuildTests/ModuleTest/Test_CPP.cpp new file mode 100644 index 0000000000..3c3f5a2ab7 --- /dev/null +++ b/BuildTests/ModuleTest/Test_CPP.cpp @@ -0,0 +1,31 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 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 disclaims 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" diff --git a/BuildTests/ModuleTest/makefile b/BuildTests/ModuleTest/makefile new file mode 100644 index 0000000000..50f1909a38 --- /dev/null +++ b/BuildTests/ModuleTest/makefile @@ -0,0 +1,67 @@ +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# 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/ + +# Build test cannot be run with multiple parallel jobs +.NOTPARALLEL: + +# 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: + @echo Building ModuleTest for ARCH=AVR8 MCU=$(@:%.avr8=%)... + $(MAKE) -f makefile.test clean elf ARCH=AVR8 MCU=$(@:%.avr8=%) + +%.xmega: + @echo Building ModuleTest for ARCH=XMEGA MCU=$(@:%.xmega=%)... + $(MAKE) -f makefile.test clean elf ARCH=XMEGA MCU=$(@:%.xmega=%) + +%.uc3: + @echo Building ModuleTest for ARCH=UC3 MCU=$(@:%.uc3=%)... + $(MAKE) -f makefile.test clean elf ARCH=UC3 MCU=$(@:%.uc3=%) + +clean: + $(MAKE) -f makefile.test clean ARCH=AVR8 MCU=$(firstword $(AVR8_FAMILIES)) + $(MAKE) -f makefile.test clean ARCH=XMEGA MCU=$(firstword $(XMEGA_FAMILIES)) + $(MAKE) -f makefile.test clean ARCH=UC3 MCU=$(firstword $(UC3_FAMILIES)) + +%: + +.PHONY: all arch_avr8 arch_xmega arch_uc3 begin end + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk diff --git a/BuildTests/ModuleTest/makefile.test b/BuildTests/ModuleTest/makefile.test new file mode 100644 index 0000000000..5eeb40398c --- /dev/null +++ b/BuildTests/ModuleTest/makefile.test @@ -0,0 +1,94 @@ +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +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 +DEBUG_LEVEL = 0 + +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 +CC_FLAGS += -Wswitch-default +CC_FLAGS += -Wfloat-equal +CC_FLAGS += -Waggregate-return +CC_FLAGS += -Wmissing-include-dirs + +# Disable warnings not supported by the version of GCC used for UC3 targets (FIXME) +ifneq ($(ARCH), UC3) + CC_FLAGS += -Wdouble-promotion +endif + +# Only enable redundant 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 += -Wmissing-prototypes +C_FLAGS += -Wnested-externs +C_FLAGS += -Wbad-function-cast +C_FLAGS += -Wstrict-prototypes +C_FLAGS += -Wold-style-definition + +# Disable warnings not supported by the version of GCC used for UC3 targets (FIXME) +ifneq ($(ARCH), UC3) + C_FLAGS += -Wunsuffixed-float-constants + C_FLAGS += -Wjump-misses-init +endif + +# Only check C++ compatibility on the build files, to ensure headers are C++ compatible +Test_C.c Test_CPP.cpp: CC_FLAGS += -Wc++-compat + +# Potential additional warnings to enable in the future (FIXME) +#CC_FLAGS += -Wcast-qual +#CC_FLAGS += -Wconversion +#CC_FLAGS += -Wsign-conversion +#CC_FLAGS += -pedantic + +# Include LUFA-specific DMBS extension modules +DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA +include $(DMBS_LUFA_PATH)/lufa-sources.mk +include $(DMBS_LUFA_PATH)/lufa-gcc.mk + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk +include $(DMBS_PATH)/gcc.mk |