4

私はこのようなことをすることができます:

#ifdef FREERTOS

#define malloc(size) pvPortMalloc(size)
#define free(ptr) pvPortFree(ptr)

#endif

pvPortMalloc()代わりに常に呼び出すことを期待していmalloc()ますか?

また、これを前後に置くとどのような違いがあり#include <stdlib.h>ますか?

FreeRTOS の内外で実行したいコードがいくつかあります。FreeRTOSを使用malloc()するpvPortMalloc()場合は、すべての呼び出しを への呼び出しに置き換えたいと考えています。

4

2 に答える 2

0

これは正しく動作しません:

#define malloc(size) pvPortMalloc(size)
#define free(ptr) pvPortFree(ptr)

printf、sprintf、または標準ライブラリのその他の関数を使用すると、malloc_r が呼び出されますが、これはスレッド用に保存されません!

それでも、malloc と free を再定義する方法がわかりません

于 2015-05-07T15:38:47.510 に答える