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.

[参考译文] TMS320F280049C:链接命令入门

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1166453/tms320f280049c-link-command-primer

器件型号:TMS320F280049C

您好、E2E 专家、

你好。

我有一篇出色的文章"TI Linker Command Primer"   

这回答了我的大部分问题、现在我可以再次链接该项目。

我还有一个问题似乎不在该条的范围内。

1) 1)我正在尝试确定堆分配到哪个 RAM 部分。  如何确定这一点?

2) 2)我也不知道堆的大小是否合适、是否有任何关于堆大小的指导原则?

更多信息、

在入门中、他们确实列出了 malloc 堆的 sysmem。

在我的链接器文件中,我有:.esysmem:>RAMLS5,page = 1,

在属性| C2000链接器|基本选项中,我必须将堆大小(我认为它最初是0x300或0x400)降低到0x170或我收到链接器错误。 我试过:.esysmem:>RAMLS5 | RAMLS6、page = 1、
然而,这似乎没有任何影响。

提前感谢您的支持。

此致、

CSC

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="480323" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000-microcontrollers---internal/f/c2000-microcontrollers---internal-forum/1166453/tms320f280049c-link-command-primer "]

    1) 1)我正在尝试确定堆分配到哪个 RAM 部分。  如何确定这一点?

    [/报价]

    堆段在 EABI 中命名为.sysmem、在 COFF 中命名为.esysmem

    [引用 userid="480323" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000-microcontrollers---internal/f/c2000-microcontrollers---internal-forum/1166453/tms320f280049c-link-command-primer。] 我试过:.esysmem:>RAMLS5 | RAMLS6,PAGE = 1,

    使用> LS5 | LS 意味着该段被分配给 LS5或 LS6。 您可以使用>> LS5|LS6、这将使链接器拆分并将其放置在 LS5和6中。 但为我们堆一个无法拆分的段。 您可以将 LS5和6组合成一个更大的内存块、并将其用于堆

    此致、

    Veena

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

    您好、Veena、  

    你好。

    如何确定合适的堆大小? 什么被认为太小?

    提前感谢您。

    此致、

    CSC

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

    您好!

    这取决于应用程序要求、运行时分配的内存大小

    一种方法是将大量内存配置为堆、运行应用程序并检查实际使用的内存大小。

    此致、

    Veena

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

    您好、Veena、

    你好。

    我如何确定运行时使用的堆的量?

    此致、

    CSC

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

    一个选项是将存储器设置为已知模式、运行应用程序并检查运行时更改了多少存储器。

    对于堆栈、您还可以在 CCS 中使用"Stack Usage"视图

    此致、

    Veena