如何替换newlib的malloc

时间:2014-07-28 18:23:07

标签: c embedded malloc newlib

我使用LPCXpresso和LPC1768。我试图实现几个内存池。我有我的旧代码,允许这样,所以我很好。我无法做的是阻止newlib使用它自己的malloc。 newlib调用malloc的函数很少。我躲过了所有这些,除了_Csys_alloc,不幸的是_initio调用了它。由于malloc并不弱,我不能简单地用我自己的实现替换它。除了修改newlib和重新编译或编写我自己的_initio例程之外,还有其他方法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

让Newlib按照自己的意愿使用它的malloc并使用_sbrk()将其使用和位置限制为一个大小足以满足库初始化需要的静态池,然后覆盖malloc()以供你使用自己的代码 - 如果先前在另一个目标代码库中找不到,链接器将仅链接到标准库符号。