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.

[参考译文] TMS320F280025:有关将函数放入 RAM 的问题?

Guru**** 2576215 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028122/tms320f280025-question-about-place-the-function-into-ram

器件型号:TMS320F280025

尊敬的专家:

    当我通过添加诸如"#pragma CODE_SECTION (adcA1ISR、".TI.ramfunc")等代码将函数放置在 RAM 区域中时;"在相对代码之前、我发现 RAMGS0区域正在占据更多位置。为什么它会占用  RAMGS0、而不是 RAMM0或 RAMM1?

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

    您好、Hang、

    放置方式取决于 .TI.ramfunc 段的定义方式。 您能否共享链接器 cmd 文件。

    此致、

    Vivek Singh

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

    您好、Vivek:

       .TI.ramfunc 段定义如下:

        

       我使用的链接器 cmd 文件为"28002x_generic_flash_lnk.cmd"、因为 TMS320F28002x 除了 RAMGS0外具有 RAMM0和 RAMM1、我能否将"run => RAMGS0  和 RAMGS0 "修改为"run == RAMGS0 | RAMM0 | RAM1"?如果 RAMMM0和 RAMM1 应用代码可用于放置 RAMMM0和 RAMM1应用程序、则类似于 RAMM0  应用程序 代码、我将有更多的空间放置趋化算法、以便提高相对代码的运行速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="492637" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1028122/tms320f280025-question-about-place-the-function-into-ram/3804800 #3804800"] 使用的链接器 cmd 文件为"28002x_generic_flash_lnk.cmd"、因为 TMS320F28002x 除了 RAMGS0之外具有 RAMM0和 RAMM1

    FMAGS0起始地址为 0xC000、其中 RAMM1的结束地址为0x800、因此它们不是连续地址范围。 只将其放入 RAMGS0中、因此不确定为什么希望编译器将其放入 RAMM0/RAMM1中。 RAMM0/RAMM1如果不用于任何其他应用、则可用于应用。 通常、这些 RAM 用于堆栈、但由用户选择。  

    此致、

    Vivek Singh