0

我需要在 TI Code Composer Studio 5.5(TI ARM 编译器 5.1.1)中为整个项目设置链接器对齐方式。

这是我的链接器 .cmd 文件:

MEMORY
{
    BOOTROM:  o = 0x40020000  l = 0x0000C000  /* 48kB public boot ROM */
    SRAM:     o = 0x402F0400  l = 0x0000FC00  /* 64kB internal SRAM */
    L3OCMC0:  o = 0x40300000  l = 0x00010000  /* 64kB L3 OCMC SRAM */
    M3SHUMEM: o = 0x44D00000  l = 0x00004000  /* 16kB M3 Shared Unified Code Space */
    M3SHDMEM: o = 0x44D80000  l = 0x00002000  /* 8kB M3 Shared Data Memory */
    DDR0:     o = 0x80000000  l = 0x10000000  /* 256MB external DDR Bank 0 */    
}

SECTIONS
{
    .align            8

    .text          >  DDR0
    .stack         >  DDR0
                      RUN_START(stack_start)
                      RUN_END(stack_end)
    .bss           >  DDR0
                      RUN_START(bss_start)
                      RUN_END(bss_end)
    .cio           >  DDR0
    .const         >  DDR0
    .data          >  DDR0
    .switch        >  DDR0
    .sysmem        >  DDR0
    .far           >  DDR0
    .args          >  DDR0
    .ppinfo        >  DDR0
    .ppdata        >  DDR0

    /* TI-ABI or COFF sections */
    .pinit         >  DDR0
    .cinit         >  DDR0

    /* EABI sections */
    .binit         >  DDR0
    .init_array    >  DDR0
    .neardata      >  DDR0
    .fardata       >  DDR0
    .rodata        >  DDR0
    .c6xabi.exidx  >  DDR0
    .c6xabi.extab  >  DDR0    
}

.align 8没有做这项工作。在生成的映射文件中,我可以看到许多地址以 4 或 C 结尾的符号。如果所有符号都对齐为 8 的倍数,我应该得到仅以 0 或 8 结尾的地址。

将链接器对齐设置为 64 位的正确命令是什么?

4

1 回答 1

0

问题已解决,由 TI 的 George Mock 先生提供。

他在e2e.ti.com上写了以下示例:

.text          >  DDR0 ALIGN(8)
.stack         >  DDR0
                  RUN_START(stack_start)
                  RUN_END(stack_end)
                  ALIGN(8)
/* ... and so on */
于 2014-11-06T10:48:40.327 回答