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.

[参考译文] CCS/TMS320F28335:链接器 cmd 文件中的 RAM 配置。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/770674/ccs-tms320f28335-ram-configuration-in-the-linker-cmd-file

器件型号:TMS320F28335

工具/软件:Code Composer Studio

我正在尝试增加我可以使用的 RAM 量、但没有结果。 我不确定我应该增加哪个 RAML1到7、并且我尝试将其长度增加几个= 0x001000到0x002000、但没有发生任何变化、或者我应该通过某种方式告诉命令我要使用哪个 RAM?

我仍在尝试 CCS 项目中提供的28335_RAM_lnk.cmd 文件。 我想知道我也可以使用多少 RAM。  

下面是用于测试当前存储器限制的示例代码。

int main (空)

//float 数据[512];
int i[30101];
int j;
浮点 A[17716];

i[2]= 0;
J = 6;

A[2]= 0.1;

i[2]= j + i[2]+ 1;

J = i[2]+(int)(a[2]);

返回 I[2];

我在编码和 DSP 编程方面非常缺乏经验、非常感谢你们的帮助。

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

    如果您没有足够的存储器、可能是因为它无法分解足够小的块以适应链接器中的存储器设置。
    没有什么可以阻止您注释 RAML1到7并创建一个覆盖 RAML1到7整个长度的 RAM 存储器。

    使用链接器的段部分将代码的不同部分分配给不同的存储器。

    以下是有关链接器的一些 Wiki:
    processors.wiki.ti.com/.../C28x_Compiler_-_Understanding_Linking
    processors.wiki.ti.com/.../Linker_Command_File_Primer

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

    您好 Chris

    我对链接器进行了一些更改、但我仍在下面看到此错误。

    >>编译失败
    src/subdir_rules.mk:7:目标'src/main.obj'的配方失败
    >>内部错误:局部变量所需的空间超过_main 中的最大值

    这可能是一个严重的问题。 请使用与客户支持联系
    此问题的说明以及导致此问题的源文件示例
    出现内部错误消息。

    无法继续编译-中止!

    gmake:***[SRC/main.obj]错误1.
    gmake:目标"全部"不会由于错误而重新生成。

    e2e.ti.com/.../example.cExample代码^

    e2e.ti.com/.../editedlinker.txtEdited链接器^

    e2e.ti.com/.../defaultlinker.txtDefault链接器^

    我尝试了不同的原点和长度、将多个柱塞合并到一个中、但我仍然没有遇到什么问题。

    此致

    郑杰

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

    您对链接器的编辑不正确、您无法仅分配任何原点或长度、它必须与器件上的实际存储器空间保持一致。
    例如、如果要组合所有 RAML、则应将 RAML0注释出 RAML7并创建单个条目、例如:
    RAML0_7:origin = 0x008000、length = 0x008000 (无论您将其放在 PAGE 0还是 PAGE 1上都无关紧要)

    即使进行了该校正、局部变量在单个函数中可以占用的空间也是有限的。 有关更多详细信息、请参阅此帖子:
    e2e.ti.com/.../86094

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

    根据存储器映射中所示的每个段占用的存储器、我已经缩短了长度以留出足够的空间、并且错误消失了。 感谢 Chris 给我带来了启发!

    此致

    郑杰