Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用带有 LPC1768 的 LPCXpresso。我正在尝试实现几个内存池。我有我的旧代码允许这样做,所以我很好。我无法做的是阻止 newlib 使用它自己的 malloc。newlib 中调用 malloc 的函数很少。我避开了它们,除了 _Csys_alloc,不幸的是它被 _initio 调用。由于 malloc 并不弱,我不能简单地用我自己的实现替换它。那么除了修改 newlib 并重新编译或编写我自己的 _initio 例程之外,还有其他方法吗?
谢谢你的帮助。
让 Newlib 根据需要使用它的 malloc 并实现 _sbrk() 以将其使用和位置限制为一个静态池,该静态池的大小恰好符合库初始化所需的大小,然后覆盖 malloc() 以在您自己的代码中使用,这可能是最简单的 -如果之前没有在另一个目标代码库中找到,链接器只会链接到标准库符号。