sushantc wrote on Monday, October 22, 2012:
Hii,
I am using the LM3S6965 ethernet board…i am tring to create a simple client-server communication using freeRTOS+UIP(v7.1.1) stack and IAR as IDE…i have made some changes in the demo code and created a client with a static IP…i am using a server tool…when i try to connect to the server, i end up in hard-fault isr(although 1 in 10 times i am able to establish a TCP connection with the server)…the issue i am having is that the uip_buf is not getting loaded with the address of the packet data buffer to be sent…and this issue arises only after uip_periodic() routine…
for( i = 0; i < UIP_CONNS; i++ )
{
uip_periodic( i );
/ If the above function invocation resulted in data that should be sent out on the network, the global variable uip_len is set to a value > 0. /
if( uip_len > 0 )
{
uip_arp_out();
prvENET_Send();
}
}
I am not getting that when uip_periodic() encounters data to be sent, when(or where in uip.c) does uip_buf point to the data???Since the hard fault is arising while tring to send the packet on the network as uip_buf contains 0 and fault is encountered in vSendBufferToMAC() routine in emac.c while assigning
pus = ( unsigned portSHORT * ) uip_buf
Thanks in advance.
Sushant C