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:当 RAML1已满时、CCS9胜出#39;t 将代码放入 RAML2或 RAML3中。 请帮助。

Guru**** 2952510 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/958464/ccs-tms320f28335-ccs9-won-t-put-code-in-raml2-or-raml3-when-raml1-is-full-please-help

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

大家好、我已经为我的 F28335独立板创建了一个新项目。 CCS9创建一个28335_RAM_lnk.cmd 文件。

F28335具有 RAML0、RAML1、RAML2和 RAML3组、大小均为4K。

我的 C 程序现在已超过4K 限制、CCS9不会将我的其余代码写入 RAM 的其他组中。

在.cmd 文件中、我完成了以下操作:

.text       :> RAML1 | RAML2 | RAML3,  PAGE = 0

这应该会告诉链接器在一个组已满但未完成时继续将代码写入其他组。

我是否有遗漏的东西?

当我现在构建代码时、我会收到以下错误消息:

"../28335_RAM_lnk.cmd"、第133行:错误#10099-D:程序将无法装入可用内存。  对齐/分块方式放置在".text"大小为0x12a5的第0页上失败。  可用存储器范围:

  RAML1.     大小:0x1000   未使用:0x1000   最大孔:0x1000   

  RAML2.     大小:0x1000   未使用:0x1000   最大孔:0x1000   

  RAML3.     大小:0x1000   未使用:0x1000   最大孔:0x1000

如果能在这方面提供任何帮助,将不胜感激。

谢谢、Peter

Peter

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

    需要考虑两种解决方案。  一种是段拆分。  另一个是组合存储器范围以形成更大的存储器范围。

    C2000Ware v3.03.00.00附带的文件28335_RAM_lnk.cmd 使用段拆分。

    .text :>> RAML1 | RAML2, PAGE = 0 

    将其与您的代码进行比较...

    [引用 user="Peter Adamcik"].text       :> RAML1 | RAML2 | RAML3,  page = 0

    请注意>>而不是>。  >>表示段拆分。  表示在第一个完全可以包含输出段的存储器范围中分配输出段。  有关分段的更多详细信息、请参阅  更大文章 链接器命令文件入门中的跨多个存储器范围拆分输出部分。

    C2000Ware 链接器命令文件还包含此注释...

    可组合连续 SARAM 存储器块
    如果需要创建更大的存储器块。 

    这意味着您可以替换...

    RAML0 :origin = 0x008000、length = 0x001000
    RAML1 :origin = 0x009000、length = 0x001000
    RAML2 :origin = 0x00A000、length = 0x001000
    RAML3 :origin = 0x00B000、length = 0x001000 

    有一些东西像...

    RAML0L1L2L3:origin = 0x008000、length = 0x004000 

    然后将.text 段分配到其中...

    .text > RAML0L1L2L3、PAGE = 0 

    谢谢、此致、

    乔治

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

    您好、George、感谢您提供的信息、非常感谢。

    我已将 RAML0、L1、L2、L3、L4、L5、L6组合为一个连续 RAM 组、并将 RAML7保留为.ebss 变量。  

    似乎在工作。 谢谢:)

    噢、快速提问。 如果我想将代码下载到 FLASHA 至 FLASHH、我是否也要将 FLASHA 至 FLASHH 合并为一个 FLASH_MEMORY?

    Peter

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

    Peter、

    是的、如果需要、您可以将中的闪存扇区组合为一个。

    谢谢、此致、
    Vamsi