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.

[参考译文] 编译器/TMS320F2.8377万S:链接器命令文件RAM分配。

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/616040/compiler-tms320f28377s-linker-command-file-ram-allocation

部件号:TMS320F2.8377万S

工具/软件:TI C/C++编译器

大家好,

我正在使用Cv GT 16.9 .3.LTS测试TMS320F2.8377万S项目,只需创建一个新的F2.8377万S项目进行评估,我发现了一个问题。

我们可以在下面的.cmd文件Page1中看到RAM分配,如果我们将 RAMGS12的长度修改为0x0.2万,由于内存重叠,我们在构建项目时会收到一条错误消息。

  RAMGS10    :原点= 0x1.6万,长度= 0x0.1万
  RAMGS11    :原点= 0x1.7万,长度= 0x0.1万
  RAMGS12    :原点= 0x1.8万,长度= 0x0.1万
  RAMGS13    :原点= 0x1.9万,长度= 0x0.1万

但是,如果我将RAMGS12长度修改为0x0.2万,并将其从Page1移动到PAGE0,则我传递生成过程,没有任何错误消息。 我测试了几个版本的C2000 CGT,结果相同。

CGT工具是否有任何问题? 如果有,请提出您的想法,谢谢。

此致,

Luke Chen

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

    它认为它位于单独的内存页上,但C2000是统一的,因此,尽管您没有遇到链接错误,但这可能会导致严重的问题。

    processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking

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

    我们可以在PAGE0和Page1上定义内存分配,但编译器无法检测到这种内存重叠问题。

    这是编译器/链接器错误吗?

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

    我与编译器组一致,确认链接器无法检测到这一点,因为页面的点是允许内存区域以相同的地址存在。 由于在内存统一之前从旧版本滚动,C2000仍在链接器中有页面。 不确定时间表,但我们将在将来从链接器中删除页面,以避免混淆和遇到此类问题。

    此致
    Chris