This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129XNCZAD:如何检查存储器使用情况与放大器;堆栈大小

Guru**** 2389570 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1332172/tm4c129xnczad-how-to-check-memory-usage-stack-size

器件型号:TM4C129XNCZAD
主题中讨论的其他器件:EK-TM4C1294XL

第一次道歉... 我认为这是一个很基本的问题,我应该已经知道答案,但我不知道。

如何查看内存使用情况?  我想知道一般内存、我的所有 RAM 变量所在的位置、并且我想知道堆栈。  我有一个非常奇怪的问题、我认为这与传递到函数中的变量无关、但我怎么知道所有这些都在工作呢?

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常非常感谢。  我很快会更详细地介绍这一点。  在我对此问题进行答复之前、您能否再进一步说明一点、并具体说明如果 RAM 空间不足(变量、数组等太多)、我将如何知道?

    我有比局部变量更多的全局变量、因此我认为我几乎不会使用堆栈。  在运行时测量堆栈深度必须完全不同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果 RAM 空间不足(变量、数组等太多),我怎么知道?

     如果 RAM 空间不足(器件上有256KB 的 RAM)、则无法编译项目。 在编译/链接期间、会看到一条错误消息、提示 RAM 不足。 如果你正在谈论的是使用 malloc 的动态存储器分配、那么情况就不同了。 但是、malloc 应该在分配期间失败、因为您会得到一个 NULL 指针。

     同样、请参考映射文件。 映射文件将告诉您使用了多少 RAM。 请参见以下示例。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我是否应该担心堆栈使用量为1444?   线路显示为黄色。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请看一下 Ki 回答的关于包容性堆栈的这个主题。  https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/980863/cc1312r-stack-usage-in-ccs-10

    此外、如果您为其分配了足够的栈、请检查.cmd 文件。