Skip to main content
Visitor II
June 11, 2024
Solved

LWIP Server FREERTOS

  • June 11, 2024
  • 2 replies
  • 995 views

HI,

my application is a tcp echoserver which works perfectly but, only for 10-20 minutes, after don't ping anymore.

I'm using STM32H723 with LWIP and RTOS and I think it's a memory configuration issue.

This is my setup:

void MPU_Config(void)

{

MPU_Region_InitTypeDef MPU_InitStruct = {0};

// Disables the MPU

HAL_MPU_Disable();

// Initializes and configures the Region and the memory to be protected

MPU_InitStruct.Enable = MPU_REGION_ENABLE;

MPU_InitStruct.Number = MPU_REGION_NUMBER0;

MPU_InitStruct.BaseAddress = 0x0;

MPU_InitStruct.Size = MPU_REGION_SIZE_4GB;

MPU_InitStruct.SubRegionDisable = 0x87;

MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

MPU_InitStruct.AccessPermission = MPU_REGION_NO_ACCESS;

MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;

MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;

MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;

MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;



HAL_MPU_ConfigRegion(&MPU_InitStruct);



// Initializes and configures the Region and the memory to be protected



MPU_InitStruct.Number = MPU_REGION_NUMBER1;

MPU_InitStruct.BaseAddress = 0x30000000;

MPU_InitStruct.Size = MPU_REGION_SIZE_32KB;

MPU_InitStruct.SubRegionDisable = 0x0;

MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;

MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;

MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;

MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;

MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;



HAL_MPU_ConfigRegion(&MPU_InitStruct);



// Initializes and configures the Region and the memory to be protected



MPU_InitStruct.Number = MPU_REGION_NUMBER2;

MPU_InitStruct.Size = MPU_REGION_SIZE_512B;

MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;

MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;

MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;

MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;



HAL_MPU_ConfigRegion(&MPU_InitStruct);

// Enables the MPU

HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);

}

Can anyone heelp me?

I can accept the reset.

Is it possible to verify the absence of the connection to restart the system?

b.r.

    This topic has been closed for replies.

    2 replies

    Technical Moderator
    June 11, 2024

    Hello,

    Please in next time use <\> button to insert your code for better visibility.

    Thank you for your understanding.

    STeaAnswer
    ST Employee
    June 20, 2024