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.

[参考译文] F29H859TU-Q1:在链接器命令文件中组合非连续存储器

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1481665/f29h859tu-q1-combining-non-continuous-memory-in-linker-command-file

器件型号:F29H859TU-Q1

工具与软件:

您好!

如何在链接器命令文件中组合非连续的存储器?

例如、如果我定义我自己的段、并希望它跨越 SRAM_LPAx 和 SRAM_CPAx?

F29H85x RAM .cmd 文件的摘录:

MEMORY
{
    SRAM_LDAx : o=0x200E0000, l=0x20000
    SRAM_LPAx : o=0x20100000, l=0x10000
    SRAM_CPAx : o=0x20110000, l=0x10000
    SRAM_CDAx : o=0x20120000, l=0x30000

    FLASH_RP0 : o=0x10000000, l=0x100000
    FLASH_RP1 : o=0x10100000, l=0x100000
    FLASH_RP2 : o=0x10200000, l=0x100000
    FLASH_RP3 : o=0x10300000, l=0x100000
}



/* Specify the sections allocation into memory */

SECTIONS
{
    codestart     : {} > 0x20100010

    .text         : {} > SRAM_LPAx
    .TI.ramfunc   : {} > SRAM_LPAx
    .cinit        : {} > SRAM_LDAx
    .const        : {} > SRAM_LDAx
    .rodata       : {} > SRAM_LDAx
    .init_array   : {} > SRAM_LDAx

    .data         : {} > SRAM_LDAx
    .bss          : {} > SRAM_LDAx
    .stack        : {} > SRAM_LDAx
    .sysmem       : {} > SRAM_LDAx
    .cio          : {} > SRAM_LDAx

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

    尊敬的 Marlyn:

    SRAM_LPAx 和 SRAM_CPAx 是连续存储器区域。 您可以将其合并到单个存储块中、如下所示

        SRAM_LDAx : o=0x200E0000, l=0x20000
        // SRAM_LPAx : o=0x20100000, l=0x10000
        // SRAM_CPAx : o=0x20110000, l=0x10000
        SRAM_Prog    : o=0x20100000, l=0x20000
        SRAM_CDAx : o=0x20120000, l=0x30000

    不能组合2个非连续存储器。 不过、您可以使链接器跨多个存储器区域(即使是不连续的存储器区域)分配段。 在这种情况下、链接器将拆分这些段并将它们置于列出的存储器区域中

    例如:  

    .data         : {} > SRAM_LDAx | SRAM_CDAx

    此致、

    Veena.