NewlibC Configuration
For a threadsafe newlib C implementation, we need to define:
FreeRTOSConfig.h
#define configUSE_NEWLIB_REENTRANT 1
This will create a separate impure pointer for each task (handled by FreeRTOS).
Furthermore, we need to provide reentrant implementations for sbrk(), malloc_lock(), malloc_unlock(), env_lock(), env_unlock(). Broadly used is this independent implementation:Â newlib and FreeRTOS.
To use this, libc_mem_support from the libc_support component needs to be excluded from the build.
See FreeRTOSConfig documentation.