2013-10-29 18 views
1

我使用的GNU链接脚本,其中bss部分变量越来越非4字节对齐的地址,这是为变量的地址正在使用的硬件的大问题,需要字对齐地址。ARM:GNU GCC连接BSS部分对准

而不是使用它们的单独一个align属性,让如果我有10个变量或我想有链接生成字对齐的地址,每个变量的特定部分我该怎么办呢?

我一直在使用ALIGN()不影响审判。

这是例子:

.bss.a 9cdf8  0x1 

.bss.b 9cdf9  0x1 

对于.bss.b我想获得0x9cdf8 + 4因此对于所有的变量。

我该如何做到这一点?

+0

有** 2 **类型*对准的*。一个用于*输入部分*,另一个用于*输出部分*。您必须在源文件中设置对齐方式。请参阅'SORT_BY_ALIGNMENT','SORT_BY_NAME',或者您可以指定每个文件。 '.bss {foo.o(.bss); 。 = ALIGN(4);文件bar.o(.bss段); }'。 “ALIGN”只是对齐当前输出地址。 –

回答