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.

[参考译文] TMS320F28P650DK:在目标文件级别实现“从 RAM 运行、从闪存加载“的链接器语法示例

Guru**** 2492385 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1548655/tms320f28p650dk-example-linker-syntax-for-run-from-ram-load-from-flash-at-the-object-file-level

器件型号:TMS320F28P650DK
主题:SysConfig 中讨论的其他器件

工具/软件:

您好、

为了降低 ISR 利用率并提高性能、我尝试将代码从 RAM 而不是闪存执行。
我不是使用#pragma CODE_SECTION (fn、“.TI.ramfunc")“)标记每个函数、而是想在链接步骤中重定位整个目标文件以从 RAM LS8 执行。
您能否介绍一个 C28x 示例代码片段、CCS 示例工程或推荐的链接器语法:“从 RAM 运行、从闪存加载、在目标文件级别而不是函数级别?
我在本文档中遇到了“Group"命令“命令 (software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html#group-output-sections-together)、这是我目前拥有的命令、
  业务线经理
     LOAD = APPFLASH_CPU1
     RUN = RAMLS8
     页面= 0
     对齐 (4)
     LOAD_START (CtrlLoadStart)
     load_size (CtrlLoadSize)
     RUN_START (CtrlRunStart)
     RUN_END (CtrlRunEnd)
  {
   state_voltage_match.obj (.text、.switch)
   fault_monitor.obj   (.text)
   converter_control.obj (.text)
  }
这是正确的方法吗? 如果您能帮助我、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、 

    您可能会在 driverlib/f2838x/examples/c28x/flash/文件夹中找到一个名为“flash_ex3_flash_to_ram"的“的示例、其中演示了类似的内容。 您可以使用它作为您的参考。
    从 SysConfig GUI 打开其 SysConfig 文件时、您将在右侧找到一个 device_cmd.cmd 文件。 请查看包络的部分。


    如果您需要进一步说明、请告诉我。

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

    您好、感谢您抽出时间来帮助我。 上面的示例没有详细说明如何链接特定的.obj 文件。 您是否会碰巧知道是否有一个将特定.obj 文件链接到 ramfuncs 的示例? 这样做的语法是什么?  

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

    您好 Srinivasan、

    这有什么用吗?  e2e.ti.com/.../placing-obj-files-in-specific-segments

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

    很抱歉耽误你的时间。

    你可以解决这个问题...

    为了降低 ISR 利用率并提高性能、我尝试将代码更改为从 RAM 而不是闪存执行。

    ...不更改链接器命令文件。  在第二个帖子中、Sudesshna 显示了名为的链接器命令文件的屏幕截图 device_cmd.cmd 。  它具有一个名为的输出段的规范 .TI.ramfunc 。  这正是您所需要的。  不需要 业务线经理 或您在第一个帖子中显示的任何其他内容。

    如果您希望一个文件中的所有函数都加载到闪存中并从 RAM 运行、请使用选项构建该文件 -- ramfunc=on 。  有关该选项的详细信息、请在 C28x 编译器手册 中搜索术语 ramfunc。  使用此选项构建所有文件是没有意义的。  我认为您是使用 CCS 版本 20.x.x 或更高版本构建的。  在这种情况下、要仅更改一个文件的构建选项、请右键点击该文件并进行选择 工程属性

    谢谢。此致、

    -乔治

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

    我不使用 CCS 进行编译、而是使用 Visual Studio Code 上的 Cmake 和 Docker 环境。 我需要了解如何使用此选项构建文件 --ramfunc=on, 我的设置可能是我需要指定作为 cmakefile 的一部分,在这里我为所有相关文件创建一个库,我希望从 RAM 运行。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我需要了解如何使用此选项构建文件 --ramfunc=on, 我的设置可能是我需要在 cmakefile
    中指定的设置

    这是最好的方法。  但如果您无法使其正常工作、还有其他方法。  请随时向我询问有关这些问题。

    谢谢。此致、

    -乔治

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

    感谢 George 和 Srini 的全程演示。

    Srini 请根据您的需要回复此主题(如果已经回复,请不要犹豫)。

    我们现在将保持开放状态。

    CY、
    Chris

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

    Srini,

    如果可以、我们想继续、关闭这个 TT。

    除非此时有更多内容要添加到线程中?

    否则、我们可以脱机创建新 TT 和/或地址。

    如果可以、请立即告知我们。

    谢谢您、
    Chris

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

    Srini & all、

    立即关闭此主题。  让我们离线讨论任何其他行动/问题。

    此致、
    Chris