]> git.llucax.com Git - z.facultad/66.09/etherled.git/commitdiff
Seguían habiendo problemas al recibir varios paquetes seguidos, al parecer se
authorLeandro Lucarella <llucax@gmail.com>
Mon, 5 Dec 2005 06:24:48 +0000 (06:24 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 5 Dec 2005 06:24:48 +0000 (06:24 +0000)
leía mal el ISR y eso provocaba que se resetea la placa sin que realmente haya
overflow del buffer. Con un asqueroso hack (poniendo un retardo antes de leer el
ISR _solo_ en ese lugar) parece mejorar considerablemente. Lo sigue haciendo,
pero MUY esporádicamente...

pruebas/keil/red_test_anda/etherdev.c

index ce600004d6f509c5e0da44042158f7f91dc17ff0..4675026e492215519b7bbc38c89404fa70ec6c8d 100644 (file)
@@ -408,6 +408,9 @@ static void etherdev_reset()
 static unsigned int etherdev_poll(void)
 {
     unsigned int len = 0;
+    // Retardo mega-bizarro, si no lo pongo a veces leo basura del ISR
+    unsigned char j;
+    for (j = 0; j < 0xFF; ++j);
 
     // Check if the rx buffer has overflowed.
     if (etherdev_reg_read(ISR) & OVW)