2024-09-12 09:25 AM
CubeMX generated project defines
#define LWIP_RAND() ((u32_t)rand())
which fails with the following call stack...
and the following assert text
assertion "REENT malloc succeeded" failed: file "/build/gnu-tools-for-stm32_12.3.rel1.20240612-1315/src/newlib/newlib/libc/stdlib/rand.c", line 82
Line 82 of rand.c is:
_REENT_CHECK_RAND48(reent);
which in turn ends up calling a malloc...
I've read that reentrancy in newlib could cause problems, but I thought it would be memory corruption.
Is there a solution for this?
Thanks in advance!
Solved! Go to Solution.
2024-09-12 12:28 PM
Hello @Gustavo_AR ,
Seems you have the same issue reported in these posts:
Hope the shared posts will help you, otherwise please share more details about the device, the tools version used and how to reproduce the issue.
2024-09-12 12:28 PM
Hello @Gustavo_AR ,
Seems you have the same issue reported in these posts:
Hope the shared posts will help you, otherwise please share more details about the device, the tools version used and how to reproduce the issue.
2024-09-13 01:59 PM
Thanks @Imen.D I've fixed it by
/* Defining malloc/free should overwrite the standard versions provided by the compiler. */
void *malloc(size_t size) {
/* Call the FreeRTOS version of malloc. */
return pvPortMalloc(size);
}
void free(void *ptr) {
/* Call the FreeRTOS version of free. */
vPortFree(ptr);
}