Net_sys_error : ERR_MEM_CORRUPT

Hello,

We are currently working on a Web server on an ARM Cortex-M7 to transmit JSON string via HTTP and CGI.
When sending TCP / IP packets (2 or 3 TCP segments), an error occurred: net_sys_error NET_ERROR_MEM_CORRUPT.
This error occurs randomly after X send TCP / IP packets.

Before the error occurs, the HTTP server sends only one TCP segment (1440 bytes) instead of 3 TCP segment (2989 bytes).
We can not find the cause of the problem.

Card:
STM32F769I

Versions:
HTTP_Server_FS.c: v7.2.0
HTTP_Server_CGI.c: v7.0.0
Net_Config.c: v7.7.0 (variant IPv4 / IPv6 Release)
Net_Config_HTTP_Server.c: v7.0.0"

Config:
Net_Config.c
Core Thread Stack Size : 5120 bytes

Net_Config_ETH_0.h
Interface Thread Stack Size : 1024 bytes

startup_stm32f769xx.s
Stack Size : 800 bytes
Heap Size : 8190 bytes

RTX_Conf_CM.c
Number of threads with user-provided stack size : 2
Total stack size for threads with user-provided stack size : 6144 bytes

Thanks in advances,

Best regards

Parents
  • This usually happens when you write more data than the available space in the buffer. Check the following function:

    uint32_t netCGI_Script (const char *env, char *buf, uint32_t buflen, uint32_t *pcgi)
    

    You can not write more than buflen bytes. If you do this, you overwrite the internal memory management information, and this causes the error.

Reply
  • This usually happens when you write more data than the available space in the buffer. Check the following function:

    uint32_t netCGI_Script (const char *env, char *buf, uint32_t buflen, uint32_t *pcgi)
    

    You can not write more than buflen bytes. If you do this, you overwrite the internal memory management information, and this causes the error.

Children
More questions in this forum