Interrumpir durante la transferencia de paquetes

0

Estoy usando la biblioteca mbed TCP / IP Socket para recibir mensajes entrantes a través de Ethernet. Actualmente, los datos entrantes se leen en un bucle infinito while (1) (es decir, lo más rápido posible).

También agregaré varias funciones de interrupción de temporizador que se ejecutan periódicamente (1000 / s). Si se produce una interrupción mientras se recibe un mensaje, ¿se descartará el mensaje entrante y el cliente deberá reenviarlo?

¿Cómo se procesan los paquetes en el LPC1768? Si proceso paquetes entrantes en una función de interrupción de temporizador separada (por ejemplo, 20 / seg), ¿puedo garantizar que no se perderán los paquetes?

    
pregunta 19172281

1 respuesta

1

Una vez que la pila TCP ha entregado los datos a su bucle infinito, los datos están en esa ubicación de memoria específica. Una interrupción no causará ningún problema con eso. La pila TCP en sí también debe ser activada por interrupciones (si no se obtiene una, no vale la pena). El compilador de C se encarga de guardar las variables entre las interrupciones y restaurarlas cuando se realiza la interrupción. Siempre que sus interrupciones sean breves y agradables, entonces no debería tener ningún problema con la pérdida de datos, o requerir que el remitente vuelva a enviar, como lo describió.

    
respondido por el Aaron

Lea otras preguntas en las etiquetas