Nucleo-144 STM32F746, FreeRTOS, LWIP
Hello,
I have a problem with LWIP. LWIP doesn’t property work on Nucleo-144 STM32F746 with default settings. After three ping telegrams LWIP doesn’t work anymore and FreeRTOS tasks are blocked.
DHCP is activated and I get IP dynamically from DHCP-Server.
I use STM32CubeIDE 1.3.0. All configuration I have done with STM32CubeIDE and use a default settings of STM32Cube.
Follow steps I have done:
- Create new project with Nucleo-144 STM32F746 board.
- Activate Ethernet interface. (Pins: Very High, No pull-up and no pull down.)
- Activate FreeRTOS:
- Timebase source: TIM5
- Version 10.2.1 API: CMSIS v2
- Memory management : heap_4
- Created two tasks: StartDefaultTask and aliveTask (LED togle)
- Activate LWIP:
- LWIP_DHCP enabled
- LWIP_ICMP enabled
- LWIP_IGMP disabled
- LWIP_UDP enabled
- LWIP_TCP enabled
Task definition:
/* Definitions for defaultTask */
osThreadId_t defaultTaskHandle;
const osThreadAttr_t defaultTask_attributes = {
.name = "defaultTask",
.priority = (osPriority_t) osPriorityNormal,
.stack_size = 256 * 4
};
/* Definitions for AliveTask */
osThreadId_t AliveTaskHandle;
const osThreadAttr_t AliveTask_attributes = {
.name = "AliveTask",
.priority = (osPriority_t) osPriorityLow,
.stack_size = 128 * 4
};Tasks:
/* USER CODE BEGIN Header_StartDefaultTask */
/**
* @brief Function implementing the defaultTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{
/* init code for LWIP */
MX_LWIP_Init();
/* USER CODE BEGIN 5 */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(LD1_Green_GPIO_Port, LD1_Green_Pin);
osDelay(1000);
}
/* USER CODE END 5 */
}
/* USER CODE BEGIN Header_aliveTask */
/**
* @brief Function implementing the AliveTask thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_aliveTask */
void aliveTask(void *argument)
{
/* USER CODE BEGIN aliveTask */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(LD2_Blue_GPIO_Port,LD2_Blue_Pin);
osDelay(500);
}
/* USER CODE END aliveTask */
}What is wrong in default settings of STM32Cube?
Many thanks in advance.
