在链接器脚本中对齐

时间:2011-12-10 16:43:36

标签: linker linker-scripts

ALIGN关键字在链接描述文件中的作用是什么?我阅读了很多关于链接器脚本的教程,但是我无法理解ALIGN真正做了什么。任何人都可以简单解释一下。谢谢!

3 个答案:

答案 0 :(得分:17)

典型用法是

. = ALIGN(8);

这意味着:插入填充字节,直到当前位置在8字节边界上对齐。那就是:

while ((current_location & 7) != 0)
  *current_location++ = padding_value;

答案 1 :(得分:1)

ALIGN()指令告诉链接器节(bss,文本)应如此对齐。

对于典型的想法,您可以看看here

例如

    //.data is aligned by word size on the 32-bit architecture and direct it to the data section
For a 32-bit machine, it typically needs to be word aligned 

        .data : ALIGN(4) 
        {
           *(.data*)
        } > data_sdram

答案 2 :(得分:0)

  

。 = ALIGN(8)

对应于以下内容(使用运算符的有效链接脚本示例):

data = .;

. = ((data + 0x8 - 1) & ~(0x8 - 1)) - data;