gpt4 book ai didi

c - 如何替换newlib的malloc

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:20 25 4
gpt4 key购买 nike

我将 LPCXpresso 与 LPC1768 一起使用。我正在尝试实现一些内存池。我有允许这样做的旧代码,所以我在那里很好。我无法做的是阻止 newlib 使用它自己的 malloc。 newlib中调用malloc的函数很少。除了 _Csys_alloc,不幸的是它被 _initio 调用了,我都避开了它们。由于 malloc 并不弱,我不能简单地用我自己的实现替换它。那么,除了修改 newlib 并重新编译或编写我自己的 _initio 例程之外,还有其他方法吗?

感谢您的帮助。

最佳答案

让 Newlib 按需要使用它的 malloc 并实现 _sbrk() 以将其使用和位置限制在一个静态池中可能是最简单的,该静态池的大小正好适合库初始化所需的大小,然后覆盖 malloc() 以在您的自己的代码 - 如果之前未在另一个目标代码库中找到,链接器将仅链接到标准库符号。

关于c - 如何替换newlib的malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com