]> git.llucax.com Git - z.facultad/66.09/etherled.git/commitdiff
Cambios estéticos al código de la facultad que solía andar. No hay cambios
authorLeandro Lucarella <llucax@gmail.com>
Sun, 4 Dec 2005 21:23:01 +0000 (21:23 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 4 Dec 2005 21:23:01 +0000 (21:23 +0000)
funcionales, sólo limpieza de código.

pruebas/keil/red_test_anda/etherdev.c
pruebas/keil/red_test_anda/etherdev.h
pruebas/keil/red_test_anda/main.c
pruebas/keil/red_test_anda/red.plg

index c3a342e5588f0fcb0bc9c28266105ffc637ca094..141308f83af504afcdc85f957313717c29502e71 100644 (file)
@@ -1,3 +1,5 @@
+// vim: set et sw=4 sts=4 :    
+
 #include "etherdev.h"
 
 void sleep(unsigned char);
 #include "etherdev.h"
 
 void sleep(unsigned char);
@@ -5,19 +7,16 @@ void sleep(unsigned char);
 static xdata leds1 _at_ 0x0080;
 static xdata leds2 _at_ 0x00c0;
 
 static xdata leds1 _at_ 0x0080;
 static xdata leds2 _at_ 0x00c0;
 
-unsigned char uip_buf[64] =
+unsigned char uip_buf[80] =
 {
 {
-       //0x00, 0x0c, 0x6e, 0x37, 0x19, 0xbf, // MAC destino
-       0x00, 0x80, 0xc7, 0x42, 0x8d, 0x27, // MAC destino
+       0x00, 0x0c, 0x6e, 0x37, 0x19, 0xbf, // MAC destino
+       //0x00, 0x80, 0xc7, 0x42, 0x8d, 0x27, // MAC destino
        0x00, 0x0c, 0x6e, 0x37, 0x19, 0xbe, // MAC fuente
        0x00, 0x00, // Type
 };
 
 unsigned int uip_len = 14;
 
        0x00, 0x0c, 0x6e, 0x37, 0x19, 0xbe, // MAC fuente
        0x00, 0x00, // Type
 };
 
 unsigned int uip_len = 14;
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                            Private defines.                         º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 #define ETH_CPU_CLOCK      ETH_CPU_XTAL / 12    // 8051 clock rate (X1 mode)
 
 // Delay routine timing parameters
 #define ETH_CPU_CLOCK      ETH_CPU_XTAL / 12    // 8051 clock rate (X1 mode)
 
 // Delay routine timing parameters
@@ -40,19 +39,11 @@ unsigned int uip_len = 14;
 #define ETH_MIN_PACKET_LEN 0x3C
 
 
 #define ETH_MIN_PACKET_LEN 0x3C
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                       Private Function Prototypes                   º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 static void etherdev_reg_write(unsigned char reg, unsigned char wr_data);
 static unsigned char etherdev_reg_read(unsigned char reg);
 static void etherdev_delay_ms(unsigned int count);
 static unsigned int etherdev_poll(void);
 static void etherdev_reg_write(unsigned char reg, unsigned char wr_data);
 static unsigned char etherdev_reg_read(unsigned char reg);
 static void etherdev_delay_ms(unsigned int count);
 static unsigned int etherdev_poll(void);
-//static void etherdev_timer0_isr(void) interrupt 1 using 1;
-
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                          Private Macro Defines                      º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 // Manipulate PS1 & PS0 in CR to select RTL8019AS register page. 
 #define ETHERDEV_SELECT_REG_PAGE(page)                                      \
           do                                                                \
 // Manipulate PS1 & PS0 in CR to select RTL8019AS register page. 
 #define ETHERDEV_SELECT_REG_PAGE(page)                                      \
           do                                                                \
@@ -61,23 +52,9 @@ static unsigned int etherdev_poll(void);
               etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
           } while(0)
 
               etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
           } while(0)
 
-
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                              Global Variables                       º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 static unsigned char tick_count = 0;
 
 
 static unsigned char tick_count = 0;
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                     Private Function Implementation                 º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
-
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                          etherdev_reg_write()                       º
-    º                                                                     º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 static void etherdev_reg_write(unsigned char reg, unsigned char wr_data)
 {
     // Select register address.
 static void etherdev_reg_write(unsigned char reg, unsigned char wr_data)
 {
     // Select register address.
@@ -89,10 +66,10 @@ static void etherdev_reg_write(unsigned char reg, unsigned char wr_data)
 
     // Clock register data into RTL8019AS.
     // IOR & IOW are both active low.
 
     // Clock register data into RTL8019AS.
     // IOR & IOW are both active low.
-       NICE = 0;
+    NICE = 0;
     IOW = 0;
     IOW = 1;
     IOW = 0;
     IOW = 1;
-       NICE = 1;
+    NICE = 1;
 
     // Set register data port as input again.
     ETH_DATA_PORT = ETH_DATA_PORT_MASK;
 
     // Set register data port as input again.
     ETH_DATA_PORT = ETH_DATA_PORT_MASK;
@@ -101,12 +78,6 @@ static void etherdev_reg_write(unsigned char reg, unsigned char wr_data)
 } 
 
 
 } 
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                          etherdev_reg_read()                        º
-    º                                                                     º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 static unsigned char etherdev_reg_read(unsigned char reg)
 {
     unsigned char rd_data;
 static unsigned char etherdev_reg_read(unsigned char reg)
 {
     unsigned char rd_data;
@@ -130,30 +101,14 @@ static unsigned char etherdev_reg_read(unsigned char reg)
 } 
 
 
 } 
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                          etherdev_delay_ms()                        º
-    º                                                                     º
-    º  1 to 255+ ms delay.                                                º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
-static void etherdev_delay_ms(unsigned int count)
-{
-
-    for(count *= ETH_DELAY_MULTPLR; count > 0; count--) continue;
-
-    return;
-}
-
-
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                           etherdev_timer0_isr()                     º
-    º                                                                     º
-    º This function is invoked each 1/24th of a second and updates a      º
-    º 1/24th of a second tick counter.                                    º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
+/* 
+                                                                     
+                           etherdev_timer0_isr()                     
+                                                                     
+ This function is invoked each 1/24th of a second and updates a      
+ 1/24th of a second tick counter.                                    
+                                                                     
+ */
 static void etherdev_timer0_isr(void) interrupt 1 using 1
 {
     // Reload timer/ counter 0 for 24Hz periodic interrupt.   
 static void etherdev_timer0_isr(void) interrupt 1 using 1
 {
     // Reload timer/ counter 0 for 24Hz periodic interrupt.   
@@ -167,32 +122,24 @@ static void etherdev_timer0_isr(void) interrupt 1 using 1
 }
 
 
 }
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                     Public Function Implementation                  º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
-
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                            etherdev_init()                          º
-    º                                                                     º
-    º  Returns: 1 on success, 0 on failure.                               º
-    º  Refer to National Semiconductor DP8390 App Note 874, July 1993.    º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
+/*
+                                                                     
+                            etherdev_init()                          
+                                                                     
+  Returns: 1 on success, 0 on failure.                               
+  Refer to National Semiconductor DP8390 App Note 874, July 1993.    
+                                                                     
+ */
 bit etherdev_init(void)
 {
     // Set IOR & IOW as they're active low.
     IOR = 1;
     IOW = 1;
 bit etherdev_init(void)
 {
     // Set IOR & IOW as they're active low.
     IOR = 1;
     IOW = 1;
-       NICE = 1;
+    NICE = 1;
 
     // Set register data port as input.
     ETH_DATA_PORT = ETH_DATA_PORT_MASK;
 
 
     // Set register data port as input.
     ETH_DATA_PORT = ETH_DATA_PORT_MASK;
 
-#ifdef ETH_DEBUG
-    init_sio_poll();
-#endif /* ETH_DEBUG */
-
     // Configure RTL8019AS ethernet controller.
 
     // Keil startup code takes 4ms to execute (18.432MHz, X1 mode).
     // Configure RTL8019AS ethernet controller.
 
     // Keil startup code takes 4ms to execute (18.432MHz, X1 mode).
@@ -205,27 +152,9 @@ bit etherdev_init(void)
     // Check if RTL8019AS fully reset.
     if(!(etherdev_reg_read(ISR) & RST))
     {
     // Check if RTL8019AS fully reset.
     if(!(etherdev_reg_read(ISR) & RST))
     {
-leds1 = ~0xff;
-leds2 = ~0xff;
-while(1);
         return 0;
     }
         return 0;
     }
-/*
-    // Select RTL8019AS register page 3.
-    ETHERDEV_SELECT_REG_PAGE(3);
-
-    // Temporarily disable config register write protection.
-    etherdev_reg_write(_9346CR, EEM1 | EEM0);
-
-    // Disable boot ROM & select 10BaseT with TP/CX auto-detect.
-    etherdev_reg_write(CONFIG2, BSELB);
-
-    // Select half-duplex, awake, power-up & LED_TX/ LED_RX/ LED_LNK behaviour.
-    etherdev_reg_write(CONFIG3, LEDS0);
 
 
-    // Re-enable config register write protection.
-    etherdev_reg_write(_9346CR, 0x00);
-*/
     // Select RTL8019AS register page 0.
     ETHERDEV_SELECT_REG_PAGE(0);
 
     // Select RTL8019AS register page 0.
     ETHERDEV_SELECT_REG_PAGE(0);
 
@@ -252,10 +181,9 @@ while(1);
     // Mask all interrupts in mask register.
     etherdev_reg_write(IMR, 0x00);
 
     // Mask all interrupts in mask register.
     etherdev_reg_write(IMR, 0x00);
 
-       // Obtengo MAC de la placa
+    // TODO Obtengo MAC de la placa
     //etherdev_reg_write(CR, 0x21);
 
     //etherdev_reg_write(CR, 0x21);
 
-
     // Set transmit page start.
     etherdev_reg_write(TPSR, ETH_TX_PAGE_START);
 
     // Set transmit page start.
     etherdev_reg_write(TPSR, ETH_TX_PAGE_START);
 
@@ -321,29 +249,23 @@ while(1);
 }
 
 
 }
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                           etherdev_send()                           º
-    º                                                                     º
-    º Send the packet in the uip_buf and uip_appdata buffers using the    º
-    º RTL8019AS ethernet card.                                            º
-    º                                                                     º
   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
+/*
+                                                                     
+                           etherdev_send()                           
+                                                                     
+ Send the packet in the uip_buf and uip_appdata buffers using the    
+ RTL8019AS ethernet card.                                            
+                                                                     
+ */
 void etherdev_send(void)
 {
     unsigned int i;
 void etherdev_send(void)
 {
     unsigned int i;
-    unsigned char *ptr;
-
-    ptr = uip_buf;
 
     // Setup for DMA transfer from uip_buf & uip_appdata buffers to RTL8019AS.
 
     // Select RTL8019AS register page 0 and abort DMA operation.
     etherdev_reg_write(CR, RD2 | STA);
 
 
     // Setup for DMA transfer from uip_buf & uip_appdata buffers to RTL8019AS.
 
     // Select RTL8019AS register page 0 and abort DMA operation.
     etherdev_reg_write(CR, RD2 | STA);
 
-leds1 = ~0x01;
-i = etherdev_reg_read(CR);
-leds2 = ~i;
     // Wait until pending transmit operation completes.
     while(etherdev_reg_read(CR) & TXP) continue;
 
     // Wait until pending transmit operation completes.
     while(etherdev_reg_read(CR) & TXP) continue;
 
@@ -365,12 +287,10 @@ leds2 = ~i;
     // transmit buffer memory.
     for(i = 0; i < uip_len; i++)
     {
     // transmit buffer memory.
     for(i = 0; i < uip_len; i++)
     {
-        etherdev_reg_write(RDMA, *ptr++);
+        etherdev_reg_write(RDMA, uip_buf[i]);
     }
 
     // Wait until remote DMA operation complete.
     }
 
     // Wait until remote DMA operation complete.
-leds1 = ~0x02;
-leds2 = ~etherdev_reg_read(ISR);
     while(!(etherdev_reg_read(ISR) & RDC)) continue;
 
     // Abort/ complete DMA operation.
     while(!(etherdev_reg_read(ISR) & RDC)) continue;
 
     // Abort/ complete DMA operation.
@@ -396,16 +316,16 @@ leds2 = ~etherdev_reg_read(ISR);
 }
 
 
 }
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                           etherdev_read()                           º
-    º                                                                     º
-    º This function will read an entire IP packet into the uip_buf.       º
-    º If it must wait for more than 0.5 seconds, it will return with      º
-    º the return value 0. Otherwise, when a full packet has been read     º
-    º into the uip_buf buffer, the length of the packet is returned.      º
-    º                                                                     º
   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
+/*
+                                                                     
+                           etherdev_read()                           
+                                                                     
+ This function will read an entire IP packet into the uip_buf.       
+ If it must wait for more than 0.5 seconds, it will return with      
+ the return value 0. Otherwise, when a full packet has been read     
+ into the uip_buf buffer, the length of the packet is returned.      
+                                                                     
+ */
 unsigned int etherdev_read(void)
 {    
     unsigned int bytes_read;
 unsigned int etherdev_read(void)
 {    
     unsigned int bytes_read;
@@ -422,13 +342,13 @@ unsigned int etherdev_read(void)
 }
 
 
 }
 
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                           etherdev_poll()                           º
-    º                                                                     º
-    º Poll the RTL8019AS ethernet device for an available packet.         º
-    º                                                                     º
   ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
+/*
+                                                                     
+                           etherdev_poll()                           
+                                                                     
+ Poll the RTL8019AS ethernet device for an available packet.         
+                                                                     
+ */
 static unsigned int etherdev_poll(void)
 {
     unsigned int len = 0;
 static unsigned int etherdev_poll(void)
 {
     unsigned int len = 0;
@@ -599,9 +519,3 @@ static unsigned int etherdev_poll(void)
     return len;
 }
 
     return len;
 }
 
-
-
-
-
-
-
index 6b21275188b2f5914227953ed9f01fc378f6d1f9..1770cc0cc72102ddb9ee6318ae92b86200fe7666 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "REG51.h"
 
 
 #include "REG51.h"
 
-extern unsigned char uip_buf[64];
+extern unsigned char uip_buf[80];
 extern unsigned int uip_len;
 
 
 extern unsigned int uip_len;
 
 
@@ -154,8 +154,8 @@ sbit NICE = ETH_CTRL_PORT^2; // A7, usado para activar placa de red
 #define FIFO         ETH_REG_BASE + 0x06
 #define CRDA0        ETH_REG_BASE + 0x08
 #define CRDA1        ETH_REG_BASE + 0x09
 #define FIFO         ETH_REG_BASE + 0x06
 #define CRDA0        ETH_REG_BASE + 0x08
 #define CRDA1        ETH_REG_BASE + 0x09
-#define _8019ID0     ETH_REG_BASE + 0x0A
-#define _8019ID1     ETH_REG_BASE + 0x0B
+#define CONFIGA      ETH_REG_BASE + 0x0A
+#define CONFIGB      ETH_REG_BASE + 0x0B
 #define RSR          ETH_REG_BASE + 0x0C
 #define CNTR0        ETH_REG_BASE + 0x0D
 #define CNTR1        ETH_REG_BASE + 0x0E
 #define RSR          ETH_REG_BASE + 0x0C
 #define CNTR0        ETH_REG_BASE + 0x0D
 #define CNTR1        ETH_REG_BASE + 0x0E
index f63235e9507ad0ae6f1a79964e53c6a9159dd6a0..43546b2e70efd114d8d390d0a7cec497d0d83e7e 100644 (file)
@@ -1,24 +1,4 @@
-/*       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-         º    TITLE:  Keil C51 v7.00 port of Adam Dunkels' uIP v0.9 º
-         º REVISION:  VER 0.1                                       º
-         º REV.DATE:  30-01-05                                      º
-         º  ARCHIVE:                                                º
-         º   AUTHOR:  Murray R. Van Luyn, 2005.                     º
-         ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ        */
-
-/*  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
-    ³  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS  ³ 
-    ³  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED  ³ 
-    ³  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ³ 
-    ³  ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY    ³ 
-    ³  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ³ 
-    ³  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE  ³ 
-    ³  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS      ³ 
-    ³  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,       ³ 
-    ³  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING          ³ 
-    ³  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ³ 
-    ³  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.       ³ 
-    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  */
+// vim: set et sw=4 sts=4 :    
 
 #include "main.h"
 
 
 #include "main.h"
 
@@ -27,59 +7,51 @@ static xdata leds2 _at_ 0x00c0;
 
 void sleep(unsigned char times)
 {
 
 void sleep(unsigned char times)
 {
-       unsigned int i;
-       unsigned char j;
-       for (i = 0; i < 0xffff; ++i)
-               for (j = 0; j < times; ++j);
+    unsigned int i;
+    unsigned char j;
+    for (i = 0; i < 0xffff; ++i)
+        for (j = 0; j < times; ++j);
 }
 
 }
 
-/*  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
-    º                                                                     º
-    º                                  main()                             º
-    º                                                                     º
-    º Simple Web Server test application.                                 º
-    º                                                                     º
-    º                                                                     º
-    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ  */
 void main(void)
 {
 void main(void)
 {
-       unsigned int len;
-       leds1 = ~0x00;
-       leds2 = ~0x00;
-       sleep(3);
+    unsigned int len;
+    leds1 = ~0xff;
+    leds2 = ~0xff;
+    sleep(3);
     /* Initialise the device driver. */ 
     if (!etherdev_init())
     /* Initialise the device driver. */ 
     if (!etherdev_init())
-               while(1); // Si falla init nos quedamos bobos
+        while(1); // Si falla init nos quedamos bobos
 
     etherdev_send();
 
     etherdev_send();
-       leds1 = ~0xaa;
-       leds2 = ~0xaa;
-
-
-       // leemos
-do
-{
-       len = etherdev_read();
-       if (len)
-       {
-               leds1 = ~0x55;
-               leds2 = len;
-               sleep(2);
-               for (len = 0; len < uip_len; ++len)
-               {
-                       leds1 = ~(1 << (len % 8));
-                       leds2 = ~uip_buf[len];
-                       sleep(5);
-               }
-               leds1 = ~0x55;
-               leds2 = ~0x55;
-       }
-       else
-       {
-               leds1 = ~0xff;
-               leds2 = ~0xff;
-       }
-}
-while (1); // Quedamos paveando forever
+    leds1 = ~0xaa;
+    leds2 = ~0xaa;
+
+
+    // leemos
+    do
+    {
+        len = etherdev_read();
+        if (len)
+        {
+            leds1 = ~0x55;
+            leds2 = len;
+            sleep(2);
+            for (len = 0; len < uip_len; ++len)
+            {
+                leds1 = ~(1 << (len % 8));
+                leds2 = ~uip_buf[len];
+                sleep(5);
+            }
+            leds1 = ~0x55;
+            leds2 = ~0x55;
+        }
+        else
+        {
+            leds1 = ~0xff;
+            leds2 = ~0xff;
+        }
+    }
+    while (1); // Quedamos paveando forever
 }
 
 }
 
index cb6c7a2065bb52f0e3bc99156ddf13176a3623ea..0a93a394349d5467e25e6aff760171ef50d38dc4 100644 (file)
@@ -7,3 +7,786 @@ Z:\home\luca\facultad\66.09\proyecto\pruebas\keil\red_test_anda\red.uv2
 Project File Date:  12/02/2005\r
 \r
 <h2>Output:</h2>\r
 Project File Date:  12/02/2005\r
 \r
 <h2>Output:</h2>\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=83.1 xdata=8 code=1432\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=83.1 xdata=8 code=1433\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=84.1 xdata=8 code=1444\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1330\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=82.1 xdata=8 code=1392\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=82.1 xdata=8 code=1418\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=82.1 xdata=8 code=1445\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=82.1 xdata=8 code=1464\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=82.1 xdata=8 code=1466\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=83.1 xdata=8 code=1572\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(464): error C141: syntax error near 'bit'\r
+ETHERDEV.C(464): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(488): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(516): error C202: 'retransmit': undefined identifier\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(464): error C141: syntax error near 'bit'\r
+ETHERDEV.C(464): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(488): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(516): error C202: 'retransmit': undefined identifier\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=84.1 xdata=8 code=1637\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=84.1 xdata=8 code=1633\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1466\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1390\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1386\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1386\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling main.c...\r
+linking...\r
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS\r
+    SEGMENT: ?PR?_ETHERDEV_DELAY_MS?ETHERDEV\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=81.1 xdata=8 code=1386\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(270): error C141: syntax error near 'bit'\r
+ETHERDEV.C(270): error C202: 'seguir': undefined identifier\r
+ETHERDEV.C(272): error C202: 'seguir': undefined identifier\r
+ETHERDEV.C(278): error C202: 'seguir': undefined identifier\r
+ETHERDEV.C(279): error C141: syntax error near 'bit'\r
+ETHERDEV.C(279): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(303): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(331): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(491): error C202: 'seguir': undefined identifier\r
+compiling main.c...\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(279): error C141: syntax error near 'bit'\r
+ETHERDEV.C(279): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(303): error C202: 'retransmit': undefined identifier\r
+ETHERDEV.C(331): error C202: 'retransmit': undefined identifier\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=94.2 xdata=8 code=1329\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=94.2 xdata=8 code=1427\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=95.2 xdata=8 code=1425\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=95.2 xdata=8 code=1457\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=98.1 xdata=8 code=1110\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(328): error C202: 'uip': undefined identifier\r
+compiling main.c...\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=98.1 xdata=8 code=1138\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=98.1 xdata=8 code=1161\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=98.1 xdata=8 code=1168\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(389): error C202: 'header': undefined identifier\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=95.1 xdata=8 code=1036\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=95.1 xdata=8 code=1021\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1043\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 2 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1060\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 2 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1061\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 2 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(391): warning C280: 'current': unreferenced local variable\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1241\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1272\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 2 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=90.1 xdata=8 code=1345\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 2 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=95.1 xdata=8 code=1383\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(10): error C231: 'uip_buf': redefinition\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** ERROR L107: ADDRESS SPACE OVERFLOW\r
+    SPACE:   DATA    \r
+    SEGMENT: ?DT?ETHERDEV\r
+    LENGTH:  0068H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT\r
+    SYMBOL:  UIP_LEN\r
+    SEGMENT: ?DT?ETHERDEV\r
+*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT\r
+    SYMBOL:  UIP_BUF\r
+    SEGMENT: ?DT?ETHERDEV\r
+Program Size: data=133.1 xdata=8 code=1312\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1295\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1213\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+ETHERDEV.C(342): error C202: 'i': undefined identifier\r
+ETHERDEV.C(344): error C202: 'i': undefined identifier\r
+ETHERDEV.C(345): error C202: 'i': undefined identifier\r
+Target not created\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1327\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1309\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1238\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1148\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1151\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1201\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1228\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1263\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+compiling main.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1260\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1270\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r
+Build target 'Target 1'\r
+compiling etherdev.c...\r
+linking...\r
+*** WARNING L15: MULTIPLE CALL TO SEGMENT\r
+    SEGMENT: ?PR?ETHERDEV_SEND?ETHERDEV\r
+    CALLER1: ?PR?ETHERDEV_NIC_ISR?ETHERDEV\r
+    CALLER2: ?C_C51STARTUP\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    0080H\r
+    TO:      0081H\r
+*** WARNING L6: XDATA SPACE MEMORY OVERLAP\r
+    FROM:    00C0H\r
+    TO:      00C1H\r
+Program Size: data=111.1 xdata=8 code=1233\r
+creating hex file from "red"...\r
+"red" - 0 Error(s), 3 Warning(s).\r