+ #include "Config/AppConfig.h"
+
/* Macros: */
/** TCP listen port for incoming TELNET traffic. */
#define TELNET_SERVER_PORT 23
diff --git a/Projects/Webserver/Lib/uip/uipopt.h b/Projects/Webserver/Lib/uip/uipopt.h
index 17f703312a..520c03f25e 100644
--- a/Projects/Webserver/Lib/uip/uipopt.h
+++ b/Projects/Webserver/Lib/uip/uipopt.h
@@ -62,6 +62,8 @@
#ifndef __UIPOPT_H__
#define __UIPOPT_H__
+#include "Config/AppConfig.h"
+
#ifndef UIP_LITTLE_ENDIAN
#define UIP_LITTLE_ENDIAN 3412
#endif /* UIP_LITTLE_ENDIAN */
diff --git a/Projects/Webserver/Webserver.txt b/Projects/Webserver/Webserver.txt
index 32bdb597a3..9b466d9d0e 100644
--- a/Projects/Webserver/Webserver.txt
+++ b/Projects/Webserver/Webserver.txt
@@ -81,18 +81,18 @@
*
*
* ENABLE_TELNET_SERVER |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* When defined, this enables the TELNET server in addition to the HTTP webserver, which listens for incoming connections
* and processes user commands. |
*
*
* ENABLE_DHCP_CLIENT |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* When defined, this enables the DHCP client for dynamic IP allocation of the network settings from a DHCP server. |
*
*
* ENABLE_DHCP_SERVER |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* When defined, this enables the DHCP server for dynamic IP allocation of the network settings to a DHCP client. |
*
*
@@ -113,7 +113,7 @@
*
*
* MAX_URI_LENGTH |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* Maximum length of a URI for the Webserver. This is the maximum file path, including subdirectories and separators. |
*
*
diff --git a/Projects/Webserver/makefile b/Projects/Webserver/makefile
index b67c6c6f6c..53bd17387e 100644
--- a/Projects/Webserver/makefile
+++ b/Projects/Webserver/makefile
@@ -120,34 +120,7 @@ LUFA_PATH = ../..
# LUFA library compile-time options and predefined tokens
-LUFA_OPTS = -D FIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D INTERRUPT_CONTROL_ENDPOINT
-
-LUFA_OPTS += -D ENABLE_DHCP_CLIENT
-LUFA_OPTS += -D ENABLE_DHCP_SERVER
-LUFA_OPTS += -D ENABLE_TELNET_SERVER
-LUFA_OPTS += -D MAX_URI_LENGTH=50
-
-LUFA_OPTS += -D UIP_CONF_UDP="defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER)"
-LUFA_OPTS += -D UIP_CONF_BROADCAST=1
-LUFA_OPTS += -D UIP_CONF_TCP=1
-LUFA_OPTS += -D UIP_CONF_UDP_CONNS=1
-LUFA_OPTS += -D UIP_CONF_MAX_CONNECTIONS=3
-LUFA_OPTS += -D UIP_CONF_MAX_LISTENPORTS=5
-LUFA_OPTS += -D UIP_CONF_BUFFER_SIZE=1514
-LUFA_OPTS += -D UIP_CONF_LL_802154=0
-LUFA_OPTS += -D UIP_CONF_LL_80211=0
-LUFA_OPTS += -D UIP_CONF_ROUTER=0
-LUFA_OPTS += -D UIP_CONF_ICMP6=0
-LUFA_OPTS += -D UIP_CONF_ICMP_DEST_UNREACH=1
-LUFA_OPTS += -D UIP_URGDATA=0
-LUFA_OPTS += -D UIP_ARCH_CHKSUM=0
-LUFA_OPTS += -D UIP_ARCH_ADD32=0
-LUFA_OPTS += -D UIP_NEIGHBOR_CONF_ADDRTYPE=0
+LUFA_OPTS = -D USE_LUFA_CONFIG_HEADER
# Create the LUFA source path variables by including the LUFA root makefile
@@ -209,7 +182,7 @@ DEBUG = dwarf-2
# Each directory must be seperated by a space.
# Use forward slashes for directory separators.
# For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
+EXTRAINCDIRS = $(LUFA_PATH)/ Config/ Lib/uip/ Lib/uip/conf/ Lib/FATFs/
# Compiler flag to set the C Standard level.
diff --git a/Projects/Incomplete/StandaloneProgrammer/DiskHost.h b/Projects/XPLAINBridge/Config/AppConfig.h
similarity index 55%
rename from Projects/Incomplete/StandaloneProgrammer/DiskHost.h
rename to Projects/XPLAINBridge/Config/AppConfig.h
index 1f8ed212c6..3fe80171d4 100644
--- a/Projects/Incomplete/StandaloneProgrammer/DiskHost.h
+++ b/Projects/XPLAINBridge/Config/AppConfig.h
@@ -29,34 +29,36 @@
*/
/** \file
+ * \brief Application Configuration Header File
*
- * Header file for DiskHost.c.
+ * This is a header file which is be used to configure some of
+ * the application's compile time options, as an alternative to
+ * specifying the compile time constants supplied through a
+ * makefile or build system.
+ *
+ * For information on what each token does, refer to the
+ * \ref Sec_Options section of the application documentation.
*/
-#ifndef _DISK_HOST_H_
-#define _DISK_HOST_H_
-
- /* Includes: */
- #include
-
- #include "Descriptors.h"
- #include "StandaloneProgrammer.h"
-
- #include
- #include
+#ifndef _APP_CONFIG_H_
+#define _APP_CONFIG_H_
- /* External Variables: */
- #if defined(USB_CAN_BE_HOST)
- extern USB_ClassInfo_MS_Host_t DiskHost_MS_Interface;
- #endif
+ #define AUX_LINE_PORT PORTB
+ #define AUX_LINE_PIN PINB
+ #define AUX_LINE_DDR DDRB
+ #define AUX_LINE_MASK (1 << 4)
- /* Function Prototypes: */
- #if defined(USB_CAN_BE_HOST)
- void DiskHost_USBTask(void);
+ #define ENABLE_XPROG_PROTOCOL
- void EVENT_USB_Host_DeviceAttached(void);
- void EVENT_USB_Host_DeviceUnattached(void);
- #endif
+ #define VTARGET_ADC_CHANNEL 2
+ #define VTARGET_REF_VOLTS 3.3
+ #define VTARGET_SCALE_FACTOR 2
+// #define VTARGET_USE_INTERNAL_REF
+// #define NO_VTARGET_DETECT
+// #define XCK_RESCUE_CLOCK_ENABLE
+// #define INVERTED_ISP_MISO
-#endif
+// #define LIBUSB_DRIVER_COMPAT
+// #define FIRMWARE_VERSION_MINOR 0x11
+#endif
\ No newline at end of file
diff --git a/Projects/XPLAINBridge/Config/LUFAConfig.h b/Projects/XPLAINBridge/Config/LUFAConfig.h
new file mode 100644
index 0000000000..4cd8b39f1c
--- /dev/null
+++ b/Projects/XPLAINBridge/Config/LUFAConfig.h
@@ -0,0 +1,93 @@
+/*
+ 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 LUFA Library Configuration Header File
+ *
+ * This header file is used to configure LUFA's compile time options,
+ * as an alternative to the compile time constants supplied through
+ * a makefile.
+ *
+ * For information on what each token does, refer to the LUFA
+ * manual section "Summary of Compile Tokens".
+ */
+
+#ifndef _LUFA_CONFIG_H_
+#define _LUFA_CONFIG_H_
+
+ #if (ARCH == ARCH_AVR8)
+
+ /* Non-USB Related Configuration Tokens: */
+// #define DISABLE_TERMINAL_CODES
+
+ /* USB Class Driver Related Tokens: */
+// #define HID_HOST_BOOT_PROTOCOL_ONLY
+// #define HID_STATETABLE_STACK_DEPTH {Insert Value Here}
+// #define HID_USAGE_STACK_DEPTH {Insert Value Here}
+// #define HID_MAX_COLLECTIONS {Insert Value Here}
+// #define HID_MAX_REPORTITEMS {Insert Value Here}
+// #define HID_MAX_REPORT_IDS {Insert Value Here}
+// #define NO_CLASS_DRIVER_AUTOFLUSH
+
+ /* General USB Driver Related Tokens: */
+ #define ORDERED_EP_CONFIG
+ #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
+ #define USB_DEVICE_ONLY
+// #define USB_HOST_ONLY
+// #define USB_STREAM_TIMEOUT_MS {Insert Value Here}
+// #define NO_LIMITED_CONTROLLER_CONNECT
+ #define NO_SOF_EVENTS
+
+ /* USB Device Mode Driver Related Tokens: */
+// #define USE_RAM_DESCRIPTORS
+ #define USE_FLASH_DESCRIPTORS
+// #define USE_EEPROM_DESCRIPTORS
+// #define NO_INTERNAL_SERIAL
+ #define FIXED_CONTROL_ENDPOINT_SIZE 16
+ #define DEVICE_STATE_AS_GPIOR 0
+ #define FIXED_NUM_CONFIGURATIONS 1
+// #define CONTROL_ONLY_DEVICE
+// #define INTERRUPT_CONTROL_ENDPOINT
+ #define NO_DEVICE_REMOTE_WAKEUP
+ #define NO_DEVICE_SELF_POWER
+
+ /* USB Host Mode Driver Related Tokens: */
+// #define HOST_STATE_AS_GPIOR {Insert Value Here}
+// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
+// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
+// #define NO_AUTO_VBUS_MANAGEMENT
+// #define INVERTED_VBUS_ENABLE_LINE
+
+ #else
+
+ #error Unsupported architecture for this LUFA configuration file.
+
+ #endif
+#endif
diff --git a/Projects/XPLAINBridge/USARTDescriptors.c b/Projects/XPLAINBridge/USARTDescriptors.c
index 6c131afd4c..1b265411c6 100644
--- a/Projects/XPLAINBridge/USARTDescriptors.c
+++ b/Projects/XPLAINBridge/USARTDescriptors.c
@@ -37,17 +37,6 @@
#include "USARTDescriptors.h"
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
- #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
* device characteristics, including the supported USB version, control endpoint size and the
diff --git a/Projects/XPLAINBridge/XPLAINBridge.h b/Projects/XPLAINBridge/XPLAINBridge.h
index 33c66bf516..7bba40fef8 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.h
+++ b/Projects/XPLAINBridge/XPLAINBridge.h
@@ -48,6 +48,7 @@
#include "Lib/V2Protocol.h"
#include "Lib/SoftUART.h"
+ #include "Config/AppConfig.h"
#include
#include
diff --git a/Projects/XPLAINBridge/XPLAINBridge.txt b/Projects/XPLAINBridge/XPLAINBridge.txt
index e71d06ad79..0d02392bb5 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.txt
+++ b/Projects/XPLAINBridge/XPLAINBridge.txt
@@ -80,13 +80,13 @@
*
*
* LIBUSB_DRIVER_COMPAT |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
* the code compatible with software such as avrdude (all platforms) that use the libUSB driver. |
*
*
* FIRMWARE_VERSION_MINOR |
- * Makefile LUFA_OPTS |
+ * AppConfig.h |
* Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
* with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here. |
*
diff --git a/Projects/XPLAINBridge/makefile b/Projects/XPLAINBridge/makefile
index fec131b4f0..63c474eb7e 100644
--- a/Projects/XPLAINBridge/makefile
+++ b/Projects/XPLAINBridge/makefile
@@ -124,25 +124,7 @@ AVRISP_PATH = ../AVRISP-MKII
# LUFA library compile-time options and predefined tokens
-LUFA_OPTS = -D USB_DEVICE_ONLY
-LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0
-LUFA_OPTS += -D ORDERED_EP_CONFIG
-LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=16
-LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
-LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
-LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-LUFA_OPTS += -D NO_DEVICE_REMOTE_WAKEUP
-LUFA_OPTS += -D NO_DEVICE_SELF_POWER
-
-LUFA_OPTS += -D AUX_LINE_PORT=PORTB
-LUFA_OPTS += -D AUX_LINE_PIN=PINB
-LUFA_OPTS += -D AUX_LINE_DDR=DDRB
-LUFA_OPTS += -D AUX_LINE_MASK="(1 << 4)"
-LUFA_OPTS += -D VTARGET_ADC_CHANNEL=2
-LUFA_OPTS += -D VTARGET_REF_VOLTS=3.3
-LUFA_OPTS += -D VTARGET_SCALE_FACTOR=2
-#LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
-#LUFA_OPTS += -D FIRMWARE_VERSION_MINOR=0x11
+LUFA_OPTS = -D USE_LUFA_CONFIG_HEADER
# Create the LUFA source path variables by including the LUFA root makefile
include $(LUFA_PATH)/LUFA/makefile
@@ -196,7 +178,7 @@ DEBUG = dwarf-2
# Each directory must be seperated by a space.
# Use forward slashes for directory separators.
# For a directory that has spaces, enclose it in quotes.
-EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/
+EXTRAINCDIRS = $(LUFA_PATH)/ $(AVRISP_PATH)/ Config/
# Compiler flag to set the C Standard level.