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