gpt4 book ai didi

c - 如何确定 PIC32 中的 malloc 堆统计信息

转载 作者:行者123 更新时间:2023-12-04 11:46:32 25 4
gpt4 key购买 nike

我在 pic32 处理器上使用 malloc()/free() 和 friend ,所以没有虚拟内存等等,只有我在链接时声明的固定大小的堆。有什么方法可以在运行时确定我目前 malloc 的数量吗?还有多少可用?我已经看到一些对 mallinfo() 函数的引用,但当前的 pic32 库似乎不支持它。

最佳答案

我使用过 PIC18 和 PIC24 处理器,发现要谨慎使用堆。一个技巧是在设备启动时,通过使用 malloc()/free() 和越来越大的内存块来确定堆大小,直到找到限制。然后您可以自行跟踪分配的内存。

注意事项:

  • 如果您分配/取消分配奇数或大块内存,则所有赌注都会关闭,因为如果您碰巧有足够的可用内存字节,但不是在连续 block 中,malloc() 将失败。
  • 如果您使用使用 malloc()/free() 的第三方代码,您还必须检查/修改他们的代码。

我发现任何可以在堆上完成的事情都可以用静态内存或堆栈来完成,但代价是重构代码。这对您来说是一个可行的选择吗?

看看这个related questionelectronics.stackexchange.com

关于c - 如何确定 PIC32 中的 malloc 堆统计信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650596/

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