我可以做这样的事情:重新定义线程安全的malloc在FreeRTOS操作系统
#ifdef FREERTOS
#define malloc(size) pvPortMalloc(size)
#define free(ptr) pvPortFree(ptr)
#endif
,并期望它始终调用pvPortMalloc()
代替malloc()
?
另外,它会在#include <stdlib.h>
之前/之后做出什么区别?
我有一些代码可以在FreeRTOS中运行,我想在使用FreeRTOS时将所有调用替换为malloc()
,调用pvPortMalloc()
。
可能重复[创建的malloc的包装功能,并用C无](http://stackoverflow.com/questions/262439/create- a-wrapper-function-for-malloc-and-free-in-c) –
'pvPortMalloc'是为FreeRTOS分配内存的例程,它是用于堆分配的不同算法的.FreeRTOS内部使用它作为任务分配内存,队列等你可以用'#ifdef FREERTOS ...#endif'完成封装'malloc'。如果定义了'FREERTOS',它将'malloc'全部替换为'pvPortMalloc'。 –