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.

[参考译文] 编译器/TMS320F28374S:复制到两个不连续的 RAM 位置(运行)的代码

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/940280/compiler-tms320f28374s-codes-copied-to-two-ram-locations-to-run-which-are-not-continuous

器件型号:TMS320F28374S

工具/软件:TI C/C++编译器

您好!

有一点疑问:代码(复制到 RAM)能否在不同的 RAM 位置运行?

我想将几个闪存代码复制到 RAM 并运行。 但是、没有足够的连续 RAM 大小来运行代码。 因此、我要执行以下操作:

ramfuncs:load = FLASHb_D、
运行= RAMGS0|RAMGS6、
load_start (_RamfuncsLoadStart)、
load_end (_RamfuncsLoadEnd)、
run_start (_RamfuncsRunStart)、
PAGE = 0

这是可以的吗? 如果可以、是否有完全相同的连续 RAM?

非常感谢。

BR、Jordan

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

    约旦

    这很有可能。 您需要将运行段的等号(=)替换为(>)。 您可以查看此页面、该页面介绍了如何在不同的存储器范围内扩展。    

    此致、

    Ozino

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

    Ozino、

    我不理解"您需要将运行段的等号(=)替换为(>)"。

    问题出在 RAM 的大小、而不是闪存。 RAMGS0不足以保存所有代码。 需要 RAMGS6。  

    这就是为什么我要执行"run  = RAMGS0|RAMGS6"。 是这样吗?

    BR、Jordan

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

    约旦

    是的、您可以执行此操作、但需要用向前箭头(>)替换等号(=)、否则将无法生成。 您可以在多个范围之间拆分存储器分配。

    此致、

    Ozino