器件型号: TMS320F28P650DH
尊敬的专家:
如果没有使用 malloc () 和 free (),我假定应用程序中没有使用堆,在这种情况下,我们可以释放.esysmem 空间吗?
我们搜索了.map 文件、发现有一些 FPU 函数使用了堆、在这种情况下我们能否释放.esysmem 空间?
此致、
挂起
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
尊敬的专家:
如果没有使用 malloc () 和 free (),我假定应用程序中没有使用堆,在这种情况下,我们可以释放.esysmem 空间吗?
我们搜索了.map 文件、发现有一些 FPU 函数使用了堆、在这种情况下我们能否释放.esysmem 空间?
此致、
挂起
尊敬的 Sira:
我相信客户会遍历这些符号、发现使用了 malloc 和 free、但不知道在哪里、我可以在内部与您共享链接信息。
尽管如此、客户还是将.essymem 的大小缩减为可用空间、迄今为止它仍然有效。 问题是、他们可以安全地自由多少?
为了回答这个问题、我认为下一步是通过 FPU 库或其他任何内容查找实际堆栈数量(客户应用程序根本不使用 malloc)。
我们如何才能找出谁在使用堆以及它的最大使用量? 虽然这可能是动态的、但我们也许仍然可以进行估算、因为它仅用于 TI 库。
此致、
挂起
我认为了解实际堆使用情况的一种方法是用特定 字符填充.esysem 并检查在运行期间有多少空间被更改、是否正确?
如果是、我们需要填充.esysmem ealiy。 为了简单起见,我们可以在 main() 的第一行填充它,但这不包括 c_int00 代码。 C_in00 中是否有任何堆使用情况? 如果是这样、我们可能需要使用汇编语言填充.esysmem、甚至在 C_int00 之前填充。