]> git.sur5r.net Git - freertos/blobdiff - Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c
New MicroBlaze port: Added a FreeRTOS exception handler, and installed it in each...
[freertos] / Demo / CORTEX_A2F200_IAR_and_Keil / uIP_Task.c
index 3a6ea91e6867efdfd921cc7d1fec4f8ca9fefb06..58e0ca9a9f0cabad1fca317240d1f6eb798d8fd3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.0.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+    FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
@@ -159,8 +159,8 @@ clock_time_t clock_time( void )
 void vuIP_Task( void *pvParameters )\r
 {\r
 portBASE_TYPE i;\r
-unsigned long ulNewEvent = 0UL;\r
-unsigned long ulUIP_Events = 0UL;\r
+unsigned long ulNewEvent = 0UL, ulUIP_Events = 0UL;\r
+long lPacketLength;\r
 \r
        /* Just to prevent compiler warnings about the unused parameter. */\r
        ( void ) pvParameters;\r
@@ -174,11 +174,13 @@ unsigned long ulUIP_Events = 0UL;
        for( ;; )\r
        {\r
                /* Is there received data ready to be processed? */\r
-               uip_len = MSS_MAC_rx_packet();\r
+               lPacketLength = MSS_MAC_rx_packet();\r
 \r
                /* Statements to be executed if data has been received on the Ethernet. */\r
-               if( ( uip_len > 0 ) && ( uip_buf != NULL ) )\r
+               if( ( lPacketLength > 0 ) && ( uip_buf != NULL ) )\r
                {\r
+                       uip_len = ( u16_t ) lPacketLength;\r
+                       \r
                        /* Standard uIP loop taken from the uIP manual. */\r
                        if( xHeader->type == htons( UIP_ETHTYPE_IP ) )\r
                        {\r
@@ -286,14 +288,14 @@ xTimerHandle xARPTimer, xPeriodicTimer;
        xEMACEventQueue = xQueueCreate( uipEVENT_QUEUE_LENGTH, sizeof( unsigned long ) );\r
 \r
        /* Create and start the uIP timers. */\r
-       xARPTimer = xTimerCreate(       ( const signed char * const ) "ARPTimer", /* Just a name that is helpful for debugging, not used by the kernel. */\r
+       xARPTimer = xTimerCreate(       ( signed char * ) "ARPTimer", /* Just a name that is helpful for debugging, not used by the kernel. */\r
                                                                ( 10000UL / portTICK_RATE_MS ), /* Timer period. */\r
                                                                pdTRUE, /* Autor-reload. */\r
                                                                ( void * ) uipARP_TIMER,\r
                                                                prvUIPTimerCallback\r
                                                        );\r
 \r
-       xPeriodicTimer = xTimerCreate(  ( const signed char * const ) "PeriodicTimer",\r
+       xPeriodicTimer = xTimerCreate(  ( signed char * ) "PeriodicTimer",\r
                                                                        ( 500UL / portTICK_RATE_MS ),\r
                                                                        pdTRUE, /* Autor-reload. */\r
                                                                        ( void * ) uipPERIODIC_TIMER,\r
@@ -356,7 +358,7 @@ void vEMACWrite( void )
 {\r
 const long lMaxAttempts = 10;\r
 long lAttempt;\r
-const portTickType xShortDelay = ( 10 / portTICK_RATE_MS );\r
+const portTickType xShortDelay = ( 5 / portTICK_RATE_MS );\r
 \r
        /* Try to send data to the Ethernet.  Keep trying for a while if data cannot\r
        be sent immediately.  Note that this will actually cause the data to be sent\r