2022-02-27 08:53 PM
Hi, I am using STM32f429zi nucleo-144 board to configure Ethernet using LWIP and FreeRTOS.
But my program doesn't execute after "MX_LWIP_Init();" in the StartDefaultTask. What could be the issue? It halts on the below function inside queue.c.
Function:
BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, TickType_t xTicksToWait )
Line :
#if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) )
{
/*****Excecution waits here while debugging.****************/
configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) );
}
Note: Ethernet works fine without using RTOS. I have tested UDP, TCP protocols.
Thank you.
2022-03-01 12:33 AM
Hello @SSala.3 ,
You can refer to the following examples provided under our F4 Firmware Package:
I hope this helps you.
BeST Regards,
Walid
2022-03-06 10:17 PM
Hello Walid,
Thank you. I have gone through the example shared. My query is about configuring my project right way using the device configuration tool in STMCube IDE. In my case "MX_LWIP_Init()" has some issue which is blocking the program execution as stated above.
2022-03-06 10:17 PM
Hello Walid,
Thank you. I have gone through the example shared. My query is about configuring my project right way using the device configuration tool in STMCube IDE. In my case "MX_LWIP_Init()" has some issue which is blocking the program execution as stated above.
2023-07-20 06:53 AM
FWIW, I have run into the same issue with the latest CubeMX / IDE, and I have found a solution. I tried using both CMSIS V1 and CMSIS V2 options for FreeRTOS. With V1, I get the same fault described here; with V2, I get a semaphore failure in the LwIP TxCpltCallback (it looks as though there's a clash there between CMSIS semaphores and FreeRTOS semaphores).
At least with V1, this is an insufficient memory issue.
I was able to make V1 work by raising the heap memory and default task stack sizes in the RTOS, as suggested here:
-- Steve