aboutsummaryrefslogtreecommitdiffstats
path: root/Projects/Webserver
diff options
context:
space:
mode:
Diffstat (limited to 'Projects/Webserver')
-rw-r--r--Projects/Webserver/Config/AppConfig.h68
-rw-r--r--Projects/Webserver/Config/LUFAConfig.h93
-rw-r--r--Projects/Webserver/Descriptors.c11
-rw-r--r--Projects/Webserver/Lib/DHCPClientApp.c4
-rw-r--r--Projects/Webserver/Lib/DHCPClientApp.h1
-rw-r--r--Projects/Webserver/Lib/DHCPCommon.c4
-rw-r--r--Projects/Webserver/Lib/DHCPCommon.h2
-rw-r--r--Projects/Webserver/Lib/DHCPServerApp.c4
-rw-r--r--Projects/Webserver/Lib/DHCPServerApp.h1
-rw-r--r--Projects/Webserver/Lib/HTTPServerApp.h2
-rw-r--r--Projects/Webserver/Lib/TELNETServerApp.c4
-rw-r--r--Projects/Webserver/Lib/TELNETServerApp.h2
-rw-r--r--Projects/Webserver/Lib/uip/uipopt.h2
-rw-r--r--Projects/Webserver/Webserver.txt8
-rw-r--r--Projects/Webserver/makefile31
15 files changed, 185 insertions, 52 deletions
diff --git a/Projects/Webserver/Config/AppConfig.h b/Projects/Webserver/Config/AppConfig.h
new file mode 100644
index 000000000..e2a9cd4de
--- /dev/null
+++ b/Projects/Webserver/Config/AppConfig.h
@@ -0,0 +1,68 @@
+/*
+ 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 Application Configuration Header File
+ *
+ * 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 _APP_CONFIG_H_
+#define _APP_CONFIG_H_
+
+ #define ENABLE_DHCP_CLIENT
+ #define ENABLE_DHCP_SERVER
+ #define ENABLE_TELNET_SERVER
+ #define MAX_URI_LENGTH 50
+
+ #define UIP_CONF_UDP (defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER))
+ #define UIP_CONF_BROADCAST 1
+ #define UIP_CONF_TCP 1
+ #define UIP_CONF_UDP_CONNS 1
+ #define UIP_CONF_MAX_CONNECTIONS 3
+ #define UIP_CONF_MAX_LISTENPORTS 5
+ #define UIP_CONF_BUFFER_SIZE 1514
+ #define UIP_CONF_LL_802154 0
+ #define UIP_CONF_LL_80211 0
+ #define UIP_CONF_ROUTER 0
+ #define UIP_CONF_ICMP6 0
+ #define UIP_CONF_ICMP_DEST_UNREACH 1
+ #define UIP_URGDATA 0
+ #define UIP_ARCH_CHKSUM 0
+ #define UIP_ARCH_ADD32 0
+ #define UIP_NEIGHBOR_CONF_ADDRTYPE 0
+
+#endif \ No newline at end of file
diff --git a/Projects/Webserver/Config/LUFAConfig.h b/Projects/Webserver/Config/LUFAConfig.h
new file mode 100644
index 000000000..b794426b9
--- /dev/null
+++ b/Projects/Webserver/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 8
+ #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 0
+// #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/Webserver/Descriptors.c b/Projects/Webserver/Descriptors.c
index 57519c864..a82ccc0a4 100644
--- a/Projects/Webserver/Descriptors.c
+++ b/Projects/Webserver/Descriptors.c
@@ -37,17 +37,6 @@
#include "Descriptors.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/Webserver/Lib/DHCPClientApp.c b/Projects/Webserver/Lib/DHCPClientApp.c
index 1a564ca3e..91c0f1f06 100644
--- a/Projects/Webserver/Lib/DHCPClientApp.c
+++ b/Projects/Webserver/Lib/DHCPClientApp.c
@@ -28,8 +28,6 @@
this software.
*/
-#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)
-
/** \file
*
* DHCP Client Application. When connected to the uIP stack, this will retrieve IP configuration settings from the
@@ -39,6 +37,8 @@
#define INCLUDE_FROM_DHCPCLIENTAPP_C
#include "DHCPClientApp.h"
+#if defined(ENABLE_DHCP_CLIENT) || defined(__DOXYGEN__)
+
/** Initialization function for the DHCP client. */
void DHCPClientApp_Init(void)
{
diff --git a/Projects/Webserver/Lib/DHCPClientApp.h b/Projects/Webserver/Lib/DHCPClientApp.h
index 21c5e435a..b5ce11cbc 100644
--- a/Projects/Webserver/Lib/DHCPClientApp.h
+++ b/Projects/Webserver/Lib/DHCPClientApp.h
@@ -41,6 +41,7 @@
#include <uip.h>
+ #include "Config/AppConfig.h"
#include "../Webserver.h"
#include "DHCPCommon.h"
diff --git a/Projects/Webserver/Lib/DHCPCommon.c b/Projects/Webserver/Lib/DHCPCommon.c
index f2b999756..b0fe37d04 100644
--- a/Projects/Webserver/Lib/DHCPCommon.c
+++ b/Projects/Webserver/Lib/DHCPCommon.c
@@ -28,8 +28,6 @@
this software.
*/
-#if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
/** \file
*
* Common DHCP routines to manage DHCP packet data.
@@ -37,6 +35,8 @@
#include "DHCPCommon.h"
+#if defined(ENABLE_DHCP_CLIENT) || defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
+
/** Sets the given DHCP option in the DHCP packet's option list. This automatically moves the
* end of options terminator past the new option in the options list.
*
diff --git a/Projects/Webserver/Lib/DHCPCommon.h b/Projects/Webserver/Lib/DHCPCommon.h
index 797aa571b..dc8dcdfbc 100644
--- a/Projects/Webserver/Lib/DHCPCommon.h
+++ b/Projects/Webserver/Lib/DHCPCommon.h
@@ -41,6 +41,8 @@
#include <stdbool.h>
#include <string.h>
+ #include "Config/AppConfig.h"
+
#include <uip.h>
/* Macros: */
diff --git a/Projects/Webserver/Lib/DHCPServerApp.c b/Projects/Webserver/Lib/DHCPServerApp.c
index e2b72af27..05ae4e9e2 100644
--- a/Projects/Webserver/Lib/DHCPServerApp.c
+++ b/Projects/Webserver/Lib/DHCPServerApp.c
@@ -28,8 +28,6 @@
this software.
*/
-#if defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
-
/** \file
*
* DHCP Server Application. When connected to the uIP stack, this will send IP configuration settings to a
@@ -39,6 +37,8 @@
#define INCLUDE_FROM_DHCPSERVERAPP_C
#include "DHCPServerApp.h"
+#if defined(ENABLE_DHCP_SERVER) || defined(__DOXYGEN__)
+
struct uip_conn* BroadcastConnection;
uint8_t LeasedIPs[255 / 8];
diff --git a/Projects/Webserver/Lib/DHCPServerApp.h b/Projects/Webserver/Lib/DHCPServerApp.h
index 151319b5d..d41df3776 100644
--- a/Projects/Webserver/Lib/DHCPServerApp.h
+++ b/Projects/Webserver/Lib/DHCPServerApp.h
@@ -41,6 +41,7 @@
#include <uip.h>
+ #include "Config/AppConfig.h"
#include "../Webserver.h"
#include "DHCPCommon.h"
diff --git a/Projects/Webserver/Lib/HTTPServerApp.h b/Projects/Webserver/Lib/HTTPServerApp.h
index 526e75804..e3678e845 100644
--- a/Projects/Webserver/Lib/HTTPServerApp.h
+++ b/Projects/Webserver/Lib/HTTPServerApp.h
@@ -41,6 +41,8 @@
#include <string.h>
#include <LUFA/Version.h>
+
+ #include "Config/AppConfig.h"
#include <uip.h>
#include <ff.h>
diff --git a/Projects/Webserver/Lib/TELNETServerApp.c b/Projects/Webserver/Lib/TELNETServerApp.c
index 3fffae1d1..ff829b9ef 100644
--- a/Projects/Webserver/Lib/TELNETServerApp.c
+++ b/Projects/Webserver/Lib/TELNETServerApp.c
@@ -28,8 +28,6 @@
this software.
*/
-#if defined(ENABLE_TELNET_SERVER) || defined(__DOXYGEN__)
-
/** \file
*
* TELNET Webserver Application. When connected to the uIP stack,
@@ -39,6 +37,8 @@
#define INCLUDE_FROM_TELNETSERVERAPP_C
#include "TELNETServerApp.h"
+#if defined(ENABLE_TELNET_SERVER) || defined(__DOXYGEN__)
+
/** Welcome message to send to a TELNET client when a connection is first made. */
const char PROGMEM WelcomeHeader[] = "********************************************\r\n"
"* LUFA uIP Webserver (TELNET) *\r\n"
diff --git a/Projects/Webserver/Lib/TELNETServerApp.h b/Projects/Webserver/Lib/TELNETServerApp.h
index 5f3e864c9..df580f53b 100644
--- a/Projects/Webserver/Lib/TELNETServerApp.h
+++ b/Projects/Webserver/Lib/TELNETServerApp.h
@@ -43,6 +43,8 @@
#include <uip.h>
+ #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 17f703312..520c03f25 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 32bdb597a..9b466d9d0 100644
--- a/Projects/Webserver/Webserver.txt
+++ b/Projects/Webserver/Webserver.txt
@@ -81,18 +81,18 @@
* </tr>
* <tr>
* <td>ENABLE_TELNET_SERVER</td>
- * <td>Makefile LUFA_OPTS</td>
+ * <td>AppConfig.h</td>
* <td>When defined, this enables the TELNET server in addition to the HTTP webserver, which listens for incoming connections
* and processes user commands.</td>
* </tr>
* <tr>
* <td>ENABLE_DHCP_CLIENT</td>
- * <td>Makefile LUFA_OPTS</td>
+ * <td>AppConfig.h</td>
* <td>When defined, this enables the DHCP client for dynamic IP allocation of the network settings from a DHCP server.</td>
* </tr>
* <tr>
* <td>ENABLE_DHCP_SERVER</td>
- * <td>Makefile LUFA_OPTS</td>
+ * <td>AppConfig.h</td>
* <td>When defined, this enables the DHCP server for dynamic IP allocation of the network settings to a DHCP client.</td>
* </tr>
* <tr>
@@ -113,7 +113,7 @@
* </tr>
* <tr>
* <td>MAX_URI_LENGTH</td>
- * <td>Makefile LUFA_OPTS</td>
+ * <td>AppConfig.h</td>
* <td>Maximum length of a URI for the Webserver. This is the maximum file path, including subdirectories and separators.</td>
* </tr>
* </table>
diff --git a/Projects/Webserver/makefile b/Projects/Webserver/makefile
index b67c6c6f6..53bd17387 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.