ALIGN关键字在链接描述文件中的作用是什么?我阅读了很多关于链接器脚本的教程,但是我无法理解ALIGN真正做了什么。任何人都可以简单解释一下。谢谢!
典型的用法是
. = ALIGN(8);
这意味着:插入填充字节,直到当前位置在8字节边界上对齐。那是:
while ((current_location & 7) != 0)
*current_location++ = padding_value;
ALIGN()指令告诉链接器部分(bss,text)应该这么对齐。
对于一个典型的想法,你可以看看here
EG
//.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
。 = ALIGN(8)
对应于以下(使用运算符的工作链接脚本示例):
data = .;
. = ((data + 0x8 - 1) & ~(0x8 - 1)) - data;