如何在CCSv5中设置整个项目的对齐方式?

时间:2014-11-05 14:08:27

标签: linker texas-instruments linker-scripts code-composer linker-flags

我需要在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位的正确命令是什么?

1 个答案:

答案 0 :(得分:0)

问题已经解决,礼貌是乔治·莫克先生,TI。

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

.text          >  DDR0 ALIGN(8)
.stack         >  DDR0
                  RUN_START(stack_start)
                  RUN_END(stack_end)
                  ALIGN(8)
/* ... and so on */