Issue in sending eth packet in freeRTOS+UIP
Posted by Sushant
on October 22, 2012
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 )
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.
RE: Issue in sending eth packet in freeRTOS+UIP
Posted by Richard
on October 23, 2012
Sorry - I don't have a quick answer. In that situation I would step through the code until I found the line where the assignment was made, and then place a configASSERT() statement after the assignment to create a trap for the debugger. When the trap is hit you can then step through the code until you see why the problem occurs.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.