If you enable UDP support, and then add a UDP app that generates a packet via a call uip_udp_periodic() such as dhcp or ntp there is a potential problem - uip_buf is initialized to NULL at the end of vInitEmac(). When the packet is generated uip_buf is not pointing to an ethernet buffer so whatever is in your memory starting at address 0 will be trashed. In my application this turned out to be the ethernet descriptor tables. My fix was to set uip_buf to a valid ethernet buffer instead of NULL by a call to prvGetNextBuffer().
I hope that this saves somebody some time tracking this down.
Steven J. Ackerman, Consultant
ACS, Sarasota, Florida