Hi all,
My project uses StellarisWare+lwip1.3.2+BOOTP+TFTP.
Now I am analyzing lwip1.3.2 codes and if RTOS is used then call
tcpip_init(lwIPPrivateInit, 0) in lwiplib.c.
Then
tcpip_thread() is called in tcpip.c
Depending on received message's type either ethernet_input() or ip_input() are executed.
sys_mbox_fetch(mbox, (void *)&msg);
switch (msg->type) {
case
TCPIP_MSG_INPKT:
LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg));
#if LWIP_ARP
if (msg->msg.inp.netif->flags & NETIF_FLAG_ETHARP) {
ethernet_input(msg->msg.inp.p, msg->msg.inp.netif); } else
#endif /* LWIP_ARP */
{
ip_input(msg->msg.inp.p, msg->msg.inp.netif);
}
memp_free(MEMP_TCPIP_MSG_INPKT, msg);
break;
case TCPIP_MSG_CALLBACK:
......
......
}
I am not sure once UDP packets are received, they get through this codes. safeRtos seems like only binding tcpip stack, so I am now tracing lwip codes to see if UDP packets can be received from tcpip_init(lwiPPrivateInit,0) in lwip+safeRTOS