gpt4 book ai didi

c - 确定嵌入式 C 程序的总内存使用量

转载 作者:太空狗 更新时间:2023-10-29 15:36:31 25 4
gpt4 key购买 nike

我希望能够在 256 KB 内存的有限资源环境中调试 C 程序使用的总内存量(目前我正在模拟器程序中进行测试)。

我有能力将调试语句打印到屏幕上,但是我应该使用什么方法来计算我的 C 程序使用了多少(包括全局变量、局部变量 [从我的主函数循环的角度来看)、程序代码本身等..)?

次要方面是显示特定变量的位置/范围,而不仅仅是它们的大小。

-Edit- CPU 是 Hitachi SH2,我没有可以让我在程序中放置断点的 IDE。

最佳答案

使用 IDE 选项进行适当的操作(可能标记一个 checkobx),以便构建过程(即链接器)将生成一个映射文件。嵌入式系统的映射文件通常会以详细的方式为您提供所需的信息:内存段,它们的大小,每个内存段使用多少内存,程序内存,数据内存等。通常有很多 map 文件提供的数据,您可能需要编写脚本来准确计算您需要的数据,或将其复制到 Excel。 map 文件可能还包含您的摘要信息。

堆栈有点棘手。如果 map 文件给出了,那么你就有了。如果没有,您需要自己寻找。嵌入式编译器通常让您定义堆栈位置和大小。在程序的开头放置一个断点。当应用程序停止时,整个堆栈归零。恢复应用程序并让它工作一段时间。最后停止它并检查堆栈内存。您将看到非零值而不是零。使用过的堆栈一直持续到零部分再次开始。

关于c - 确定嵌入式 C 程序的总内存使用量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10871845/

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