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.

[参考译文] TMS320F28377S:cmd 文件:将.TI.ramfunc 和 ramfuncs 组合在一起

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/743652/tms320f28377s-cmd-file-combining-ti-ramfunc-and-ramfuncs

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

您好!

如何组合.TI.ramfunc 和 ramfuncs?

请不要让我了解 wiki 页面上的一般信息。

我对这一切进行了快速的处理:

  ramfuncs       :load = FLASHcode,
                     run = RAMDfunt、
                     load_start (_RamfuncsLoadStart)、
                     load_size (_RamfuncsLoadSize)、
                     load_end (_RamfuncsLoadEnd)、
                     run_start (_RamfuncsRunStart)、
                     run_size (_RamfuncsRunSize)、
                     run_end (_RamfuncsRunEnd)、
                     PAGE = 0、ALIGN (4)
    .TI.ramfunc      :ramfuncs  

但运气不好。 那么、如何组合它们以便 RamfuncsLoadSize 和_RamfuncsLoadStart 等涵盖这两个部分呢?

谢谢。

是的、我已经找到了 cmd 文件的所有 wiki 页面。

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

    使用编译器 v15.9.0.0及更高版本时、.TI.ramfunc 会替换链接器命令文件中的 ramfuncs。 如果您想了解有关如何使用.TI.ramfunc 与 ramfuncs 的更多信息、请参阅 C2000Ware 中 F2837xS 的闪存示例。 请注意有关如何创建.TI.ramfunc 段以及何时使用这些段的链接器命令文件。

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

    [引用 USER="Ozino Odharo]EVS、

    使用编译器 v15.9.0.0及更高版本时、.TI.ramfunc 会替换链接器命令文件中的 ramfuncs。 如果您想了解有关如何使用.TI.ramfunc 与 ramfuncs 的更多信息、请参阅 C2000Ware 中 F2837xS 的闪存示例。 请注意有关如何创建.TI.ramfunc 段以及何时使用这些段的链接器命令文件。

    此致、
    Ozino

    [/报价]

    Ozine、

    能不能向我解释一下差异所在。 我看不到它!  我只看到需要放置品牌名称。


    #ifdef __TI_Compiler_version__
       #if __TI_Compiler_version__>=15009000
           组
           {
               .TI.ramfunc
               {-l F021_API_F2837xS_FPU32.lib}
            
           }负载= FLASHD,
             运行 = RAMLS03、
             load_start (_RamfuncsLoadStart)、
             load_size (_RamfuncsLoadSize)、
             load_end (_RamfuncsLoadEnd)、
             run_start (_RamfuncsRunStart)、
             run_size (_RamfuncsRunSize)、
             run_end (_RamfuncsRunEnd)、
             PAGE = 0    
       其他
           组
           {
               ramfuncs
               {-l F021_API_F2837xS_FPU32.lib}
            
           }负载= FLASHD,
             运行 = RAMLS03、
             load_start (_RamfuncsLoadStart)、
             load_size (_RamfuncsLoadSize)、
             load_end (_RamfuncsLoadEnd)、
             run_start (_RamfuncsRunStart)、
             run_size (_RamfuncsRunSize)、
             run_end (_RamfuncsRunEnd)、
             PAGE = 0    
       #endif
    #endif

    谢谢、

     EV

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

    EV、

    区别在于它最初会根据工程的编译器版本来推测要使用的闪存配置。
    编译器中有一个更新、如果编译器版本大于 v15.0.9.0、则需要更改名称。 代码块的工作方式相同 、但它依赖于要对齐的代码中的链接器段命名和 pragma。 除了名称更改之外、没有明显的更改。

    这是唯一的区别、其他一切都是相同的。 只需根据编译器版本更改 ramfunc 名称。

    以下是另一个具有相同问题的论坛问题: e2e.ti.com/.../594577

    C2000Ware 中的闪存示例应具有代码中更新的段名和 pragma 的示例。

    processors.wiki.ti.com/.../Placing_functions_in_RAM

    此致、
    Ozino