【发布时间】:2010-10-31 21:59:52
【问题描述】:
我在 AVR 微控制器 (ATMega328P) 上运行的 C 程序中遇到了问题。我相信这是由于堆栈/堆冲突,但我希望能够确认这一点。
有什么方法可以可视化堆栈和堆的 SRAM 使用情况?
注意:程序用avr-gcc编译,使用avr-libc。
更新: 我遇到的实际问题是 malloc 实现失败(返回 NULL)。所有mallocing 都发生在启动时,所有freeing 都发生在应用程序结束时(实际上从来没有,因为应用程序的主要部分处于无限循环中)。所以我确信碎片化不是问题。
【问题讨论】:
-
哇。您一定是唯一一个曾经在 atmega 上使用过 malloc 的人。我很惊讶他们的工作!甚至从未被包括在内。
-
这里介绍了一些有用的 AVR 特定 malloc 内容:nongnu.org/avr-libc/user-manual/malloc.html
标签: debugging memory embedded avr avr-gcc