]> git.sur5r.net Git - freertos/blobdiff - Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c
Ready for V5.1.1 release.
[freertos] / Demo / ColdFire_MCF52233_Eclipse / RTOSDemo / webserver / uIP_Task.c
index 94db791740b53ccdf451d0cc4b796e2b4cf4311d..1ca2bc4c6cd880dd71ad0a1ea6a3347c23cbfac2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-       FreeRTOS.org V5.1.0 - Copyright (C) 2003-2008 Richard Barry.\r
+       FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.\r
 \r
        This file is part of the FreeRTOS.org distribution.\r
 \r
        port sections of the online documentation.\r
        ***************************************************************************\r
 */\r
+\r
+\r
+/* Task that controls the uIP TCP/IP stack. */\r
+\r
+\r
 /* Standard includes. */\r
 #include <string.h>\r
 \r
 #include "FEC.h"\r
 #include "partest.h"\r
 \r
-//struct timer {\r
-//  clock_time_t start;\r
-//  clock_time_t interval;\r
-//};\r
-\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
-/* How long to wait before attempting to connect the MAC again. */\r
-#define uipINIT_WAIT    100\r
-\r
 /* Shortcut to the header within the Rx buffer. */\r
 #define xHeader ((struct uip_eth_hdr *) &uip_buf[ 0 ])\r
 \r
-/* Standard constant. */\r
-#define uipTOTAL_FRAME_HEADER_SIZE     54\r
-\r
 /*-----------------------------------------------------------*/\r
 \r
 /*\r
@@ -72,6 +66,9 @@
  */\r
 void clock_init( void );\r
 clock_time_t clock_time( void );\r
+extern void timer_set(struct timer *t, clock_time_t interval);\r
+extern int timer_expired(struct timer *t);\r
+extern void timer_reset(struct timer *t);\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -92,19 +89,13 @@ clock_time_t clock_time( void )
 {\r
        return xTaskGetTickCount();\r
 }\r
-extern void timer_set(struct timer *t, clock_time_t interval);\r
-extern int timer_expired(struct timer *t);\r
-extern void timer_reset(struct timer *t);\r
-\r
-\r
-\r
+/*-----------------------------------------------------------*/\r
 \r
 void vuIP_Task( void *pvParameters )\r
 {\r
 portBASE_TYPE i;\r
 uip_ipaddr_t xIPAddr;\r
 struct timer periodic_timer, arp_timer;\r
-extern void ( vEMAC_ISR )( void );\r
 \r
        /* To prevent compiler warnings. */\r
        ( void ) pvParameters;\r
@@ -115,14 +106,17 @@ extern void ( vEMAC_ISR )( void );
        uip_init();\r
        uip_ipaddr( xIPAddr, configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 );\r
        uip_sethostaddr( xIPAddr );\r
+\r
+       /* Initialise the WEB server. */\r
        httpd_init();\r
 \r
-       vInitFEC();\r
+       /* Initialise the Ethernet controller peripheral. */\r
+       vFECInit();\r
 \r
        for( ;; )\r
        {\r
                /* Is there received data ready to be processed? */\r
-               uip_len = usGetFECRxData();\r
+               uip_len = usFECGetRxedData();\r
 \r
                if( uip_len > 0 )\r
                {\r
@@ -139,11 +133,13 @@ extern void ( vEMAC_ISR )( void );
                                if( uip_len > 0 )\r
                                {\r
                                        uip_arp_out();\r
-                                       vSendBufferToFEC();\r
+                                       vFECSendData();\r
                                }\r
                                else\r
                                {\r
-                                       vDiscardRxData();\r
+                                       /* If we are not sending data then let the FEC driver know\r
+                                       the buffer is no longer required. */\r
+                                       vFECRxProcessingCompleted();\r
                                }\r
                        }\r
                        else if( xHeader->type == htons( UIP_ETHTYPE_ARP ) )\r
@@ -155,16 +151,20 @@ extern void ( vEMAC_ISR )( void );
                                uip_len is set to a value > 0. */\r
                                if( uip_len > 0 )\r
                                {\r
-                                       vSendBufferToFEC();\r
+                                       vFECSendData();\r
                                }\r
                                else\r
                                {\r
-                                       vDiscardRxData();\r
+                                       /* If we are not sending data then let the FEC driver know\r
+                                       the buffer is no longer required. */\r
+                                       vFECRxProcessingCompleted();\r
                                }\r
                        }\r
                        else\r
                        {\r
-                               vDiscardRxData();\r
+                               /* If we are not sending data then let the FEC driver know\r
+                               the buffer is no longer required. */\r
+                               vFECRxProcessingCompleted();\r
                        }\r
                }\r
                else\r
@@ -182,7 +182,7 @@ extern void ( vEMAC_ISR )( void );
                                        if( uip_len > 0 )\r
                                        {\r
                                                uip_arp_out();\r
-                                               vSendBufferToFEC();\r
+                                               vFECSendData();\r
                                        }\r
                                }\r
 \r
@@ -206,25 +206,5 @@ extern void ( vEMAC_ISR )( void );
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vApplicationProcessFormInput( portCHAR *pcInputString )\r
-{\r
-char *c;\r
-\r
-       /* Process the form input sent by the IO page of the served HTML. */\r
-\r
-       c = strstr( pcInputString, "?" );\r
 \r
-    if( c )\r
-    {\r
-               /* Turn LED's on or off in accordance with the check box status. */\r
-               if( strstr( c, "LED0=1" ) != NULL )\r
-               {\r
-                       vParTestSetLED( 0, 1 );\r
-               }\r
-               else\r
-               {\r
-                       vParTestSetLED( 0, 0 );\r
-               }\r
-    }\r
-}\r
 \r