Hello, I have followed Erich Stygers tutorial: lwip with FreeRTOS and the Freescale FRDM-K64F Board
This works OK, until I load the network interface down.
I added some code to run an iperf server on the board.
After just a few seconds running iperf towards the FRDM-K64F board the code stops on a configASSERT on line 1376 in FreeRTOS queue.c:
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
{
configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
}
The stacktrace:
Thread #1 <main> (Suspended : Signal : SIGINT:Interrupt)
xQueueGenericReceive() at queue.c:1,376 0x10042
OSA_MutexLock() at fsl_os_abstraction_free_rtos.c:226 0xb9e4
sys_mutex_lock() at sys_arch.c:323 0xa77a
mem_malloc() at mem.c:521 0x43c4
pbuf_alloc() at pbuf.c:308 0x4afc
tcp_output_alloc_header() at tcp_out.c:98 0x830c
tcp_send_empty_ack() at tcp_out.c:854 0x8e46
tcp_output() at tcp_out.c:931 0x8f28
tcp_input() at tcp_in.c:383 0x6dec
ip_input() at ip.c:574 0x1cf8
ethernet_input() at etharp.c:1,363 0x1488
ethernetif_input() at ethernetif.c:633 0xa582
ENET_DRV_ReceiveData() at fsl_enet_driver.c:1,516 0xed4e
ENET_DRV_RxIRQHandler() at fsl_enet_driver.c:1,927 0xefea
ENET_Receive_IRQHandler() at lwip_fsl_irq.c:70 0xa61e
<signal handler called>() at 0xfffffffd
vPortStartFirstTask() at port.c:965 0xfa8e
xPortStartScheduler() at port.c:812 0xf9ca
0x20001b8c
Does anyone know what the problem can be?
I'm using:
- KSDK 1.3.0
- KDS 3.0.0
- ARM Toolchain 4.9.3 20150529 (release)