1

我正在使用 GNU 链接器脚本,其中bss部分变量获得非 4 字节对齐的地址,这是一个大问题,因为硬件正在使用变量地址,这需要字对齐的地址。

如果我有 10 个变量,或者我想让链接器为特定部分中的每个变量生成字对齐地址,而不是使用其中一个的 align 属性,我该怎么做?

我试过使用ALIGN()没有效果。

这是一个例子:

 .bss.a 9cdf8        0x1

 .bss.b 9cdf9        0x1

因为.bss.b我想得到0x9cdf8 + 4所有的变量。

我怎样才能做到这一点?

4

1 回答 1

0

您可能最好在定义它们的地方标记需要 4 字节对齐的变量。例如,在 gcc 中:

char a __attribute__((aligned(4)));
char b __attribute__((aligned(4)));

http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Variable-Attributes.html

于 2013-10-30T19:12:36.717 回答