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.

[参考译文] TMS320F28P650DH:如果不使用、释放.esysmem

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1616254/tms320f28p650dh-freeing-esysmem-if-not-used

器件型号: TMS320F28P650DH

尊敬的专家:

如果没有使用 malloc () 和 free (),我假定应用程序中没有使用堆,在这种情况下,我们可以释放.esysmem 空间吗?  

我们搜索了.map 文件、发现有一些 FPU 函数使用了堆、在这种情况下我们能否释放.esysmem 空间?

此致、

挂起

 

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

    您好 Hang、

    我认为、如果映射文件指示.esysmem 段由 FPU 函数使用、我们不应删除该段。

    我认为 FPU 利用堆进行临时存储或初始化。 如果我们将其删除、并且这些库正在尝试使用它、则可能会遇到故障或某些内存损坏问题。

    请 FPU 专家了解详情。

    谢谢

    Aswin

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

    挂起、

    您能说明哪些 FPU 函数正在使用堆吗?

    谢谢、

    Sira

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

    尊敬的 Sira:

    我相信客户会遍历这些符号、发现使用了 malloc 和 free、但不知道在哪里、我可以在内部与您共享链接信息。

    尽管如此、客户还是将.essymem 的大小缩减为可用空间、迄今为止它仍然有效。 问题是、他们可以安全地自由多少?

    为了回答这个问题、我认为下一步是通过 FPU 库或其他任何内容查找实际堆栈数量(客户应用程序根本不使用 malloc)。

    我们如何才能找出谁在使用堆以及它的最大使用量? 虽然这可能是动态的、但我们也许仍然可以进行估算、因为它仅用于 TI 库。

    此致、

    挂起

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

    我认为了解实际堆使用情况的一种方法是用特定 字符填充.esysem 并检查在运行期间有多少空间被更改、是否正确?

    如果是、我们需要填充.esysmem ealiy。 为了简单起见,我们可以在 main() 的第一行填充它,但这不包括 c_int00 代码。 C_in00 中是否有任何堆使用情况? 如果是这样、我们可能需要使用汇编语言填充.esysmem、甚至在 C_int00 之前填充。   

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

    尊敬的 Sira:

    是否对此进行了任何更新?

    C_in00 中是否有任何堆使用情况? [/报价]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    挂起、

    我可以确认、我们的 F28 FPU DSP 库不使用任何堆。 因此、您应该能够完全删除 esysmem。