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) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.