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.

[参考译文] AM2434:MCU-PLUS-SDK-243x -堆栈用量为100%

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1226744/am2434-mcu-plus-sdk-243x---stack-usage-100

器件型号:AM2434

您好!

在我们的项目中、我们最近在尝试启动调试器时遇到了一个与数据验证相关的问题:

该项目使用两个内核:R5_0_0和 M4F_0。

进一步调查此问题后、似乎没有存储器/ M4的代码尝试覆盖以前写入的一些存储区域。

下面两个屏幕截图显示了当前部分 M4 linker.cmd 文件的配置方式:

 

下面是 CCS IDE 上的"Stack Usage"视图为我们显示的同一个 M4项目:

它表明使用的是100%的堆栈单元(2392)、但链接器文件显示我们还有足够的空间用于堆栈(总堆栈大小为16384)。

我正在尝试了解 IDE 为什么显示堆栈使用量为100%? 我缺少什么吗? 此外、这两个问题是否以某种方式联系在一起?

如果我展开以查看哪些组件的堆栈使用量最高:

我们的项目利用 IPC、似乎所有 IPC 库调用都占用了大量的堆栈。 此外、如果我扩展上述这些函数、DebugP 函数调用(例如_DebugP_logZone)似乎主要负责。 例如:

我想知道这是否正常、以及是否可以通过某种方法轻松禁用 DebugP 以释放大量堆栈? 对于迄今所提到的两个问题,任何其他建议也将受到极大的欢迎。

谢谢你。

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

    尊敬的 Himel:

    默认情况下、M4内核不能使用 OCRAM。 您需要设置 OCRAM 的 RAT 条目(0x70000000至0x70200000)。 IPC 使用 OCRAM 区域:

    USER_SHM_MEM、LOG_SHM_MEM 和 IPC_VRING_MEM 等

    此致、

    Ming