diff options
Diffstat (limited to 'Projects/Webserver')
-rw-r--r-- | Projects/Webserver/Config/AppConfig.h | 68 | ||||
-rw-r--r-- | Projects/Webserver/Config/LUFAConfig.h | 93 | ||||
-rw-r--r-- | Projects/Webserver/Descriptors.c | 11 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPClientApp.c | 4 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPClientApp.h | 1 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPCommon.c | 4 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPCommon.h | 2 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPServerApp.c | 4 | ||||
-rw-r--r-- | Projects/Webserver/Lib/DHCPServerApp.h | 1 | ||||
-rw-r--r-- | Projects/Webserver/Lib/HTTPServerApp.h | 2 | ||||
-rw-r--r-- | Projects/Webserver/Lib/TELNETServerApp.c | 4 | ||||
-rw-r--r-- | Projects/Webserver/Lib/TELNETServerApp.h | 2 | ||||
-rw-r--r-- | Projects/Webserver/Lib/uip/uipopt.h | 2 | ||||
-rw-r--r-- | Projects/Webserver/Webserver.txt | 8 | ||||
-rw-r--r-- | Projects/Webserver/makefile | 31 |
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. |