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.

[参考译文] RTOS/TCI6638K2K:如何使用#39;用户定义的链接器命令文件#39;?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658591/rtos-tci6638k2k-how-to-use-a-user-defined-linker-command-file

器件型号:TCI6638K2K

工具/软件:TI-RTOS

对于我们的 TCI6638多核项目、我们使用 RTSC 工具编辑平台向导生成我们的平台。  但是、由于我们指定了许多段、这变得不方便。  最好能够在向导中移动剖面行以按顺序排序、但这是不可能的。  因此、我们希望使用文本编辑器指定段。  我想获得一些帮助来了解如何做到这一点。

阅读文档: 内存管理 似乎有两个选项:

  1. 指定"用户定义的链接器命令文件"
  2. 根据 XDCtools 的 JavaScript 模板控制其生成的链接器命令文件

我完全不理解(2)。  是否修改 JavaScript 模板?

鉴于我的目标是指定多个段,我最好使用1)或2)?

假设答案为1),请考虑此  ,它显示应用程序构建工具接受用户定义的链接器命令文件或自动生成的(由 RTSC)链接器命令文件。   

  1. 我会同时使用 用户定义的链接器命令文件自动生成的文件、还是仅使用 用户定义的链接器命令文件?
  2. 如何指定 CCS 使用用户定义的文件而不是自动生成的文件?

此致

David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    David、
    我假设您使用的是 CCS。 如果不是这样,请告诉我。
    如果您创建的链接器命令文件仅包含段指令、并将其保存在项目的顶部目录中、则会使用您的文件和生成的链接器命令文件。

    为什么不想包含生成的文件? 如果是因为要从该文件中排除某些段分配、则可以在配置脚本中使用 Program.sectionsExclude 来实现。 在您已找到的文档中的"配置生成的链接器命令文件"下阅读有关该内容的信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,Sasha

    感谢您的回复。 我确实在使用 CCS。

    我之所以要这么做、是因为我有许多部分、并且很难在 CCS 中使用平台向导进行维护-我想使用文本文件进行维护。

    因此、我可以按照您的建议、在手动链接器命令文件中指定项目的顶部目录中的 SECTIONS 指令。 但是、我想、然后我必须为"手动"文件中的段指定与自动生成文件中指定的段不同的名称。 我想这会有点头痛。

    我是否可以手动维护 XDC 使用的定义文件(即平台向导使用的文件)? 也许我可以通过调用 XDC 来更新平台。 从 CCS 编译的角度来看、没有任何变化。 我不会使用向导?

    您认为这是个好主意吗?

    我要编辑哪个文件? Platform.XDC 或 TCI6638.java?

    此致

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    例如、您是否担心链接器命令和生成的链接器命令文件都会尝试分配.bss?
    如果使用 Program.sectionsExclude、则可以指定不希望在生成的文件中分配的所有段、这就是避免在两条指令中分配.bss 的方法。

    您可以使用您的替代想法、但我认为这并不容易。 您必须针对任何更改运行'XDC'、而不是在文本编辑器中编辑链接器命令文件。 您将编辑 Platform.XDC,Java 文件是一个内部文件,在进行更改后,您将很难对其进行编译。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好,Sasha

    我按照您的建议使用手动链接器命令文件 link.cmd、我已将除 L2INST 和 L2DATA 之外的所有内存段定义从我的平台移动到该文件。

    它似乎在工作。

    感谢你的帮助。

    David