FreeRTOS and C++ STL compatability

Hi, I was wondering if FreeRTOS is compatible with C++ STL (containers such as list, vector). FreeRTOS tasks use thread safe allocators, however STLs use simple malloc, and free functions. Is there anyway to make this work? Thanks

FreeRTOS and C++ STL compatability

If you can redirect the compiler to a different malloc and free implementation (common with compilers, check the command options) then use heap_3.c and redirect malloc() to pvPortMalloc() and free() to vPortFree(). That will take care of the memory allocation, not sure about the rest.

FreeRTOS and C++ STL compatability

Thank you MEdwards. I am using Kinetis Design Studio which is an Eclipse based IDE and I was able to enable multiple definitions in the compiler by adding the following flag to the C/C++ linker: -z muldefs This allowed me to override the malloc and free functions for FreeRTOS and solved the problem. This can be done in the main.c file: extern void malloc(size_t size); extern void free (void ptr); void *malloc(size_t size) { void *result;
result = FRTOS1_pvPortMalloc(size);

return result;
} void free (void* ptr){ FRTOS1_vPortFree(ptr); } Best, Sina

FreeRTOS and C++ STL compatability

Maybe just where you have types the code in here, but note the prototype of the malloc() function you posted is not correct. It needs to return a void *, not just a void. I imagine this is correct in your real code otherwise the compiler would complain. Regards.